Bump sqlalchemy from 1.3.20 to 1.4.12
Bumps sqlalchemy from 1.3.20 to 1.4.12.
Release notes
Sourced from sqlalchemy's releases.
1.4.12
Released: April 29, 2021
orm
[orm] [bug] Fixed issue in
_orm.Session.bulk_save_objects()
when used with persistent objects which would fail to track the primary key of mappings where the column name of the primary key were different than the attribute name.This change is also backported to: 1.3.25
References: #6392
[orm] [bug] [caching] [regression] Fixed critical regression where bound parameter tracking as used in the SQL caching system could fail to track all parameters for the case where the same SQL expression containing a parameter were used in an ORM-related query using a feature such as class inheritance, which was then embedded in an enclosing expression which would make use of that same expression multiple times, such as a UNION. The ORM would individually copy the individual SELECT statements as part of compilation with class inheritance, which then embedded in the enclosing statement would fail to accommodate for all parameters. The logic that tracks this condition has been adjusted to work for multiple copies of a parameter.
References: #6391
[orm] [bug] Fixed two distinct issues mostly affecting
_hybrid.hybrid_property
, which would come into play under common mis-configuration scenarios that were silently ignored in 1.3, and now failed in 1.4, where the "expression" implementation would return a non_sql.ClauseElement
such as a boolean value. For both issues, 1.3's behavior was to silently ignore the mis-configuration and ultimately attempt to interpret the value as a SQL expression, which would lead to an incorrect query.- Fixed issue regarding interaction of the attribute system with hybrid_property, where if the `__clause_element__()` method of the attribute returned a non-`_sql.ClauseElement` object, an internal `AttributeError` would lead the attribute to return the `expression` function on the hybrid_property itself, as the attribute error was against the name `.expression` which would invoke the `__getattr__()` method as a fallback. This now raises explicitly. In 1.3 the non-`_sql.ClauseElement` was returned directly. - Fixed issue in SQL argument coercions system where passing the wrong kind of object to methods that expect column expressions would fail if the object were altogether not a SQLAlchemy object, such as a Python
... (truncated)
Commits
- See full diff in compare view