Changelog
### 1.3.21
```
: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 emmitted 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::
```
Links
- PyPI: https://pypi.org/project/sqlalchemy
- Changelog: https://pyup.io/changelogs/sqlalchemy/
- Homepage: http://www.sqlalchemy.org
This PR updates sqlalchemy from 1.3.20 to 1.3.21.
Changelog
### 1.3.21 ``` :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 emmitted 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:: ```Links
- PyPI: https://pypi.org/project/sqlalchemy - Changelog: https://pyup.io/changelogs/sqlalchemy/ - Homepage: http://www.sqlalchemy.org