]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/log
thirdparty/sqlalchemy/sqlalchemy.git
5 years agoLoad external firebird or sybase dialect if available
Gord Thompson [Fri, 8 May 2020 11:52:02 +0000 (05:52 -0600)] 
Load external firebird or sybase dialect if available

Fixes: #5318
Extension of I1660abb11c02656fbf388f2f9c4257075111be58

Change-Id: I32b678430497327f9b08f821bd345a2557e34b1f
(cherry picked from commit 587f6c77153235e3defcc6b0b6598634e1ee2828)

5 years agoMerge "Use cx_oracle.LONG_STRING /LONG_BINARY for CLOB/BLOB" into rel_1_3
mike bayer [Sat, 9 May 2020 20:19:47 +0000 (20:19 +0000)] 
Merge "Use cx_oracle.LONG_STRING /LONG_BINARY for CLOB/BLOB" into rel_1_3

5 years agoMerge "Warn when sorted_tables is not actually sorting" into rel_1_3
mike bayer [Sat, 9 May 2020 13:57:31 +0000 (13:57 +0000)] 
Merge "Warn when sorted_tables is not actually sorting" into rel_1_3

5 years agoUse cx_oracle.LONG_STRING /LONG_BINARY for CLOB/BLOB
Mike Bayer [Thu, 7 May 2020 17:56:38 +0000 (13:56 -0400)] 
Use cx_oracle.LONG_STRING /LONG_BINARY for CLOB/BLOB

Changed the implementation of fetching CLOB and BLOB objects to use
cx_Oracle's native implementation which fetches CLOB/BLOB objects inline
with other result columns, rather than performing a separate fetch. As
always, this can be disabled by setting auto_convert_lobs to False.

As part of this change, the behavior of a CLOB that was given a blank
string on INSERT now returns None on SELECT, which is now consistent with
that of VARCHAR on Oracle.

Fixes: #5314
Change-Id: I7b46c91704b6f5d6c157e083505dac6e0cb3ef6e
(cherry picked from commit fb28e40b31797dc9ad72f11a8edd4f2eb555a36d)

5 years agoExpand CTE testing and begin to make this more prominent.
Mike Bayer [Fri, 8 May 2020 15:25:14 +0000 (11:25 -0400)] 
Expand CTE testing and begin to make this more prominent.

SQLite supports CTEs as do both the MariaDB and MySQL
databases now.  Expand test support and begin adding
new tutorial sections to make this concept more prominent.

Also fix some formatting issues in the tutorial, and start
moving more towards {opensql} - the "SQL" button thing
is cool but the tutorials mainly need to illustrate how
the SQL looks for things.  Screens are bigger now and
we likely should move away from the SQL button almost
entirely.

CTE for the tutorial needed zzzeeksphinx fix to recognize
"WITH" so bumping that to latest release number in git.

Change-Id: Ia1bbe3248b4f7c74fbee06fedf76a6ce94cd28a6
References: #5269
(cherry picked from commit e70e8a7f89f9b50d8f1e3161c44bbfcf64e8b9f3)

5 years agoWarn when sorted_tables is not actually sorting
Mike Bayer [Thu, 7 May 2020 21:13:35 +0000 (17:13 -0400)] 
Warn when sorted_tables is not actually sorting

A warning is emitted when making use of the :attr:`.MetaData.sorted_tables`
attribute as well as the :func:`_schema.sort_tables` function, and the
given tables cannot be correctly sorted due to a cyclic dependency between
foreign key constraints. In this case, the functions will no longer sort
the involved tables by foreign key, and a warning will be emitted. Other
tables that are not part of the cycle will still be returned in dependency
order. Previously, the sorted_table routines would return a collection that
would unconditionally omit all foreign keys when a cycle was detected, and
no warning was emitted.

Fixes: #5316
Change-Id: I14f72ccf39cb568bc77e8da16d0685718b2b9960
(cherry picked from commit 8782469b789585d3f0c3a642f0bb9519816f6b11)

5 years agoAdd sync_backref flag in a relationship
Federico Caselli [Wed, 22 Apr 2020 21:25:57 +0000 (23:25 +0200)] 
Add sync_backref flag in a relationship

Introduce :paramref:`_orm.relationship.sync_backref` flag in a relationship
to control if the synchronization events that mutate the in-Python
attributes are added.
This flag is implied in a ``viewonly=True`` relationship.
This supersedes the previous change #5149, that warned that ``viewonly=True``
relationship target of a back_populates or backref configuration would be
disallowed.

Fixes: #5237
Change-Id: I22c5ba28dcea22fc78a83e68e667140edffc515c
(cherry picked from commit 04c990a011db5629f1a53a8e5af2080180ac8ec3)

5 years agoMerge "Add warn_deprecated_limited feature" into rel_1_3
mike bayer [Wed, 6 May 2020 14:25:31 +0000 (14:25 +0000)] 
Merge "Add warn_deprecated_limited feature" into rel_1_3

5 years agoClarify create_engine encoding; update cx_Oracle
Mike Bayer [Wed, 6 May 2020 13:47:26 +0000 (09:47 -0400)] 
Clarify create_engine encoding; update cx_Oracle

The create_engine()->encoding parameter is mostly irrelevant
under Python 3.  make it clear this parameter is not generally
useful anymore and refer readers to the dialect documenation.

Update cx_Oracle documentation to feature many examples of
the encoding / nencoding parameters, remove extra detail that
is not generally useful and reorganize information into
more specific sections, de-emphasizing legacy / Python 2
specific sections.

Change-Id: I42dafb85de0a585c9e05e1e3d787d8d6bfa632c0
(cherry picked from commit 3ab5e3781b9f44d458cb6213e89f50d01ea167dd)

5 years agoAdd warn_deprecated_limited feature
Gord Thompson [Fri, 24 Apr 2020 12:23:19 +0000 (06:23 -0600)] 
Add warn_deprecated_limited feature

Fixes: #5268
Change-Id: I2f976048af4f8d6dd03a14efa31d179bd7324ba6
(cherry picked from commit 7baf42883f177a6f666a1cb550f4357aa7606a25)

5 years agoConsider aliased=True, from_joinpoint as legacy
Mike Bayer [Mon, 4 May 2020 19:48:48 +0000 (15:48 -0400)] 
Consider aliased=True, from_joinpoint as legacy

For a 1.4 / 1.3 merge, rewrite the documentation for
Query.join() to indicate calling forms that are now considered
legacy, including the use of strings in join(), sending a
series of join paths in one call, and using the aliased=True
flag.   update the elementtree examples as well to use aliased()
(they are much simpler to understand this way too) and update
other links.

Also improve docs for aliased() and some other ORM targets
such as PropComparator.

