github sqlalchemy/sqlalchemy rel_1_4_41
1.4.41

latest releases: rel_2_0_30, rel_2_0_29, rel_2_0_28...
20 months ago

1.4.41

Released: September 6, 2022

orm

  • [orm] [bug] [events] Fixed event listening issue where event listeners added to a superclass
    would be lost if a subclass were created which then had its own listeners
    associated. The practical example is that of the sessionmaker
    class created after events have been associated with the
    _orm.Session class.

    References: #8467

  • [orm] [bug] Hardened the cache key strategy for the _orm.aliased() and
    _orm.with_polymorphic() constructs. While no issue involving actual
    statements being cached can easily be demonstrated (if at all), these two
    constructs were not including enough of what makes them unique in their
    cache keys for caching on the aliased construct alone to be accurate.

    References: #8401

  • [orm] [bug] [regression] Fixed regression appearing in the 1.4 series where a joined-inheritance
    query placed as a subquery within an enclosing query for that same entity
    would fail to render the JOIN correctly for the inner query. The issue
    manifested in two different ways prior and subsequent to version 1.4.18
    (related issue #6595), in one case rendering JOIN twice, in the
    other losing the JOIN entirely. To resolve, the conditions under which
    "polymorphic loading" are applied have been scaled back to not be invoked
    for simple joined inheritance queries.

    References: #8456

  • [orm] [bug] Fixed issue in sqlalchemy.ext.mutable extension where collection
    links to the parent object would be lost if the object were merged with
    Session.merge() while also passing Session.merge.load
    as False.

    References: #8446

  • [orm] [bug] Fixed issue involving _orm.with_loader_criteria() where a closure
    variable used as bound parameter value within the lambda would not carry
    forward correctly into additional relationship loaders such as
    _orm.selectinload() and _orm.lazyload() after the statement
    were cached, using the stale originally-cached value instead.

    References: #8399

sql

  • [sql] [bug] Fixed issue where use of the _sql.table() construct, passing a string
    for the _sql.table.schema parameter, would fail to take the
    "schema" string into account when producing a cache key, thus leading to
    caching collisions if multiple, same-named _sql.table() constructs
    with different schemas were used.

    References: #8441

asyncio

  • [asyncio] [bug] Integrated support for asyncpg's terminate() method call for cases
    where the connection pool is recycling a possibly timed-out connection,
    where a connection is being garbage collected that wasn't gracefully
    closed, as well as when the connection has been invalidated. This allows
    asyncpg to abandon the connection without waiting for a response that may
    incur long timeouts.

    References: #8419

mssql

  • [mssql] [bug] [regression] Fixed regression caused by the fix for #8231 released in 1.4.40
    where connection would fail if the user did not have permission to query
    the dm_exec_sessions or dm_pdw_nodes_exec_sessions system views
    when trying to determine the current transaction isolation level.

    References: #8475

Don't miss a new sqlalchemy release

NewReleases is sending notifications on new releases.