Skip to content

Bump sqlalchemy from 1.4.20 to 1.4.22

Studieverening via bot requested to merge dependabot/pip/sqlalchemy-1.4.22 into master

Bumps sqlalchemy from 1.4.20 to 1.4.22.

Release notes

Sourced from sqlalchemy's releases.

1.4.22

Released: July 21, 2021

orm

  • [orm] [bug] Fixed issue in new _schema.Table.table_valued() method where the resulting _sql.TableValuedColumn construct would not respond correctly to alias adaptation as is used throughout the ORM, such as for eager loading, polymorphic loading, etc.

    References: #6775

  • [orm] [bug] Fixed issue where usage of the _result.Result.unique() method with an ORM result that included column expressions with unhashable types, such as JSON or ARRAY using non-tuples would silently fall back to using the id() function, rather than raising an error. This now raises an error when the _result.Result.unique() method is used in a 2.0 style ORM query. Additionally, hashability is assumed to be True for result values of unknown type, such as often happens when using SQL functions of unknown return type; if values are truly not hashable then the hash() itself will raise.

    For legacy ORM queries, since the legacy _orm.Query object uniquifies in all cases, the old rules remain in place, which is to use id() for result values of unknown type as this legacy uniquing is mostly for the purpose of uniquing ORM entities and not column values.

    References: #6769

  • [orm] [bug] Fixed an issue where clearing of mappers during things like test suite teardowns could cause a "dictionary changed size" warning during garbage collection, due to iteration of a weak-referencing dictionary. A list() has been applied to prevent concurrent GC from affecting this operation.

    References: #6771

  • [orm] [bug] [regression] Fixed critical caching issue where the ORM's persistence feature using INSERT..RETURNING would cache an incorrect query when mixing the "bulk save" and standard "flush" forms of INSERT.

    References: #6793

engine

  • [engine] [bug] Added some guards against KeyError in the event system to accommodate the case that the interpreter is shutting down at the same time _engine.Engine.dispose() is being called, which would cause stack

... (truncated)

Commits

Merge request reports