:released: December 17, 2020
.. change::
:tags: bug, orm
:tickets: 5774
:versions: 1.4.0b2
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
:paramref:`_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 :paramref:`_orm.relationship.secondary` parameter, if a
mapped class and its table are of the identical string name, the
:class:`.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.
.. change::
:tags: sqlite, usecase
:tickets: 5685
Added ``sqlite_with_rowid=False`` dialect keyword to enable creating
tables as ``CREATE TABLE … WITHOUT ROWID``. Patch courtesy Sean Anderson.
.. change::
:tags: bug, sql
:tickets: 5691
A warning is emitted if a returning() method such as
:meth:`_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
:meth:`_sql.Insert.returning` and :meth:`_sql.ValuesBase.return_defaults`
methods now raises an error as these methods are mutually exclusive;
previously the operation would fail silently.
.. change::
:tags: bug, mssql
:tickets: 5751
Fixed bug where a CREATE INDEX statement was rendered incorrectly when
both ``mssql-include`` and ``mssql_where`` were specified. Pull request
courtesy Adiorz.
.. change::
:tags: bug, postgresql, mysql
:tickets: 5729
:versions: 1.4.0b2
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
:class:`_schema.Table` construct such as :func:`_sql.text` as the argument
to :paramref:`_sql.Select.with_for_update.of` would fail to be accommodated
correctly within the PostgreSQL or MySQL compilers.
.. change::
:tags: bug, mssql
:tickets: 5646
Added SQL Server code "01000" to the list of disconnect codes.
.. change::
:tags: usecase, postgresql
:tickets: 5604
:versions: 1.4.0b2
Added new parameter :paramref:`_postgresql.ExcludeConstraint.ops` to the
:class:`_postgresql.ExcludeConstraint` object, to support operator class
specification with this constraint. Pull request courtesy Alon Menczer.
.. change::
:tags: bug, mysql, reflection
:tickets: 5744
:versions: 1.4.0b2
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.
.. change::
:tags: bug, orm
:tickets: 5664
Fixed bug in :meth:`_query.Query.update` where objects in the
:class:`_ormsession.Session` that were already expired would be
unnecessarily SELECTed individually when they were refreshed by the
"evaluate"synchronize strategy.
.. change::
:tags: usecase, oracle
:tickets: 5755
Implemented support for the SERIALIZABLE isolation level for Oracle
databases, as well as a real implementation for
:meth:`_engine.Connection.get_isolation_level`.
.. seealso::
:ref:`oracle_isolation_level`
.. change::
:tags: mysql, sql
:tickets: 5696
Added missing keywords to the ``RESERVED_WORDS`` list for the MySQL
dialect: ``action``, ``level``, ``mode``, ``status``, ``text``, ``time``.
Pull request courtesy Oscar Batori.
.. change::
:tags: bug, orm
:tickets: 5737
:versions: 1.4.0b2
Fixed bug involving the ``restore_load_context`` option of ORM events such
as :meth:`_ormevent.InstanceEvents.load` such that the flag would not be
carried along to subclasses which were mapped after the event handler were
first established.
.. change::
:tags: bug, sql
:tickets: 5656
Fixed structural compiler issue where some constructs such as MySQL /
PostgreSQL "on conflict / on duplicate key" would rely upon the state of
the :class:`_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.
.. change::
:tags: mssql, sqlite, reflection
:tickets: 5661
Fixed issue with composite primary key columns not being reported
in the correct order. Patch courtesy fulpm.
.. changelog::