Change-Id: I636e3a9130dc5509e51c2cf60a52f38fcadffbc6
References: #4705
(cherry picked from commit 9f6b67a37e820b9a5be54301d08f20161bd20ee8)

5 years agoMerge "Don't apply sets or similar to objects in IdentitySet" into rel_1_3
mike bayer [Mon, 4 May 2020 17:10:13 +0000 (17:10 +0000)] 
Merge "Don't apply sets or similar to objects in IdentitySet" into rel_1_3

5 years agoBaked query needs to spoil fully on uncachable option
Mike Bayer [Sun, 3 May 2020 23:35:54 +0000 (19:35 -0400)] 
Baked query needs to spoil fully on uncachable option

Fixed issue in the area of where loader options such as selectinload()
interact with the baked query system, such that the caching of a query is
not supposed to occur if the loader options themselves have elements such
as with_polymorphic() objects in them that currently are not
cache-compatible.  The baked loader could sometimes not fully invalidate
itself in these some of these scenarios leading to missed eager loads.

Fixes: #5303
Change-Id: Iecf847204a619694d89297f83b63b613ef9767de
(cherry picked from commit dd244758a218201e6b38c44f7a9779a40177742b)

5 years agoDon't apply sets or similar to objects in IdentitySet
Mike Bayer [Mon, 4 May 2020 00:27:24 +0000 (20:27 -0400)] 
Don't apply sets or similar to objects in IdentitySet

Modified the internal "identity set" implementation, which is a set that
hashes objects on their id() rather than their hash values, to not actually
call the ``__hash__()`` method of the objects, which are typically
user-mapped objects.  Some methods were calling this method as a side
effect of the implementation.

Fixes: #5304
Change-Id: I0ed8762f47622215a54dcad9f210377b1becf8e8
(cherry picked from commit 35552e88ca798b809c7391bae11890c1557a3dd2)

5 years agoMerge "Capitalize documentation for relationship params" into rel_1_3
mike bayer [Sat, 2 May 2020 03:34:17 +0000 (03:34 +0000)] 
Merge "Capitalize documentation for relationship params" into rel_1_3

5 years agoHandle non-string, non column expression in index for deferred attach
Mike Bayer [Sat, 2 May 2020 00:30:18 +0000 (20:30 -0400)] 
Handle non-string, non column expression in index for deferred attach

Fixed issue where an :class:`.Index` that is deferred in being associated
with a table, such as as when it contains a :class:`.Column` that is not
associated with any :class:`.Table` yet,  would fail to attach correctly if
it also contained a non table-oriented expession.

Fixes: #5298
Change-Id: I0111c400f6bd4a9f31bf00a9957816c7a3fac783
(cherry picked from commit 45a334e38c1baab34d3195c899cb9ca617fb52a7)

5 years agoMerge "Enable loading of external Firebird dialect, if available" into rel_1_3
Gord Thompson [Fri, 1 May 2020 16:24:33 +0000 (16:24 +0000)] 
Merge "Enable loading of external Firebird dialect, if available" into rel_1_3

5 years agorepair test_fetch_results
Mike Bayer [Thu, 30 Apr 2020 19:06:03 +0000 (15:06 -0400)] 
repair test_fetch_results

this profiling test was not actually loading the related
objects.

Change-Id: I9d18a44f50f72f6653f736708829365eb561160e
(cherry picked from commit ebe558f956fd63d47e23e3bb56070edab1079e96)
(cherry picked from commit 397cef1f049096de173f9a629b9ab0cfaf25b739)

5 years agoCapitalize documentation for relationship params
Federico Caselli [Tue, 28 Apr 2020 20:28:33 +0000 (22:28 +0200)] 
Capitalize documentation for relationship params

Change-Id: Iec1f0afcc57177a7463d8238f1c5d6bb8b86bbb3
(cherry picked from commit 0c9812e50568fdfb5649e8449fcb877567f990e8)

5 years agoEnable loading of external Firebird dialect, if available
Gord Thompson [Fri, 24 Apr 2020 15:05:47 +0000 (09:05 -0600)] 
Enable loading of external Firebird dialect, if available

Fixes: #5278
Change-Id: I1660abb11c02656fbf388f2f9c4257075111be58
(cherry picked from commit 8c5aa7d3e0f853e30249cf1ad9e1f7e7d426a245)

5 years agoAlias the onclause if ORM join is to same polymorphic selectable
Mike Bayer [Mon, 27 Apr 2020 20:51:43 +0000 (16:51 -0400)] 
Alias the onclause if ORM join is to same polymorphic selectable

Fixed bug where using :func:`.with_polymorphic` as the target of a join via
:meth:`.RelationshipComparator.of_type` on a mapper that already has a
subquery-based with_polymorphic setting that's equivalent to the one
requested would not correctly alias the ON clause in the join.

Fixes: #5288
Change-Id: I0212a990ee67a344c87fe21833bf47fdb72ca0cc
(cherry picked from commit 483a644959f396e3abdcb8f0f373936569958970)

5 years agoFix regression when reflecting tables in MSSQL
Federico Caselli [Thu, 16 Apr 2020 21:01:03 +0000 (23:01 +0200)] 
Fix regression when reflecting tables in MSSQL

Fix a regression introduced by the reflection of computed column in
MSSQL when using SQL server versions before 2012, which does not support
the ``concat`` function and when using the legacy TDS version 4.2.
The dialect will try to detect the protocol version of first connect
and run in compatibility mode if it cannot detect it.

Fixes: #5255
Fixes: #5271
Change-Id: I7b33f7889ac0784cd8ae5385cbd50bc8c862398a
(cherry picked from commit 50d283af1a254ef981ac9a2466399b4828de0117)

5 years agoMerge "Add ColumnProperty.Comparator.expressions" into rel_1_3
mike bayer [Tue, 21 Apr 2020 13:40:23 +0000 (13:40 +0000)] 
Merge "Add ColumnProperty.Comparator.expressions" into rel_1_3

5 years agoFix typo in pymssql documentation; minor clarification
Gord Thompson [Mon, 20 Apr 2020 19:16:20 +0000 (13:16 -0600)] 
Fix typo in pymssql documentation; minor clarification

Change-Id: I4aaf0627d2f1ccae82c2eb41db9ec219d73ce4ea
(cherry picked from commit 469e786c9d77e182ef403ba18e7f19b3f58fe3bf)

5 years agoAdd ColumnProperty.Comparator.expressions
Mike Bayer [Mon, 20 Apr 2020 16:24:40 +0000 (12:24 -0400)] 
Add ColumnProperty.Comparator.expressions

Added an accessor :attr:`.ColumnProperty.Comparator.expressions` which
provides access to the group of columns mapped under a multi-column
:class:`.ColumnProperty` attribute.

Fixes: #5262
Change-Id: I44cf53ff0e6cf76a0c90eee4638ca96da3df8088
(cherry picked from commit d9d724267afe867984a23abaa87f62e15786005f)

