Bump sqlalchemy from 1.3.20 to 1.4.7
Bumps sqlalchemy from 1.3.20 to 1.4.7.
Release notes
Sourced from sqlalchemy's releases.
1.4.7
Released: April 9, 2021
orm
[orm] [bug] [regression] Fixed regression where the
_orm.subqueryload()
loader strategy would fail to correctly accommodate sub-options, such as a_orm.defer()
option on a column, if the "path" of the subqueryload were more than one level deep.References: #6221
[orm] [bug] [regression] Fixed regression where the
_orm.merge_frozen_result()
function relied upon by the dogpile.caching example was not included in tests and began failing due to incorrect internal arguments.References: #6211
[orm] [bug] [regression] Fixed critical regression where the
_orm.Session
could fail to "autobegin" a new transaction when a flush occurred without an existing transaction in place, implicitly placing the_orm.Session
into legacy autocommit mode which commit the transaction. The_orm.Session
now has a check that will prevent this condition from occurring, in addition to repairing the flush issue.Additionally, scaled back part of the change made as part of #5226 which can run autoflush during an unexpire operation, to not actually do this in the case of a
_orm.Session
using legacy_orm.Session.autocommit
mode, as this incurs a commit within a refresh operation.References: #6233
[orm] [bug] [regression] Fixed regression where the ORM compilation scheme would assume the function name of a hybrid property would be the same as the attribute name in such a way that an
AttributeError
would be raised, when it would attempt to determine the correct name for each element in a result tuple. A similar issue exists in 1.3 but only impacts the names of tuple rows. The fix here adds a check that the hybrid's function name is actually present in the__dict__
of the class or its superclasses before assigning this name; otherwise, the hybrid is considered to be "unnamed" and ORM result tuples will use the naming scheme of the underlying expression.References: #6215
[orm] [bug] [regression] Fixed critical regression caused by the new feature added as part of #1763, eager loaders are invoked on unexpire operations. The new feature makes use of the "immediateload" eager loader strategy as a
... (truncated)
Commits
- See full diff in compare view