From: Mike Bayer Date: Thu, 6 Feb 2025 20:10:27 +0000 (-0500) Subject: cherry-pick changelog from 2.0.38 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=743304bb17016bb378945b255f5299bac2e81740;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git cherry-pick changelog from 2.0.38 --- diff --git a/doc/build/changelog/changelog_20.rst b/doc/build/changelog/changelog_20.rst index d257438a20..1da57c1a0b 100644 --- a/doc/build/changelog/changelog_20.rst +++ b/doc/build/changelog/changelog_20.rst @@ -10,7 +10,78 @@ .. changelog:: :version: 2.0.38 - :include_notes_from: unreleased_20 + :released: February 6, 2025 + + .. change:: + :tags: postgresql, usecase, asyncio + :tickets: 12077 + + 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. + + .. change:: + :tags: bug, dml, mariadb, mysql + :tickets: 12117 + + Fixed a bug where the MySQL statement compiler would not properly compile + statements where :meth:`_mysql.Insert.on_duplicate_key_update` was passed + values that included ORM-mapped attributes (e.g. + :class:`InstrumentedAttribute` objects) as keys. Pull request courtesy of + mingyu. + + .. change:: + :tags: bug, postgresql + :tickets: 12159 + + 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``. + + .. change:: + :tags: bug, sqlite, aiosqlite, asyncio, pool + :tickets: 12285 + + Changed default connection pool used by the ``aiosqlite`` dialect + from :class:`.NullPool` to :class:`.AsyncAdaptedQueuePool`; this change + should have been made when 2.0 was first released as the ``pysqlite`` + dialect was similarly changed to use :class:`.QueuePool` as detailed + in :ref:`change_7490`. + + + .. change:: + :tags: bug, engine + :tickets: 12289 + + Fixed event-related issue where invoking :meth:`.Engine.execution_options` + on a :class:`.Engine` multiple times while making use of event-registering + parameters such as ``isolation_level`` would lead to internal errors + involving event registration. + + .. change:: + :tags: bug, sql + :tickets: 12302 + + Reorganized the internals by which the ``.c`` collection on a + :class:`.FromClause` gets generated so that it is resilient against the + collection being accessed in concurrent fashion. An example is creating a + :class:`.Alias` or :class:`.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. + + .. change:: + :tags: bug, sql + :tickets: 12314 + + 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. + .. changelog:: :version: 2.0.37 diff --git a/doc/build/changelog/unreleased_20/12077.rst b/doc/build/changelog/unreleased_20/12077.rst deleted file mode 100644 index 94511b172d..0000000000 --- a/doc/build/changelog/unreleased_20/12077.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: postgresql, usecase, asyncio - :tickets: 12077 - - 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. diff --git a/doc/build/changelog/unreleased_20/12117.rst b/doc/build/changelog/unreleased_20/12117.rst deleted file mode 100644 index a82ddc36f8..0000000000 --- a/doc/build/changelog/unreleased_20/12117.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, dml, mariadb, mysql - :tickets: 12117 - - Fixed a bug where the MySQL statement compiler would not properly compile - statements where :meth:`_mysql.Insert.on_duplicate_key_update` was passed - values that included ORM-mapped attributes (e.g. - :class:`InstrumentedAttribute` objects) as keys. Pull request courtesy of - mingyu. diff --git a/doc/build/changelog/unreleased_20/12159.rst b/doc/build/changelog/unreleased_20/12159.rst deleted file mode 100644 index 50496759fa..0000000000 --- a/doc/build/changelog/unreleased_20/12159.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, postgresql - :tickets: 12159 - - 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``. diff --git a/doc/build/changelog/unreleased_20/12285.rst b/doc/build/changelog/unreleased_20/12285.rst deleted file mode 100644 index 5d815f84ca..0000000000 --- a/doc/build/changelog/unreleased_20/12285.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, sqlite, aiosqlite, asyncio, pool - :tickets: 12285 - - Changed default connection pool used by the ``aiosqlite`` dialect - from :class:`.NullPool` to :class:`.AsyncAdaptedQueuePool`; this change - should have been made when 2.0 was first released as the ``pysqlite`` - dialect was similarly changed to use :class:`.QueuePool` as detailed - in :ref:`change_7490`. - diff --git a/doc/build/changelog/unreleased_20/12289.rst b/doc/build/changelog/unreleased_20/12289.rst deleted file mode 100644 index 33bc0f50a0..0000000000 --- a/doc/build/changelog/unreleased_20/12289.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, engine - :tickets: 12289 - - Fixed event-related issue where invoking :meth:`.Engine.execution_options` - on a :class:`.Engine` multiple times while making use of event-registering - parameters such as ``isolation_level`` would lead to internal errors - involving event registration. diff --git a/doc/build/changelog/unreleased_20/12302.rst b/doc/build/changelog/unreleased_20/12302.rst deleted file mode 100644 index 43c1f7fafc..0000000000 --- a/doc/build/changelog/unreleased_20/12302.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 12302 - - Reorganized the internals by which the ``.c`` collection on a - :class:`.FromClause` gets generated so that it is resilient against the - collection being accessed in concurrent fashion. An example is creating a - :class:`.Alias` or :class:`.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. diff --git a/doc/build/changelog/unreleased_20/12314.rst b/doc/build/changelog/unreleased_20/12314.rst deleted file mode 100644 index 626c316bf9..0000000000 --- a/doc/build/changelog/unreleased_20/12314.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 12314 - - 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. -