5 years agoSupport `ARRAY` of `Enum`, `JSON` or `JSONB`
Federico Caselli [Sun, 19 Apr 2020 18:09:39 +0000 (20:09 +0200)] 
Support `ARRAY` of `Enum`, `JSON` or `JSONB`

Added support for columns or type :class:`.ARRAY` of :class:`.Enum`,
:class:`.JSON` or :class:`_postgresql.JSONB` in PostgreSQL.
Previously a workaround was required in these use cases.
Raise an explicit :class:`.exc.CompileError` when adding a table with a
column of type :class:`.ARRAY` of :class:`.Enum` configured with
:paramref:`.Enum.native_enum` set to ``False`` when
:paramref:`.Enum.create_constraint` is not set to ``False``

Fixes: #5265
Fixes: #5266
Change-Id: I83a2d20a599232b7066d0839f3e55ff8b78cd8fc
(cherry picked from commit aaec1bdedfc73ead3aef3a3e4d835a8df339e2dd)

5 years agoMerge "Raise informative error when non-object m2o comparison used" into rel_1_3
mike bayer [Mon, 20 Apr 2020 15:31:27 +0000 (15:31 +0000)] 
Merge "Raise informative error when non-object m2o comparison used" into rel_1_3

5 years agofix changelog
Federico Caselli [Fri, 10 Apr 2020 20:54:13 +0000 (22:54 +0200)] 
fix changelog

(cherry picked from commit ad7e9a65d4e8359aef323aa1e23db76fc86c4aeb)

5 years agoRename py.test to pytest
Gord Thompson [Thu, 16 Apr 2020 22:06:36 +0000 (16:06 -0600)] 
Rename py.test to pytest

Change-Id: I431e1ef41e26d490343204a75a5c097768749768
(cherry picked from commit 405fc9717048b0adc852a72da540048df7a8142a)

5 years agoAdd @requirements.schemas to test_create_table_schema
Gord Thompson [Sat, 18 Apr 2020 14:41:04 +0000 (08:41 -0600)] 
Add @requirements.schemas to test_create_table_schema

Prevent test_create_table_schema from failing for databases that do not support schemas.

Change-Id: I0f5f129c313ee6023be2e6d84610355afc48c05c
(cherry picked from commit 6e208823a66723c842975e0b75ec0e8b34ce0d2f)

5 years agoRaise informative error when non-object m2o comparison used
Mike Bayer [Sun, 19 Apr 2020 20:52:54 +0000 (16:52 -0400)] 
Raise informative error when non-object m2o comparison used

An informative error message is raised when an ORM many-to-one comparison
is attempted against an object that is not an actual mapped instance.
Comparisons such as those to scalar subqueries aren't supported;
generalized comparison with subqueries is better achieved using
:meth:`~.RelationshipProperty.Comparator.has`.

Fixes: #5269
Change-Id: I2e23178eb59728c39241a46bfa7411239a87492e
(cherry picked from commit 430ce5eab26d46301ae741f9068f13ba09907d8e)

5 years agoMerge "Pass connection to TablesTest.insert_data()" into rel_1_3
mike bayer [Wed, 15 Apr 2020 18:31:55 +0000 (18:31 +0000)] 
Merge "Pass connection to TablesTest.insert_data()" into rel_1_3

5 years agoPass connection to TablesTest.insert_data()
Mike Bayer [Tue, 14 Apr 2020 19:30:28 +0000 (15:30 -0400)] 
Pass connection to TablesTest.insert_data()

towards the goal of reducing verbosity and repetition
in test fixtures as well as that we are moving to
connection only for execution, move the insert_data()
classmethod to accept a connection and adjust all
fixtures to use it.

Change-Id: I3bf534acca0d5f4cda1d4da8ae91f1155b829b09
(cherry picked from commit 5c010c097352c783729e210018b95130ef94a926)

5 years agoSet up absolute references for create_engine and related
Mike Bayer [Tue, 14 Apr 2020 20:45:15 +0000 (16:45 -0400)] 
Set up absolute references for create_engine and related

includes more replacements for create_engine(), Connection

Change-Id: I680c02e90b9ece53e52ab1d66fd7d20b47c7df16

5 years agoMerge "Run search and replace of symbolic module names" into rel_1_3
mike bayer [Tue, 14 Apr 2020 20:01:36 +0000 (20:01 +0000)] 
Merge "Run search and replace of symbolic module names" into rel_1_3

5 years agoAdd github workflow to generate wheel running after a release has beed created
Federico Caselli [Wed, 8 Apr 2020 20:17:42 +0000 (22:17 +0200)] 
Add github workflow to generate wheel running after a release has beed created

Change-Id: I916491f8f6bdbf7de7970a0ad4b24b9965003786
(cherry picked from commit bf11ec3a10918bac956731430023eb308ee19c51)

5 years agoRun search and replace of symbolic module names
Mike Bayer [Tue, 14 Apr 2020 17:21:22 +0000 (13:21 -0400)] 
Run search and replace of symbolic module names

Replaces a wide array of Sphinx-relative doc references
with an abbreviated absolute form now supported by
zzzeeksphinx.

Change-Id: I94bffcc3f37885ffdde6238767224296339698a2

5 years agoMerge "Enable zzzeeksphinx module prefixes" into rel_1_3
mike bayer [Tue, 14 Apr 2020 17:04:43 +0000 (17:04 +0000)] 
Merge "Enable zzzeeksphinx module prefixes" into rel_1_3

5 years agoEnable zzzeeksphinx module prefixes
Mike Bayer [Sun, 12 Apr 2020 19:18:02 +0000 (15:18 -0400)] 
Enable zzzeeksphinx module prefixes

zzzeeksphinx 1.1.2 in git can now convert short
prefix names in a configured lookup to fully qualified module
names, so that
we can have succinct and portable pyrefs
that still resolve absolutely.
It also includes a formatter that will format all pyrefs
in a fully consistent way regardless of the package path,
by unconditionally removing all package tokens but always
leaving class names in place including for methods, which
means we no longer have to deal with tildes in pyrefs.

The most immediate goal of the absolute prefixes is
that we have lots of
"ambiguous" names that appear in muliple places, like select(),
ARRAY, ENUM etc.   With the incoming future packages there
is going to be lots of name overlap so it is necessary
that all names eventually use absolute package paths
when Sphinx receives them.

In multiple stages, pyrefs will be converted using the
zzzeeksphinx tools/fix_xrefs.py tool so that doclinks can
be made absolute using symbolic prefixes.

