1.3.21
Released: December 17, 2020
orm
-
[orm] [bug] Added a comprehensive check and an informative error message for the case
where a mapped class, or a string mapped class name, is passed to
_orm.relationship.secondary. This is an extremely common error
which warrants a clear message.Additionally, added a new rule to the class registry resolution such that
with regards to the_orm.relationship.secondaryparameter, if a
mapped class and its table are of the identical string name, the
Tablewill be favored when resolving this parameter. In all
other cases, the class continues to be favored if a class and table
share the identical name.References: #5774
-
[orm] [bug] Fixed bug in
_query.Query.update()where objects in the
_ormsession.Sessionthat were already expired would be
unnecessarily SELECTed individually when they were refreshed by the
"evaluate"synchronize strategy.References: #5664
-
[orm] [bug] Fixed bug involving the
restore_load_contextoption of ORM events such
as_ormevent.InstanceEvents.load()such that the flag would not be
carried along to subclasses which were mapped after the event handler were
first established.References: #5737
sql
-
[sql] [bug] A warning is emmitted if a returning() method such as
_sql.Insert.returning()is called multiple times, as this does not
yet support additive operation. Version 1.4 will support additive
operation for this. Additionally, any combination of the
_sql.Insert.returning()and_sql.ValuesBase.return_defaults()
methods now raises an error as these methods are mutually exclusive;
previously the operation would fail silently.References: #5691
-
[sql] [bug] Fixed structural compiler issue where some constructs such as MySQL /
PostgreSQL "on conflict / on duplicate key" would rely upon the state of
the_sql.Compilerobject being fixed against their statement as
the top level statement, which would fail in cases where those statements
are branched from a different context, such as a DDL construct linked to a
SQL statement.References: #5656
postgresql
-
[postgresql] [usecase] Added new parameter
_postgresql.ExcludeConstraint.opsto the
_postgresql.ExcludeConstraintobject, to support operator class
specification with this constraint. Pull request courtesy Alon Menczer.References: #5604
-
[postgresql] [bug] [mysql] Fixed regression introduced in 1.3.2 for the PostgreSQL dialect, also
copied out to the MySQL dialect's feature in 1.3.18, where usage of a non
_schema.Tableconstruct such as_sql.text()as the argument
to_sql.Select.with_for_update.ofwould fail to be accommodated
correctly within the PostgreSQL or MySQL compilers.References: #5729
mysql
-
[mysql] [bug] [reflection] Fixed issue where reflecting a server default on MariaDB only that
contained a decimal point in the value would fail to be reflected
correctly, leading towards a reflected table that lacked any server
default.References: #5744
-
[mysql] [sql] Added missing keywords to the
RESERVED_WORDSlist for the MySQL
dialect:action,level,mode,status,text,time.
Pull request courtesy Oscar Batori.References: #5696
sqlite
-
[sqlite] [usecase] Added
sqlite_with_rowid=Falsedialect keyword to enable creating
tables asCREATE TABLE … WITHOUT ROWID. Patch courtesy Sean Anderson.References: #5685
mssql
-
[mssql] [bug] Fixed bug where a CREATE INDEX statement was rendered incorrectly when
bothmssql-includeandmssql_wherewere specified. Pull request
courtesy @Adiorz.References: #5751
-
[mssql] [bug] Added SQL Server code "01000" to the list of disconnect codes.
References: #5646
-
[mssql] [reflection] [sqlite] Fixed issue with composite primary key columns not being reported
in the correct order. Patch courtesy @fulpm.References: #5661
oracle
-
[oracle] [usecase] Implemented support for the SERIALIZABLE isolation level for Oracle
databases, as well as a real implementation for
_engine.Connection.get_isolation_level().References: #5755