1.3.20
Released: October 12, 2020
orm
-
[orm] [bug] An
ArgumentError
with more detail is now raised if the target
parameter for_query.Query.join()
is set to an unmapped object.
Prior to this change a less detailedAttributeError
was raised.
Pull request courtesy Ramon Williams.References: #4428
-
[orm] [bug] Fixed issue where using a loader option against a string attribute name
that is not actually a mapped attribute, such as a plain Python descriptor,
would raise an uninformative AttributeError; a descriptive error is now
raised.References: #4589
engine
-
[engine] [bug] Fixed issue where a non-string object sent to
_exc.SQLAlchemyError
or a subclass, as occurs with some third
party dialects, would fail to stringify correctly. Pull request
courtesy Andrzej Bartosiński.References: #5599
-
[engine] [bug] Repaired a function-level import that was not using SQLAlchemy's standard
late-import system within the sqlalchemy.exc module.References: #5632
sql
-
[sql] [bug] Fixed issue where the
pickle.dumps()
operation against
_expression.Over
construct would produce a recursion overflow.References: #5644
-
[sql] [bug] Fixed bug where an error was not raised in the case where a
_sql.column()
were added to more than one_sql.table()
at a
time. This raised correctly for the_schema.Column
and
_schema.Table
objects. An_exc.ArgumentError
is now
raised when this occurs.References: #5618
postgresql
-
[postgresql] [usecase] The psycopg2 dialect now support PostgreSQL multiple host connections, by
passing host/port combinations to the query string. Pull request courtesy
Ramon Williams.References: #4392
-
[postgresql] [bug] Adjusted the
_types.ARRAY.Comparator.any()
and
_types.ARRAY.Comparator.all()
methods to implement a straight "NOT"
operation for negation, rather than negating the comparison operator.References: #5518
-
[postgresql] [bug] Fixed issue where the
_postgresql.ENUM
type would not consult the
schema translate map when emitting a CREATE TYPE or DROP TYPE during the
test to see if the type exists or not. Additionally, repaired an issue
where if the same enum were encountered multiple times in a single DDL
sequence, the "check" query would run repeatedly rather than relying upon a
cached value.References: #5520
mysql
-
[mysql] [usecase] Adjusted the MySQL dialect to correctly parenthesize functional index
expressions as accepted by MySQL 8. Pull request courtesy Ramon Williams.References: #5462
-
[mysql] [bug] The "skip_locked" keyword used with
with_for_update()
will emit a
warning when used on MariaDB backends, and will then be ignored. This is
a deprecated behavior that will raise in SQLAlchemy 1.4, as an application
that requests "skip locked" is looking for a non-blocking operation which
is not available on those backends.References: #5568
-
[mysql] [bug] Fixed bug where an UPDATE statement against a JOIN using MySQL multi-table
format would fail to include the table prefix for the target table if the
statement had no WHERE clause, as only the WHERE clause were scanned to
detect a "multi table update" at that particular point. The target
is now also scanned if it's a JOIN to get the leftmost table as the
primary table and the additional entries as additional FROM entries.References: #5617
-
[mysql] [change] Add new MySQL reserved words:
cube
,lateral
added in MySQL 8.0.1
and 8.0.14, respectively; this indicates that these terms will be quoted if
used as table or column identifier names.References: #5539
mssql
-
[mssql] [bug] Fixed issue where a SQLAlchemy connection URI for Azure DW with
authentication=ActiveDirectoryIntegrated
(and no username+password)
was not constructing the ODBC connection string in a way that was
acceptable to the Azure DW instance.References: #5592
misc
-
[bug] [pool] Fixed issue where the following pool parameters were not being propagated
to the new pool created when_engine.Engine.dispose()
were called:
pre_ping
,use_lifo
. Additionally therecycle
and
reset_on_return
parameter is now propagated for the
_engine.AssertionPool
class.References: #5582
-
[bug] [associationproxy] [ext] An informative error is now raised when attempting to use an association
proxy element as a plain column expression to be SELECTed from or used in a
SQL function; this use case is not currently supported. -
[bug] [tests] Fixed incompatibilities in the test suite when running against Pytest 6.x.
References: #5635