For this review, the actual search and replace of symbols
is not performed, instead some general cleanup to prepare
the docs as well as a lookup file used by the tool
to do the conversion.   this relatively small patch will
be backported
with appropriate changes to 1.3, 1.2, 1.1 and the tool
can then be run on each branch individually.  We are shooting
for almost no warnings at all for master (still a handful
I can't figure out which don't seem to have any impact)
, very few for 1.3,
and for 1.2 / 1.1 we hope for a significant reduction
in warnings.

Overall for all versions pyrefs should
always point to the correct target, if they are in fact
hyperlinked.  it's better for a ref to go nowhere and
be plain text than go to the wrong thing.  Right now,
hundreds of API links are pointing to the wrong thing
as they are ambiguous names such as refresh(), insert(),
update(), select(), join(), JSON etc. and Sphinx sends these all
to essesntially random destinations among as many as five
or six possible choices per symbol.  A shorthand system
that allows us to use absolute refs without having
to type out a full blown absoulte module is the only
way this is going to work, and we should ultimately
seek to abandon any use of prefix dot for lookups.  Everything
should be on an underscore token so at the very least the module
spaces can be reorganized without having to search and replace
the entire documentation every time.

Change-Id: I484a7329034af275fcdb322b62b6255dfeea9151
(cherry picked from commit d8d755ad619e2ee78f2c7cb60ae9a1feee4c6d76)

5 years agoAdjust changelog files for removed directories
Mike Bayer [Mon, 13 Apr 2020 22:39:47 +0000 (18:39 -0400)] 
Adjust changelog files for removed directories

unreleased_11 and unreleased_12 are gone so remove these

also there's no place for the 4065 file to go, this is an old
and very small change and it looks like the file was not published in any
case, so just remove it.

Change-Id: I2b890ac4c7142e7b4462a7f45d7caa856edf3d4f
(cherry picked from commit b289fb032ead703eb131ad1b0d0e0dcba8617ca3)

5 years agoSquashed commit of the following:
Mike Bayer [Mon, 13 Apr 2020 22:29:46 +0000 (18:29 -0400)] 
Squashed commit of the following:

commit 571da00f2c6fe905591b398a1e2fbc8ee2d05873
Author: jonathan vanasco <jonathan@2xlp.com>
Date:   Mon Apr 13 18:16:23 2020 -0400

    more examples, as suggested

commit c7b154eaf47719923c41498453571e04b6de1141
Author: jonathan vanasco <jonathan@2xlp.com>
Date:   Mon Apr 13 17:24:47 2020 -0400

    consolidating README

commit ff294507b664e9c414944a7509a0f71338957fbf
Author: jonathan vanasco <jonathan@2xlp.com>
Date:   Mon Apr 6 14:59:45 2020 -0400

    adding example readme

plus some mike changes

Change-Id: I09a11164df034ddcfe7c4e7d52308ea0b1ec509c
(cherry picked from commit 4e5b7e6e62461d2685c1586dbb4cb1db88ff4ab0)

5 years agoAdd missing definitions to glossary
Mike Bayer [Mon, 13 Apr 2020 19:24:23 +0000 (15:24 -0400)] 
Add missing definitions to glossary

improve formatting

Change-Id: Iea3b72187d7c8020e18babb72a53c39c5aeec68c
(cherry picked from commit 1b1fe518512441959f4ac9c9b715271e2b6d7977)

5 years agoMerge "A few adjustments for tests to succeed on python 3.5" into rel_1_3
mike bayer [Mon, 13 Apr 2020 15:29:36 +0000 (15:29 +0000)] 
Merge "A few adjustments for tests to succeed on python 3.5" into rel_1_3

5 years agoMerge "Add ``comment`` attribute to :class:`.Column` ``__repr__`` method." into rel_1_3
mike bayer [Mon, 13 Apr 2020 15:28:19 +0000 (15:28 +0000)] 
Merge "Add ``comment`` attribute to :class:`.Column` ``__repr__`` method." into rel_1_3

5 years agoA few adjustments for tests to succeed on python 3.5
Federico Caselli [Wed, 8 Apr 2020 18:54:26 +0000 (20:54 +0200)] 
A few adjustments for tests to succeed on python 3.5

Ported from Change-Id: Ia93ee1cb5c52e51e72eb0a24c100421c5157d04b

Change-Id: Ia1086d3013b74ef0b2b69381483a9501288853a9

5 years agoMerge "Use define_tables for IsOrIsNotDistinctFromTest" into rel_1_3
mike bayer [Mon, 13 Apr 2020 01:34:04 +0000 (01:34 +0000)] 
Merge "Use define_tables for IsOrIsNotDistinctFromTest" into rel_1_3

5 years agoAdd ``comment`` attribute to :class:`.Column` ``__repr__`` method.
Federico Caselli [Sat, 11 Apr 2020 18:52:12 +0000 (20:52 +0200)] 
Add ``comment`` attribute to :class:`.Column` ``__repr__`` method.

Fixes #4138

Change-Id: Iad3604ce054aaac36fc93d623ae5058852875d97

5 years agoFix almost all read-level sphinx warnings
Mike Bayer [Sat, 11 Apr 2020 17:53:41 +0000 (13:53 -0400)] 
Fix almost all read-level sphinx warnings

Partial backport of 43bcb0de1ecc1dc2abd7e7c3eb0c39f3eab9adc0.

Also enables sphinx multiprocess.

Change-Id: I49b1959b9a5fe84fb4c74366da2724284a804936

5 years agoUse define_tables for IsOrIsNotDistinctFromTest
Mike Bayer [Fri, 10 Apr 2020 20:58:41 +0000 (16:58 -0400)] 
Use define_tables for IsOrIsNotDistinctFromTest

In Ie8127ef29f1ec91e7afb88e1429538c27a321784 Mike
failed to notice that this test is build on TablesTest and
has just the one test function, which means the table is
built up by the fixture.

Change-Id: I855431bc976fe8ec96559ec1a22bb294aecf3c40
(cherry picked from commit e228b4143274152aae599b3dbbcaa4ad7178147b)

5 years agoMerge "Fix distinct_from test for Firebird et al." into rel_1_3
mike bayer [Fri, 10 Apr 2020 20:54:10 +0000 (20:54 +0000)] 
Merge "Fix distinct_from test for Firebird et al." into rel_1_3

5 years agoEvaluate fixes for cx_Oracle 8 API changes
Mike Bayer [Fri, 10 Apr 2020 16:23:32 +0000 (12:23 -0400)] 
Evaluate fixes for cx_Oracle 8 API changes

in [1] we have reported some behavioral changes in cx_Oracle
symbols.   As it is unclear if these are intended changes in
cx_Oracle, test workarounds for these changes against
cx_Oracle master.

[1] https://github.com/oracle/python-cx_Oracle/issues/415

Fixes: #5246
Change-Id: If63f92553c46484bf2b61b53a9e6d85cb08e800a
(cherry picked from commit 24137da80da879e7792f45302ae5c100524253be)

