From: Mike Bayer Date: Tue, 11 Mar 2025 18:18:59 +0000 (-0400) Subject: - 2.0.39 X-Git-Tag: rel_2_0_39 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=28429dc734052d942cd964cd236174b3519e919d;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - 2.0.39 --- diff --git a/doc/build/changelog/changelog_20.rst b/doc/build/changelog/changelog_20.rst index e5e9a87d9a..213e3b3802 100644 --- a/doc/build/changelog/changelog_20.rst +++ b/doc/build/changelog/changelog_20.rst @@ -10,7 +10,120 @@ .. changelog:: :version: 2.0.39 - :include_notes_from: unreleased_20 + :released: March 11, 2025 + + .. change:: + :tags: bug, postgresql + :tickets: 11751 + + Add SQL typing to reflection query used to retrieve a the structure + of IDENTITY columns, adding explicit JSON typing to the query to suit + unusual PostgreSQL driver configurations that don't support JSON natively. + + .. change:: + :tags: bug, postgresql + + Fixed issue affecting PostgreSQL 17.3 and greater where reflection of + domains with "NOT NULL" as part of their definition would include an + invalid constraint entry in the data returned by + :meth:`_postgresql.PGInspector.get_domains` corresponding to an additional + "NOT NULL" constraint that isn't a CHECK constraint; the existing + ``"nullable"`` entry in the dictionary already indicates if the domain + includes a "not null" constraint. Note that such domains also cannot be + reflected on PostgreSQL 17.0 through 17.2 due to a bug on the PostgreSQL + side; if encountering errors in reflection of domains which include NOT + NULL, upgrade to PostgreSQL server 17.3 or greater. + + .. change:: + :tags: typing, usecase + :tickets: 11922 + + Support generic types for compound selects (:func:`_sql.union`, + :func:`_sql.union_all`, :meth:`_sql.Select.union`, + :meth:`_sql.Select.union_all`, etc) returning the type of the first select. + Pull request courtesy of Mingyu Park. + + .. change:: + :tags: bug, postgresql + :tickets: 12060 + + Fixed issue in PostgreSQL network types :class:`_postgresql.INET`, + :class:`_postgresql.CIDR`, :class:`_postgresql.MACADDR`, + :class:`_postgresql.MACADDR8` where sending string values to compare to + these types would render an explicit CAST to VARCHAR, causing some SQL / + driver combinations to fail. Pull request courtesy Denis Laxalde. + + .. change:: + :tags: bug, orm + :tickets: 12326 + + Fixed bug where using DML returning such as :meth:`.Insert.returning` with + an ORM model that has :func:`_orm.column_property` constructs that contain + subqueries would fail with an internal error. + + .. change:: + :tags: bug, orm + :tickets: 12328 + + Fixed bug in ORM enabled UPDATE (and theoretically DELETE) where using a + multi-table DML statement would not allow ORM mapped columns from mappers + other than the primary UPDATE mapper to be named in the RETURNING clause; + they would be omitted instead and cause a column not found exception. + + .. change:: + :tags: bug, asyncio + :tickets: 12338 + + Fixed bug where :meth:`_asyncio.AsyncResult.scalar`, + :meth:`_asyncio.AsyncResult.scalar_one_or_none`, and + :meth:`_asyncio.AsyncResult.scalar_one` would raise an ``AttributeError`` + due to a missing internal attribute. Pull request courtesy Allen Ho. + + .. change:: + :tags: bug, orm + :tickets: 12357 + + Fixed issue where the "is ORM" flag of a :func:`.select` or other ORM + statement would not be propagated to the ORM :class:`.Session` based on a + multi-part operator expression alone, e.g. such as ``Cls.attr + Cls.attr + + Cls.attr`` or similar, leading to ORM behaviors not taking place for such + statements. + + .. change:: + :tags: bug, orm + :tickets: 12364 + + Fixed issue where using :func:`_orm.aliased` around a :class:`.CTE` + construct could cause inappropriate "duplicate CTE" errors in cases where + that aliased construct appeared multiple times in a single statement. + + .. change:: + :tags: bug, sqlite + :tickets: 12368 + + Fixed issue that omitted the comma between multiple SQLite table extension + clauses, currently ``WITH ROWID`` and ``STRICT``, when both options + :paramref:`.Table.sqlite_with_rowid` and :paramref:`.Table.sqlite_strict` + were configured at their non-default settings at the same time. Pull + request courtesy david-fed. + + .. change:: + :tags: bug, sql + :tickets: 12382 + + Added new parameters :paramref:`.AddConstraint.isolate_from_table` and + :paramref:`.DropConstraint.isolate_from_table`, defaulting to True, which + both document and allow to be controllable the long-standing behavior of + these two constructs blocking the given constraint from being included + inline within the "CREATE TABLE" sequence, under the assumption that + separate add/drop directives were to be used. + + .. change:: + :tags: bug, postgresql + :tickets: 12417 + + Fixed compiler issue in the PostgreSQL dialect where incorrect keywords + would be passed when using "FOR UPDATE OF" inside of a subquery. .. changelog:: :version: 2.0.38 diff --git a/doc/build/changelog/unreleased_20/11751.rst b/doc/build/changelog/unreleased_20/11751.rst deleted file mode 100644 index 3686f4fbe9..0000000000 --- a/doc/build/changelog/unreleased_20/11751.rst +++ /dev/null @@ -1,21 +0,0 @@ -.. change:: - :tags: bug, postgresql - :tickets: 11751 - - Add SQL typing to reflection query used to retrieve a the structure - of IDENTITY columns, adding explicit JSON typing to the query to suit - unusual PostgreSQL driver configurations that don't support JSON natively. - -.. change:: - :tags: bug, postgresql - - Fixed issue affecting PostgreSQL 17.3 and greater where reflection of - domains with "NOT NULL" as part of their definition would include an - invalid constraint entry in the data returned by - :meth:`_postgresql.PGInspector.get_domains` corresponding to an additional - "NOT NULL" constraint that isn't a CHECK constraint; the existing - ``"nullable"`` entry in the dictionary already indicates if the domain - includes a "not null" constraint. Note that such domains also cannot be - reflected on PostgreSQL 17.0 through 17.2 due to a bug on the PostgreSQL - side; if encountering errors in reflection of domains which include NOT - NULL, upgrade to PostgreSQL server 17.3 or greater. diff --git a/doc/build/changelog/unreleased_20/11922.rst b/doc/build/changelog/unreleased_20/11922.rst deleted file mode 100644 index f0e7e3d978..0000000000 --- a/doc/build/changelog/unreleased_20/11922.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: typing, usecase - :tickets: 11922 - - Support generic types for compound selects (:func:`_sql.union`, - :func:`_sql.union_all`, :meth:`_sql.Select.union`, - :meth:`_sql.Select.union_all`, etc) returning the type of the first select. - Pull request courtesy of Mingyu Park. diff --git a/doc/build/changelog/unreleased_20/12060.rst b/doc/build/changelog/unreleased_20/12060.rst deleted file mode 100644 index c215d3799f..0000000000 --- a/doc/build/changelog/unreleased_20/12060.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, postgresql - :tickets: 12060 - - Fixed issue in PostgreSQL network types :class:`_postgresql.INET`, - :class:`_postgresql.CIDR`, :class:`_postgresql.MACADDR`, - :class:`_postgresql.MACADDR8` where sending string values to compare to - these types would render an explicit CAST to VARCHAR, causing some SQL / - driver combinations to fail. Pull request courtesy Denis Laxalde. diff --git a/doc/build/changelog/unreleased_20/12326.rst b/doc/build/changelog/unreleased_20/12326.rst deleted file mode 100644 index 88e5de2f75..0000000000 --- a/doc/build/changelog/unreleased_20/12326.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 12326 - - Fixed bug where using DML returning such as :meth:`.Insert.returning` with - an ORM model that has :func:`_orm.column_property` constructs that contain - subqueries would fail with an internal error. diff --git a/doc/build/changelog/unreleased_20/12328.rst b/doc/build/changelog/unreleased_20/12328.rst deleted file mode 100644 index 9d9b70965e..0000000000 --- a/doc/build/changelog/unreleased_20/12328.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 12328 - - Fixed bug in ORM enabled UPDATE (and theoretically DELETE) where using a - multi-table DML statement would not allow ORM mapped columns from mappers - other than the primary UPDATE mapper to be named in the RETURNING clause; - they would be omitted instead and cause a column not found exception. diff --git a/doc/build/changelog/unreleased_20/12338.rst b/doc/build/changelog/unreleased_20/12338.rst deleted file mode 100644 index 6a71f08d73..0000000000 --- a/doc/build/changelog/unreleased_20/12338.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, asyncio - :tickets: 12338 - - Fixed bug where :meth:`_asyncio.AsyncResult.scalar`, - :meth:`_asyncio.AsyncResult.scalar_one_or_none`, and - :meth:`_asyncio.AsyncResult.scalar_one` would raise an ``AttributeError`` - due to a missing internal attribute. Pull request courtesy Allen Ho. diff --git a/doc/build/changelog/unreleased_20/12357.rst b/doc/build/changelog/unreleased_20/12357.rst deleted file mode 100644 index 79fd888ba3..0000000000 --- a/doc/build/changelog/unreleased_20/12357.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 12357 - - Fixed issue where the "is ORM" flag of a :func:`.select` or other ORM - statement would not be propagated to the ORM :class:`.Session` based on a - multi-part operator expression alone, e.g. such as ``Cls.attr + Cls.attr + - Cls.attr`` or similar, leading to ORM behaviors not taking place for such - statements. diff --git a/doc/build/changelog/unreleased_20/12364.rst b/doc/build/changelog/unreleased_20/12364.rst deleted file mode 100644 index 59f5d24f06..0000000000 --- a/doc/build/changelog/unreleased_20/12364.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 12364 - - Fixed issue where using :func:`_orm.aliased` around a :class:`.CTE` - construct could cause inappropriate "duplicate CTE" errors in cases where - that aliased construct appeared multiple times in a single statement. diff --git a/doc/build/changelog/unreleased_20/12368.rst b/doc/build/changelog/unreleased_20/12368.rst deleted file mode 100644 index b02f0fb0a9..0000000000 --- a/doc/build/changelog/unreleased_20/12368.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, sqlite - :tickets: 12368 - - Fixed issue that omitted the comma between multiple SQLite table extension - clauses, currently ``WITH ROWID`` and ``STRICT``, when both options - :paramref:`.Table.sqlite_with_rowid` and :paramref:`.Table.sqlite_strict` - were configured at their non-default settings at the same time. Pull - request courtesy david-fed. diff --git a/doc/build/changelog/unreleased_20/12382.rst b/doc/build/changelog/unreleased_20/12382.rst deleted file mode 100644 index 80f4630969..0000000000 --- a/doc/build/changelog/unreleased_20/12382.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 12382 - - Added new parameters :paramref:`.AddConstraint.isolate_from_table` and - :paramref:`.DropConstraint.isolate_from_table`, defaulting to True, which - both document and allow to be controllable the long-standing behavior of - these two constructs blocking the given constraint from being included - inline within the "CREATE TABLE" sequence, under the assumption that - separate add/drop directives were to be used. diff --git a/doc/build/changelog/unreleased_20/12417.rst b/doc/build/changelog/unreleased_20/12417.rst deleted file mode 100644 index b9b22a8247..0000000000 --- a/doc/build/changelog/unreleased_20/12417.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. change:: - :tags: bug, postgresql - :tickets: 12417 - - Fixed compiler issue in the PostgreSQL dialect where incorrect keywords - would be passed when using "FOR UPDATE OF" inside of a subquery. diff --git a/doc/build/conf.py b/doc/build/conf.py index 695f910467..999ea7672f 100644 --- a/doc/build/conf.py +++ b/doc/build/conf.py @@ -244,9 +244,9 @@ copyright = "2007-2025, the SQLAlchemy authors and contributors" # noqa # The short X.Y version. version = "2.0" # The full version, including alpha/beta/rc tags. -release = "2.0.38" +release = "2.0.39" -release_date = "February 6, 2025" +release_date = "March 11, 2025" site_base = os.environ.get("RTD_SITE_BASE", "https://www.sqlalchemy.org") site_adapter_template = "docs_adapter.mako"