Bump sqlalchemy from 1.3.20 to 1.4.1
Bumps sqlalchemy from 1.3.20 to 1.4.1.
Release notes
Sourced from sqlalchemy's releases.
1.4.1
Released: March 17, 2021
orm
[orm] [bug] [regression] Fixed regression where producing a Core expression construct such as
_sql.select()
using ORM entities would eagerly configure the mappers, in an effort to maintain compatibility with the_orm.Query
object which necessarily does this to support many backref-related legacy cases. However, core_sql.select()
constructs are also used in mapper configurations and such, and to that degree this eager configuration is more of an inconvenience, so eager configure has been disabled for the_sql.select()
and other Core constructs in the absence of ORM loading types of functions such as_orm.Load
.The change maintains the behavior of
_orm.Query
so that backwards compatibility is maintained. However, when using a_sql.select()
in conjunction with ORM entities, a "backref" that isn't explicitly placed on one of the classes until mapper configure time won't be available unless_orm.configure_mappers()
or the newer_orm.registry.configure()
has been called elsewhere. Prefer using_orm.relationship.back_populates
for more explicit relationship configuration which does not have the eager configure requirement.References: #6066
[orm] [bug] [regression] Fixed a critical regression in the relationship lazy loader where the SQL criteria used to fetch a related many-to-one object could go stale in relation to other memoized structures within the loader if the mapper had configuration changes, such as can occur when mappers are late configured or configured on demand, producing a comparison to None and returning no object. Huge thanks to Alan Hamlett for their help tracking this down late into the night.
References: #6055
[orm] [bug] [regression] Fixed regression where the
_orm.Query.exists()
method would fail to create an expression if the entity list of the_orm.Query
were an arbitrary SQL column expression.References: #6076
[orm] [bug] [regression] Fixed regression where calling upon
_orm.Query.count()
in conjunction with a loader option such as_orm.joinedload()
would fail to ignore the loader option. This is a behavior that has always been very specific to the_orm.Query.count()
method; an error is normally raised if a given_orm.Query
has options that don't apply to what it is returning.
... (truncated)
Commits
- See full diff in compare view