5 years agoRepair CTE a in b tests
Mike Bayer [Fri, 10 Apr 2020 18:28:54 +0000 (14:28 -0400)] 
Repair CTE a in b tests

In I27cac9bd265c86ff2a3381ff9f844f60ef991cfc we modernized
the default tests and converted the "a in b" CTE tests to combinations,
however apparently the existing tests were not testing all
combinations and had repeats instead.   The combinations
decorator has made this much easier to spot, so use
the correct combinations that were originally intended.

Change-Id: Icd904887bff00c31525497d0b1508fabaf052dc9
(cherry picked from commit 046934083bbf0193e29c990bed0527fdac56f9a8)

5 years agoModernize test_defaults
Mike Bayer [Thu, 9 Apr 2020 22:03:30 +0000 (18:03 -0400)] 
Modernize test_defaults

Use modern execution patterns, goal is so that these same tests
can work for the future engine

break sequence tests into test_sequences suite

sequence tests that are testing implicit execution patterns
at least move into their own suite that will go into test_deprecations
eventually.

Change-Id: I27cac9bd265c86ff2a3381ff9f844f60ef991cfc
(cherry picked from commit 4cadeaf6e68d71c2cb36219f72cc4d337e31df88)

5 years agoFix distinct_from test for Firebird et al.
Gord Thompson [Wed, 8 Apr 2020 11:40:36 +0000 (05:40 -0600)] 
Fix distinct_from test for Firebird et al.

Firebird (and perhaps others) allow us to CREATE TABLE inside a transaction but we can't INSERT INTO that table unless we COMMIT first.

Change-Id: Ie8127ef29f1ec91e7afb88e1429538c27a321784
(cherry picked from commit 10fb4d4d2f755d813993852b8cb9de3a9c0a2b3f)

5 years agoAdd github action workflow to run tests on master and on pr to master
Federico Caselli [Fri, 3 Apr 2020 18:11:24 +0000 (14:11 -0400)] 
Add github action workflow to run tests on master and on pr to master

Trying the pr to check if it works right away

<!-- Describe your changes in detail -->

<!-- go over following points. check them with an `x` if they do apply, (they turn into clickable checkboxes once the PR is submitted, so no need to do everything at once)

-->

This pull request is:

- [ ] A documentation / typographical error fix
- Good to go, no issue or tests are needed
- [x] A short code fix
- please include the issue number, and create an issue if none exists, which
  must include a complete example of the issue.  one line code fixes without an
  issue and demonstration will not be accepted.
- Please include: `Fixes: #<issue number>` in the commit message
- please include tests.   one line code fixes without tests will not be accepted.
- [ ] A new feature implementation
- please include the issue number, and create an issue if none exists, which must
  include a complete example of how the feature would look.
- Please include: `Fixes: #<issue number>` in the commit message
- please include tests.

**Have a nice day!**

Closes: #5222
Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5222
Pull-request-sha: afbb8567525f3841554d3ba599ef4d713c78e647

Change-Id: I4981b02f900e76e446cf42e6cc6495ffc0883951
(cherry picked from commit c658540b9ae36e86a92e11667d3679ac1f3eac2e)

5 years agoVersion 1.3.17 placeholder
Mike Bayer [Wed, 8 Apr 2020 02:47:20 +0000 (22:47 -0400)] 
Version 1.3.17 placeholder

5 years ago- 1.3.16 rel_1_3_16
Mike Bayer [Wed, 8 Apr 2020 02:41:36 +0000 (22:41 -0400)] 
- 1.3.16

5 years agoMerge "Use dot-separated name resolution for relationship target" into rel_1_3
mike bayer [Wed, 8 Apr 2020 01:48:33 +0000 (01:48 +0000)] 
Merge "Use dot-separated name resolution for relationship target" into rel_1_3

5 years agoUse dot-separated name resolution for relationship target
Mike Bayer [Tue, 7 Apr 2020 21:37:14 +0000 (17:37 -0400)] 
Use dot-separated name resolution for relationship target

The string argument accepted as the first positional argument by the
:func:`.relationship` function when using the Declarative API is no longer
interpreted using the Python ``eval()`` function; instead, the name is dot
separated and the names are looked up directly in the name resolution
dictionary without treating the value as a Python expression.  However,
passing a string argument to the other :func:`.relationship` parameters
that necessarily must accept Python expressions will still use ``eval()``;
the documentation has been clarified to ensure that there is no ambiguity
that this is in use.

Fixes: #5238
Change-Id: Id802f403190adfab0ca034afe2214ba10fd9cfbb
(cherry picked from commit 17e31604ae13ebd58b148a4319cfed09e5448ee2)

5 years agoGracefully skip isolation level if no row returned
Mike Bayer [Tue, 7 Apr 2020 23:21:01 +0000 (19:21 -0400)] 
Gracefully skip isolation level if no row returned

Fixed issue in MySQL dialect when connecting to a psuedo-MySQL database
such as that provided by ProxySQL, the up front check for isolation level
when it returns no row will not prevent the dialect from continuing to
connect. A warning is emitted that the isolation level could not be
detected.

Fixes: #5239
Change-Id: I4a240386a0d38bd90733819495ce50e37fe2234c
(cherry picked from commit 978755e851e505e2715e71efcb51b0904ded9f80)

5 years agoBroaden is[not]_distinct_from support
Gord Thompson [Thu, 2 Apr 2020 17:51:11 +0000 (11:51 -0600)] 
Broaden is[not]_distinct_from support

Added support for .is[not]_distinct_from to SQL Server, MySQL, and Oracle.

Fixes: #5137
Change-Id: I3b4d3b199821a55687f83c9a5b63a95d07a64cd5
(cherry picked from commit 207e0b2fc0b36acca398b163c698412deec7077e)

5 years agoMerge "Replace engine.execute w/ context manager (step1)" into rel_1_3
mike bayer [Mon, 6 Apr 2020 21:57:11 +0000 (21:57 +0000)] 
Merge "Replace engine.execute w/ context manager (step1)" into rel_1_3

5 years agoEnsure length parameter of Enum is adapted to new objects
Mike Bayer [Mon, 6 Apr 2020 20:19:23 +0000 (16:19 -0400)] 
Ensure length parameter of Enum is adapted to new objects

Ensure length parameter added to Enum in
Iea05dc8cd9e33959bb968b394fb10a7dd068c873 is correctly propagated
to new enum objects adapted from this one.

