8000 Release 2.0.38 Β· sqlalchemy/sqlalchemy Β· GitHub
[go: up one dir, main page]

Skip to content

2.0.38

Compare
Choose a tag to compare
@sqla-tester sqla-tester released this 06 Feb 20:10
· 914 commits to main since this release

2.0.38

Released: February 6, 2025

engine

  • [engine] [bug] Fixed event-related issue where invoking Engine.execution_options()
    on a Engine multiple times while making use of event-registering
    parameters such as isolation_level would lead to internal errors
    involving event registration.

    References: #12289

sql

  • [sql] [bug] Reorganized the internals by which the .c collection on a
    FromClause gets generated so that it is resilient against the
    collection being accessed in concurrent fashion. An example is creating a
    Alias or Subquery and accessing it as a module level
    variable. This impacts the Oracle dialect which uses such module-level
    global alias objects but is of general use as well.

    References: #12302

  • [sql] [bug] Fixed SQL composition bug which impacted caching where using a None
    value inside of an in_() expression would bypass the usual "expanded
    bind parameter" logic used by the IN construct, which allows proper caching
    to take place.

    References: #12314

postgresql

  • [postgresql] [usecase] [asyncio] Added an additional asyncio.shield() call within the connection
    terminate process of the asyncpg driver, to mitigate an issue where
    terminate would be prevented from completing under the anyio concurrency
    library.

    References: #12077

  • [postgresql] [bug] Adjusted the asyncpg connection wrapper so that the
    connection.transaction() call sent to asyncpg sends None for
    isolation_level if not otherwise set in the SQLAlchemy dialect/wrapper,
    thereby allowing asyncpg to make use of the server level setting for
    isolation_level in the absense of a client-level setting. Previously,
    this behavior of asyncpg was blocked by a hardcoded read_committed.

    References: #12159

mariadb

  • [mariadb] [bug] [dml] [mysql] Fixed a bug where the MySQL statement compiler would not properly compile
    statements where _mysql.Insert.on_duplicate_key_update() was passed
    values that included ORM-mapped attributes (e.g.
    InstrumentedAttribute objects) as keys. Pull request courtesy of
    mingyu.

    References: #12117

sqlite

  • [sqlite] [bug] [aiosqlite] [asyncio] [pool] Changed default connection pool used by the aiosqlite dialect
    from NullPool to AsyncAdaptedQueuePool; this change
    should have been made when 2.0 was first released as the pysqlite
    dialect was similarly changed to use QueuePool as detailed
    in change_7490.

    References: #12285

0