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.secondary
parameter, if a
mapped class and its table are of the identical string name, the
Table
will 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.Session
that 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_context
option 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.Compiler
object 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.ops
to the
_postgresql.ExcludeConstraint
object, 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.Table
construct such as_sql.text()
as the argument
to_sql.Select.with_for_update.of
would 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_WORDS
list for the MySQL
dialect:action
,level
,mode
,status
,text
,time
.
Pull request courtesy Oscar Batori.References: #5696
sqlite
-
[sqlite] [usecase] Added
sqlite_with_rowid=False
dialect 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-include
andmssql_where
were 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