Sourced from sqlalchemy's releases.
2.0.32
Released: August 5, 2024
general
[general] [bug] [regression] Restored legacy class names removed from
sqlalalchemy.orm.collections.*
, including_orm.MappedCollection
,_orm.mapped_collection()
,_orm.column_mapped_collection()
,_orm.attribute_mapped_collection()
. Pull request courtesy Takashi Kajinami.References: #11435
orm
[orm] [usecase] The
_orm.aliased.name
parameter to_orm.aliased()
may now be combined with the_orm.aliased.flat
parameter, producing per-table names based on a name-prefixed naming convention. Pull request courtesy Eric Atkin.References: #11575
[orm] [bug] [regression] Fixed regression going back to 1.4 where accessing a collection using the "dynamic" strategy on a transient object and attempting to query would raise an internal error rather than the expected
NoResultFound
that occurred in 1.3.This change is also backported to: 1.4.53
References: #11562
[orm] [bug] Fixed issue where using the
_orm.Query.enable_eagerloads()
and_orm.Query.yield_per()
methods at the same time, in order to disable eager loading that's configured on the mapper directly, would be silently ignored, leading to errors or unexpected eager population of attributes.References: #10834
[orm] [bug] [regression] Fixed regression appearing in 2.0.21 caused by #10279 where using a
_sql.delete()
or_sql.update()
against an ORM class that is the base of an inheritance hierarchy, while also specifying that subclasses should be loaded polymorphically, would leak the polymorphic joins into the UPDATE or DELETE statement as well creating incorrect SQL.References: #11625
... (truncated)