Skip to content

Bump sqlalchemy from 1.3.20 to 1.4.12

Norman Ziegner requested to merge dependabot/pip/sqlalchemy-1.4.12 into master

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

Merge request reports