Fixes: #5183
`

Change-Id: I7f20d926f73ec8260938963df87e29894c7e55e2
(cherry picked from commit 9243f6feea676bbaada52293d44e5d069b0f0574)

5 years agoMerge "Add length parameter in `Enum`" into rel_1_3
mike bayer [Mon, 6 Apr 2020 20:10:51 +0000 (20:10 +0000)] 
Merge "Add length parameter in `Enum`" into rel_1_3

5 years agoReplace engine.execute w/ context manager (step1)
Gord Thompson [Thu, 13 Feb 2020 19:14:42 +0000 (12:14 -0700)] 
Replace engine.execute w/ context manager (step1)

First (baby) step at replacing engine.execute
calls in test code with the new preferred way
of executing. MSSQL was targeted because it was
the easiest for me to test locally.

Change-Id: Id2e02f0e39007cbfd28ca6a535115f53c6407015
(cherry picked from commit 60f627cbd0d769e65353e720548efac9d8ab95d9)

5 years agoAdd length parameter in `Enum`
Federico Caselli [Tue, 24 Mar 2020 20:06:04 +0000 (21:06 +0100)] 
Add length parameter in `Enum`

The `Enum` type now supports the parameter `Enum.length`
to specify the length of the VARCHAR column to create when using
non native enums by setting `Enum.native_enum` to `False`

Fixes: #5183
Change-Id: Iea05dc8cd9e33959bb968b394fb10a7dd068c873
(cherry picked from commit 3e2af98adfdcbf33ff5d8c2da15962c001344d64)

5 years agoApply fix to ComputedReflectionFixtureTest
Gord Thompson [Sat, 4 Apr 2020 19:39:50 +0000 (13:39 -0600)] 
Apply fix to ComputedReflectionFixtureTest

Avoid errors for dialects without schema support.
Also fix typo in test name.

Fixes: #5230
Change-Id: Id0f759b591a6119069b0fc5fc3b02addb85b0597
(cherry picked from commit 50f1e1392a92f31f1f2d5110e6632bc5a32467e7)

5 years agoEnsure context.attrbutes dictionary is reset each time
Mike Bayer [Sat, 4 Apr 2020 21:18:46 +0000 (17:18 -0400)] 
Ensure context.attrbutes dictionary is reset each time

A memory growth issue was identified in this test which
caused the profiling results to be inaccurate.

Change-Id: I248dcce5833feada947bc91bdf09a8f925d31d65
(cherry picked from commit 139aac4aba98b170787a63f0f0ca785c1fdfc63b)

5 years agoKey subqueryloaders on the property object, not string key
Mike Bayer [Fri, 3 Apr 2020 20:00:22 +0000 (16:00 -0400)] 
Key subqueryloaders on the property object, not string key

Fixed bug in :func:`.orm.selectinload` loading option where two or more
loaders that represent different relationships with the same string key
name as referenced from a single :func:`.orm.with_polymorphic` construct
with multiple subclass mappers would fail to invoke each subqueryload
separately, instead making use of a single string-based slot that would
prevent the other loaders from being invoked.

Fixes: #5228
Change-Id: Id0d1db8029ca88c13c0068115fe673adb7a68407
(cherry picked from commit a32c528c541670c0c4469523a3964712d79b7edd)

5 years agoFix sqlite memory req
Mike Bayer [Mon, 30 Mar 2020 19:04:53 +0000 (15:04 -0400)] 
Fix sqlite memory req

this is only used by test/requirements.py right now for the
profiling tests but it was not returning the correct answer
during a regenerate operation.

Change-Id: Id9747b4fe562b8bea9b21c465b626b1b19e6956b
(cherry picked from commit 379e878c5854f8d0b4e65338571ba03986901ba8)

5 years agoRemove ORDER BY pk from subqueryload, selectinload
Mike Bayer [Mon, 30 Mar 2020 15:04:24 +0000 (11:04 -0400)] 
Remove ORDER BY pk from subqueryload, selectinload

Modified the queries used by subqueryload and selectinload to no longer
ORDER BY the primary key of the parent entity;  this ordering was there to
allow the rows as they come in to be copied into lists directly with a
minimal level of Python-side collation.   However, these ORDER BY clauses
can negatively impact the performance of the query as in many scenarios
these columns are derived from a subquery or are otherwise not actual
primary key columns such that SQL planners cannot make use of indexes. The
Python-side collation uses the native itertools.group_by() to collate the
incoming rows, and has been modified to allow multiple
row-groups-per-parent to be assembled together using list.extend(), which
should still allow for relatively fast Python-side performance.  There will
still be an ORDER BY present for a relationship that includes an explicit
order_by parameter, however this is the only ORDER BY that will be added to
the query for both kinds of loading.

Fixes: #5162
Change-Id: I8befd1303c1af7cc24cbf005f39bc01c8b2745f3
(cherry picked from commit f86ee556add28afd4de31c10fce56b00a0014a4e)

5 years agoString compiler can now literal compile datetime objects
Federico Caselli [Tue, 24 Mar 2020 21:55:46 +0000 (22:55 +0100)] 
String compiler can now literal compile datetime objects

Add ability to literal compile a :class:`DateTime`, :class:`Date`
or :class:"Time" when using the string dialect for debugging purposes.
This change does not impact real dialect implementation that retain
their current behavior.

Fixes: #5052
Change-Id: Ia3fad2be905c6d35b0106b9a2388c7508f067e90
(cherry picked from commit 83eb1b23cbe5a7ee0f2534256cf16f0f865bdbbb)

5 years agotypo: missing comma
michitaro.koike [Thu, 26 Mar 2020 07:09:42 +0000 (16:09 +0900)] 
typo: missing comma

(cherry picked from commit 2d4171ec8c85a468bdbdcf55e8d053b1586747ff)

5 years agoImplement autocommit isolation level for pysqlite
Gord Thompson [Sat, 22 Feb 2020 13:44:05 +0000 (06:44 -0700)] 
Implement autocommit isolation level for pysqlite

Fixes: #5164
Change-Id: I190b9de552dfed9f2a33babf82e42465ef09c82a
(cherry picked from commit 64e8303debd8064d7d9c01c3300cca5f54c02db1)

5 years agoReword changelog for issue #5207
Mike Bayer [Tue, 24 Mar 2020 16:51:53 +0000 (12:51 -0400)] 
Reword changelog for issue #5207

SQLAlchemy can remain using setuptools even when pep-517 is
the standard installation process.   We are omitting the file
for now because it leads to new pip installation issues that need
to be worked out in the greater pip community before SQLAlchemy
opts into this system.

Change-Id: I40b196100c6f16ae1291fcb7f8b5196bba14a300
(cherry picked from commit e12707263717161950e0c9817758d3240666ed83)

5 years agoImplement autocommit isolation level for cx_oracle
Gord Thompson [Thu, 12 Mar 2020 18:54:37 +0000 (12:54 -0600)] 
Implement autocommit isolation level for cx_oracle

As part of this change Oracle also gets the concept of a
default isolation level, however since Oracle does not provide a
fixed method of knowing what the isolation level would be without a
server side transaction actually in progress, for now we hardcode
just to "READ COMMITTED".

Enhanced the test suite for isolation level testing in the dialect
test suite and added features to requirements so that the supported
isolation levels can be reported generically for dialects.

Co-authored-by: Mike Bayer <mike_mp@zzzcomputing.com>
Fixes: #5200
Change-Id: I2c4d49da9ff80ccc228c21e196ec9a961de53478
(cherry picked from commit 1afca5823efe22c0f8cbc01455bafc573254ab55)

5 years agoTest instance for matching class hierarchy on get_from_identity
Mike Bayer [Sat, 21 Mar 2020 21:26:24 +0000 (17:26 -0400)] 
Test instance for matching class hierarchy on get_from_identity

Fixed issue where a lazyload that uses session-local "get" against a target
many-to-one relationship where an object with the correct primary key is
present, however it's an instance of a sibling class, does not correctly
return None as is the case when the lazy loader actually emits a load for
that row.

Fixes: #5210
Change-Id: I89f9946cfeba61d89a272435f76a5a082b1da30c
(cherry picked from commit 900402b9aa901bc9b1ae3f6b525f076076c52529)

5 years agoRemove pyproject.toml from distribution
Mike Bayer [Sat, 21 Mar 2020 14:16:47 +0000 (10:16 -0400)] 
Remove pyproject.toml from distribution

SQLAlchemy does not want to opt-in to pep-517 at this time
as this would require a custom build backend interface
which we have not built yet, and the standard is not
widely adopted at this time in any case.  Per
[1] [2], the presence of this file indicates a positive opt-in
to pep-517, so it must be omitted from source distributions.

[1] https://pip.pypa.io/en/stable/reference/pip/#pep-517-and-518-support
[2] https://www.python.org/dev/peps/pep-0517/#id5

Fixes: #5207
Change-Id: If8d26a9edf942047920d273d8be778df7a018b3e
(cherry picked from commit f2a817dd7cde50988839750b9c2464675fb4f069)

5 years agoClarify Alembic vs. Migrate
Mike Bayer [Fri, 20 Mar 2020 20:40:47 +0000 (16:40 -0400)] 
Clarify Alembic vs. Migrate

Migrate is fully legacy at this point so continue to mention
it to provide clarity, but ensure it isn't suggested
as a real alternative.  It's unclear if Migrate will be able
to support SQLAlchemy 2.0.

Change-Id: Ia81aaccbd18f197ab533b083e87cc4d04ea05839
(cherry picked from commit a25e2e02e108551d2910171202fd91fdaeb8162c)

5 years agoEmphasize context managers when working with Core
Mike Bayer [Fri, 20 Mar 2020 19:21:10 +0000 (15:21 -0400)] 
Emphasize context managers when working with Core

Prep the main documentation for the changes coming up in 1.4
by first removing references to engine.execute() outside
of the "connectionless" section, and using context managers
in all cases.  For features that have always been confusing
and are going away, add a note that this feature will
be going away.

Change-Id: I94583444734e36f5432c32cb37f88a9fad15634a
(cherry picked from commit 376708f4a4958bf2559c14900c52aa6fc7fd05b3)

5 years agoCorrect misleading guidance on multiprocessing
Mike Bayer [Fri, 20 Mar 2020 15:17:47 +0000 (11:17 -0400)] 
Correct misleading guidance on multiprocessing

Link the connections intro to the dedicated section
on multiprocessing rather than stating that a separate
engine per process is needed, since this is inaccurate
and vague.

Change-Id: I48c66f88a90db918e864cd198c6aed335e28c7e6
(cherry picked from commit 491333858c46fae8c7f8d0ee6dec1be7c81b83da)

5 years agoDon't include PG INCLUDE columns as regular index columns
mike bayer [Wed, 18 Mar 2020 23:05:20 +0000 (19:05 -0400)] 
Don't include PG INCLUDE columns as regular index columns

Fixed issue where a "covering" index, e.g. those which have an  INCLUDE
clause, would be reflected including all the columns in INCLUDE clause as
regular columns.  A warning is now emitted if these additional columns are
detected indicating that they are currently ignored.  Note that full
support for "covering" indexes is part of :ticket:`4458`.  Pull request
courtesy Marat Sharafutdinov.

Fixes: #5205
Closes: #5206
Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5206
Pull-request-sha: 512a3817bb21991142add2d192fa7ce9b285369d

Change-Id: I3196a2bf77dc5a6abd85b2fbf0ebff1b30d4fb00
(cherry picked from commit ee9bd719b7fc5f9ad34df8815ccca56d5a7a65cc)

5 years agoFix "special_key" attribute name in association proxy documentation
Mike Bayer [Tue, 17 Mar 2020 02:06:15 +0000 (22:06 -0400)] 
Fix "special_key" attribute name in association proxy documentation

Fixes: #5204
Change-Id: I1366be823d753bdcd92c98b948bdfa7960a27eb7
(cherry picked from commit 1768dd2a08dee92d73d160a5ba437df4ced37d2c)

5 years agoSupport inspection of computed column
Federico Caselli [Sat, 14 Mar 2020 12:57:42 +0000 (13:57 +0100)] 
Support inspection of computed column

Added support for reflection of "computed" columns, which are now returned
as part of the structure returned by :meth:`.Inspector.get_columns`.
When reflecting full :class:`.Table` objects, computed columns will
be represented using the :class:`.Computed` construct.

Also improve the documentation in :meth:`Inspector.get_columns`, correctly
listing all the returned keys.

Fixes: #5063
Fixes: #4051
Closes: #5064
Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5064
Pull-request-sha: ba00fc321ce468f8885aad23b3dd33c789e50fbe

Change-Id: I789986554fc8ac7f084270474d0b2c12046b1cc2
(cherry picked from commit 62b7dace0c1d03acf3224085d03a03684a969031)

5 years agoFix tests failing for SQLite file databases; repair provisioning
Gord Thompson [Wed, 26 Feb 2020 19:50:01 +0000 (12:50 -0700)] 
Fix tests failing for SQLite file databases; repair provisioning

1. ensure provision.py loads dialect implementations when running
reap_dbs.py.   Reapers haven't been working since
598f2f7e557073f29563d4d567f43931fc03013f .

2. add some exclusion rules to allow the sqlite_file target to work;
add to tox.

3. add reap dbs target for SQLite, repair SQLite drop_db routine
which also wasn't doing the right thing for memory databases
etc.

4. Fix logging in provision files, as the main provision logger
is the one that's enabled by reap_dbs and maybe others, have all
the provision files use the provision logger.

Fixes: #5180
Fixes: #5168
Change-Id: Ibc1b0106394d20f5bcf847f37b09d185f26ac9b5
(cherry picked from commit 08fdf6da228aab54263abe043c21bcebf3513e72)

5 years agoDisable sqlite_file tests by default, take two
Mike Bayer [Fri, 13 Mar 2020 16:14:12 +0000 (12:14 -0400)] 
Disable sqlite_file tests by default, take two

We need no tests to run for sqlite_file until we merge
a full fix for it.   We'd like Jenkins to include this target.

Change-Id: I2737fa462572f08e2925b232a8f24d1ecd26b3ac
(cherry picked from commit 67e51ea5dcb3955105c35bf8149785bd72c7a521)

5 years agoInclude schema in all_tab_comments query
Mike Bayer [Fri, 13 Mar 2020 03:11:18 +0000 (23:11 -0400)] 
Include schema in all_tab_comments query

Fixed regression / incorrect fix caused by fix for :ticket:`5146` where the
Oracle dialect reads from the "all_tab_comments" view to get table comments
but fails to accommodate for the current owner of the table being
requested, causing it to read the wrong comment if multiple tables of the
same name exist in multiple schemas.

Fixes: #5146
Change-Id: Id79fbaa81b0e36cd4af60c48e4ab35c593ace057
(cherry picked from commit f1429823d31c56b589017e60328f826f5e721f0e)

5 years agoDont raise on pytest deprecation warnings
Mike Bayer [Thu, 12 Mar 2020 23:44:37 +0000 (19:44 -0400)] 
Dont raise on pytest deprecation warnings

py.test 5.4.0 emits deprecation warnings for pytest.Class.
make sure we don't raise for these, and log the code that will
be used for 5.4.0 when we bump requirements.

Fixes: #5201
Change-Id: I83e0402c4a6b2365a63b58d052c6989df3a37328
(cherry picked from commit be26fd13c124d5d53496cca98ce371c45c07c205)

5 years agoRemove trailing slashes in pre-commit config
Mike Bayer [Thu, 12 Mar 2020 00:47:25 +0000 (20:47 -0400)] 
Remove trailing slashes in pre-commit config

See https://github.com/sqlalchemy/dogpile.cache/pull/176

Change-Id: Id9a75546d4d0eae93ad837a77c6ffa9249efff5c
(cherry picked from commit f8a037aa822415d10f0ca8b8be0bb06d49f03d10)

5 years agoFix link in docs of query_expression and with_expression
Federico Caselli [Wed, 11 Mar 2020 18:09:41 +0000 (19:09 +0100)] 
Fix link in docs of query_expression and with_expression

Ref #5198

Change-Id: I566c2f7bbe08e9017e09e133079bef1c38469595
(cherry picked from commit 4cf10e7deb15dc3c5424a209fd243ca760bbbb8b)

5 years agoVersion 1.3.16 placeholder
Mike Bayer [Wed, 11 Mar 2020 16:36:59 +0000 (12:36 -0400)] 
Version 1.3.16 placeholder

5 years ago- 1.3.15 rel_1_3_15
Mike Bayer [Wed, 11 Mar 2020 16:29:27 +0000 (12:29 -0400)] 
- 1.3.15

5 years agoRepair broken call to sys.exc_info()
Mike Bayer [Wed, 11 Mar 2020 14:41:12 +0000 (10:41 -0400)] 
Repair broken call to sys.exc_info()

Fixed regression in 1.3.14 due to :ticket:`4849` where a sys.exc_info()
call failed to be invoked correctly when a flush error would occur. Test
coverage has been added for this exception case.

Fixes: #5196
Change-Id: Ib59a58a3a9d4c9c6f4b751201b794816a9f70225
(cherry picked from commit ceba13d4be5e73fed4522d6f66ab4c54f60fd983)

5 years agoReword implicit left join error; ensure deterministic FROM for columns
Mike Bayer [Tue, 10 Mar 2020 22:48:42 +0000 (18:48 -0400)] 
Reword implicit left join error; ensure deterministic FROM for columns

Adjusted the error message emitted by :meth:`.Query.join` when a left hand
side can't be located that the :meth:`.Query.select_from` method is the
best way to resolve the issue.  Also, within the 1.3 series, used a
deterministic ordering when determining the FROM clause from a given column
entity passed to :class:`.Query` so that the same expression is determined
each time.

Fixes: #5194
Change-Id: I2e4065fd31e98c57edf2f11d5e831be44d2c1ea2
(cherry picked from commit 7d8c64f9087bcde14dc641fe75f93a04823b86d6)

5 years agoVersion 1.3.15 placeholder
Mike Bayer [Tue, 10 Mar 2020 15:57:23 +0000 (11:57 -0400)] 
Version 1.3.15 placeholder

5 years ago- 1.3.14 rel_1_3_14
Mike Bayer [Tue, 10 Mar 2020 15:40:08 +0000 (11:40 -0400)] 
- 1.3.14

5 years agoReflect comments from any table accessible by the current user
Gord Thompson [Mon, 9 Mar 2020 21:50:53 +0000 (17:50 -0400)] 
Reflect comments from any table accessible by the current user

Fixed a reflection bug where table comments could only be retrieved for
tables actually owned by the user but not for tables visible to the user
but owned by someone else.  Pull request courtesy Dave Hirschfeld.

Fixes: #5146
Closes: #5147
Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5147
Pull-request-sha: 0651e3bed05923765203b37986a2506dac3e634e

Change-Id: If970fda10d6adf04d926d38df1a567df1de9f7b9
(cherry picked from commit 0c294d356f7cbb22a8da3fc4552a9c4232c3f69a)

5 years agoFix comment re: ODBC driver name on Windows.
Gord Thompson [Fri, 27 Dec 2019 20:39:23 +0000 (13:39 -0700)] 
Fix comment re: ODBC driver name on Windows.

(cherry picked from commit 57fa3c067083a7d5a67301a251e5cd492865401c)

5 years agoClean up list of external dialects
Gord Thompson [Fri, 6 Mar 2020 23:49:22 +0000 (16:49 -0700)] 
Clean up list of external dialects

Fixes: #5190
Change-Id: I3636eeda08bfaa882477397a4cd8064820d25356
(cherry picked from commit 07e1d473c01776640a4e79a54e3cd122a9375d83)

5 years agoRender VALUES within composed MySQL on duplicate key expressions
Mike Bayer [Wed, 4 Mar 2020 22:44:40 +0000 (17:44 -0500)] 
Render VALUES within composed MySQL on duplicate key expressions

Fixed issue in MySQL :meth:`.mysql.Insert.on_duplicate_key_update` construct
where using a SQL function or other composed expression for a column argument
would not properly render the ``VALUES`` keyword surrounding the column
itself.

Fixes: #5173
Change-Id: I16d39c2fdb8bbb7f3d1b2ffdd20e1bf69359ab75
(cherry picked from commit 57b2aae0d9efe91c2338e5a762e04366f86c2651)