From: Mike Bayer Date: Sat, 15 Jul 2023 12:55:40 +0000 (-0400) Subject: - 2.0.19 X-Git-Tag: rel_2_0_19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9e89d2cbbf7ccef05579472b94c90124a1ecf9e3;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - 2.0.19 --- diff --git a/doc/build/changelog/changelog_20.rst b/doc/build/changelog/changelog_20.rst index e11e2b748e..ac221c50a9 100644 --- a/doc/build/changelog/changelog_20.rst +++ b/doc/build/changelog/changelog_20.rst @@ -10,7 +10,96 @@ .. changelog:: :version: 2.0.19 - :include_notes_from: unreleased_20 + :released: July 15, 2023 + + .. change:: + :tags: bug, orm + :tickets: 10089 + + Fixed issue where setting a relationship collection directly, where an + object in the new collection were already present, would not trigger a + cascade event for that object, leading to it not being added to the + :class:`_orm.Session` if it were not already present. This is similar in + nature to :ticket:`6471` and is a more apparent issue due to the removal of + ``cascade_backrefs`` in the 2.0 series. The + :meth:`_orm.AttributeEvents.append_wo_mutation` event added as part of + :ticket:`6471` is now also emitted for existing members of a collection + that are present in a bulk set of that same collection. + + .. change:: + :tags: bug, engine + :tickets: 10093 + + Renamed :attr:`_result.Row.t` and :meth:`_result.Row.tuple` to + :attr:`_result.Row._t` and :meth:`_result.Row._tuple`; this is to suit the + policy that all methods and pre-defined attributes on :class:`.Row` should + be in the style of Python standard library ``namedtuple`` where all fixed + names have a leading underscore, to avoid name conflicts with existing + column names. The previous method/attribute is now deprecated and will + emit a deprecation warning. + + .. change:: + :tags: bug, postgresql + :tickets: 10069 + + Fixed regression caused by improvements to PostgreSQL URL parsing in + :ticket:`10004` where "host" query string arguments that had colons in + them, to support various third party proxy servers and/or dialects, would + not parse correctly as these were evaluted as ``host:port`` combinations. + Parsing has been updated to consider a colon as indicating a ``host:port`` + value only if the hostname contains only alphanumeric characters with dots + or dashes only (e.g. no slashes), followed by exactly one colon followed by + an all-integer token of zero or more integers. In all other cases, the + full string is taken as a host. + + .. change:: + :tags: bug, engine + :tickets: 10079 + + Added detection for non-string, non-:class:`_engine.URL` objects to the + :func:`_engine.make_url` function, allowing ``ArgumentError`` to be thrown + immediately, rather than causing failures later on. Special logic ensures + that mock forms of :class:`_engine.URL` are allowed through. Pull request + courtesy Grigoriev Semyon. + + .. change:: + :tags: bug, orm + :tickets: 10090 + + Fixed issue where objects that were associated with an unloaded collection + via backref, but were not merged into the :class:`_orm.Session` due to the + removal of ``cascade_backrefs`` in the 2.0 series, would not emit a warning + that these objects were not being included in a flush, even though they + were pending members of the collection; in other such cases, a warning is + emitted when a collection being flushed contains non-attached objects which + will be essentially discarded. The addition of the warning for + backref-pending collection members establishes greater consistency with + collections that may be present or non-present and possibly flushed or not + flushed at different times based on different relationship loading + strategies. + + .. change:: + :tags: bug, postgresql + :tickets: 10096 + + Fixed issue where comparisons to the :class:`_postgresql.CITEXT` datatype + would cast the right side to ``VARCHAR``, leading to the right side not + being interpreted as a ``CITEXT`` datatype, for the asyncpg, psycopg3 and + pg80000 dialects. This led to the :class:`_postgresql.CITEXT` type being + essentially unusable for practical use; this is now fixed and the test + suite has been corrected to properly assert that expressions are rendered + correctly. + + .. change:: + :tags: bug, orm, regression + :tickets: 10098 + + Fixed additional regression caused by :ticket:`9805` where more aggressive + propagation of the "ORM" flag on statements could lead to an internal + attribute error when embedding an ORM :class:`.Query` construct that + nonetheless contained no ORM entities within a Core SQL statement, in this + case ORM-enabled UPDATE and DELETE statements. + .. changelog:: :version: 2.0.18 diff --git a/doc/build/changelog/unreleased_20/10069.rst b/doc/build/changelog/unreleased_20/10069.rst deleted file mode 100644 index f04854ebc6..0000000000 --- a/doc/build/changelog/unreleased_20/10069.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. change:: - :tags: bug, postgresql - :tickets: 10069 - - Fixed regression caused by improvements to PostgreSQL URL parsing in - :ticket:`10004` where "host" query string arguments that had colons in - them, to support various third party proxy servers and/or dialects, would - not parse correctly as these were evaluted as ``host:port`` combinations. - Parsing has been updated to consider a colon as indicating a ``host:port`` - value only if the hostname contains only alphanumeric characters with dots - or dashes only (e.g. no slashes), followed by exactly one colon followed by - an all-integer token of zero or more integers. In all other cases, the - full string is taken as a host. diff --git a/doc/build/changelog/unreleased_20/10079.rst b/doc/build/changelog/unreleased_20/10079.rst deleted file mode 100644 index 9af5674f01..0000000000 --- a/doc/build/changelog/unreleased_20/10079.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, engine - :tickets: 10079 - - Added detection for non-string, non-:class:`_engine.URL` objects to the - :func:`_engine.make_url` function, allowing ``ArgumentError`` to be thrown - immediately, rather than causing failures later on. Special logic ensures - that mock forms of :class:`_engine.URL` are allowed through. Pull request - courtesy Grigoriev Semyon. diff --git a/doc/build/changelog/unreleased_20/10089.rst b/doc/build/changelog/unreleased_20/10089.rst deleted file mode 100644 index 1444215a46..0000000000 --- a/doc/build/changelog/unreleased_20/10089.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 10089 - - Fixed issue where setting a relationship collection directly, where an - object in the new collection were already present, would not trigger a - cascade event for that object, leading to it not being added to the - :class:`_orm.Session` if it were not already present. This is similar in - nature to :ticket:`6471` and is a more apparent issue due to the removal of - ``cascade_backrefs`` in the 2.0 series. The - :meth:`_orm.AttributeEvents.append_wo_mutation` event added as part of - :ticket:`6471` is now also emitted for existing members of a collection - that are present in a bulk set of that same collection. diff --git a/doc/build/changelog/unreleased_20/10090.rst b/doc/build/changelog/unreleased_20/10090.rst deleted file mode 100644 index a6a6cabfa9..0000000000 --- a/doc/build/changelog/unreleased_20/10090.rst +++ /dev/null @@ -1,15 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 10090 - - Fixed issue where objects that were associated with an unloaded collection - via backref, but were not merged into the :class:`_orm.Session` due to the - removal of ``cascade_backrefs`` in the 2.0 series, would not emit a warning - that these objects were not being included in a flush, even though they - were pending members of the collection; in other such cases, a warning is - emitted when a collection being flushed contains non-attached objects which - will be essentially discarded. The addition of the warning for - backref-pending collection members establishes greater consistency with - collections that may be present or non-present and possibly flushed or not - flushed at different times based on different relationship loading - strategies. diff --git a/doc/build/changelog/unreleased_20/10093.rst b/doc/build/changelog/unreleased_20/10093.rst deleted file mode 100644 index dd790a5756..0000000000 --- a/doc/build/changelog/unreleased_20/10093.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. change:: - :tags: bug, engine - :tickets: 10093 - - Renamed :attr:`_result.Row.t` and :meth:`_result.Row.tuple` to - :attr:`_result.Row._t` and :meth:`_result.Row._tuple`; this is to suit the - policy that all methods and pre-defined attributes on :class:`.Row` should - be in the style of Python standard library ``namedtuple`` where all fixed - names have a leading underscore, to avoid name conflicts with existing - column names. The previous method/attribute is now deprecated and will - emit a deprecation warning. diff --git a/doc/build/changelog/unreleased_20/10096.rst b/doc/build/changelog/unreleased_20/10096.rst deleted file mode 100644 index 2d8a8a5413..0000000000 --- a/doc/build/changelog/unreleased_20/10096.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. change:: - :tags: bug, postgresql - :tickets: 10096 - - Fixed issue where comparisons to the :class:`_postgresql.CITEXT` datatype - would cast the right side to ``VARCHAR``, leading to the right side not - being interpreted as a ``CITEXT`` datatype, for the asyncpg, psycopg3 and - pg80000 dialects. This led to the :class:`_postgresql.CITEXT` type being - essentially unusable for practical use; this is now fixed and the test - suite has been corrected to properly assert that expressions are rendered - correctly. diff --git a/doc/build/changelog/unreleased_20/10098.rst b/doc/build/changelog/unreleased_20/10098.rst deleted file mode 100644 index a4cd1959ba..0000000000 --- a/doc/build/changelog/unreleased_20/10098.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, orm, regression - :tickets: 10098 - - Fixed additional regression caused by :ticket:`9805` where more aggressive - propagation of the "ORM" flag on statements could lead to an internal - attribute error when embedding an ORM :class:`.Query` construct that - nonetheless contained no ORM entities within a Core SQL statement, in this - case ORM-enabled UPDATE and DELETE statements. - diff --git a/doc/build/conf.py b/doc/build/conf.py index dbc696e398..f3c725737d 100644 --- a/doc/build/conf.py +++ b/doc/build/conf.py @@ -242,9 +242,9 @@ copyright = "2007-2023, 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.18" +release = "2.0.19" -release_date = "July 5, 2023" +release_date = "July 15, 2023" site_base = os.environ.get("RTD_SITE_BASE", "https://www.sqlalchemy.org") site_adapter_template = "docs_adapter.mako"