From: Mike Bayer Date: Wed, 5 Jul 2023 17:45:01 +0000 (-0400) Subject: - 1.4.49 X-Git-Tag: rel_1_4_49 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a7438bba206f5ffa2a14cd9398354ba78fed7b6e;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - 1.4.49 --- diff --git a/doc/build/changelog/changelog_14.rst b/doc/build/changelog/changelog_14.rst index ab9552ec7f..c7b1804001 100644 --- a/doc/build/changelog/changelog_14.rst +++ b/doc/build/changelog/changelog_14.rst @@ -15,7 +15,62 @@ This document details individual issue-level changes made throughout .. changelog:: :version: 1.4.49 - :include_notes_from: unreleased_14 + :released: July 5, 2023 + + .. change:: + :tags: bug, sql + :tickets: 10042 + :versions: 2.0.18 + + Fixed issue where the :meth:`_sql.ColumnOperators.regexp_match` + when using "flags" would not produce a "stable" cache key, that + is, the cache key would keep changing each time causing cache pollution. + The same issue existed for :meth:`_sql.ColumnOperators.regexp_replace` + with both the flags and the actual replacement expression. + The flags are now represented as fixed modifier strings rendered as + safestrings rather than bound parameters, and the replacement + expression is established within the primary portion of the "binary" + element so that it generates an appropriate cache key. + + Note that as part of this change, the + :paramref:`_sql.ColumnOperators.regexp_match.flags` and + :paramref:`_sql.ColumnOperators.regexp_replace.flags` have been modified to + render as literal strings only, whereas previously they were rendered as + full SQL expressions, typically bound parameters. These parameters should + always be passed as plain Python strings and not as SQL expression + constructs; it's not expected that SQL expression constructs were used in + practice for this parameter, so this is a backwards-incompatible change. + + The change also modifies the internal structure of the expression + generated, for :meth:`_sql.ColumnOperators.regexp_replace` with or without + flags, and for :meth:`_sql.ColumnOperators.regexp_match` with flags. Third + party dialects which may have implemented regexp implementations of their + own (no such dialects could be located in a search, so impact is expected + to be low) would need to adjust the traversal of the structure to + accommodate. + + + .. change:: + :tags: bug, sql + :versions: 2.0.18 + + Fixed issue in mostly-internal :class:`.CacheKey` construct where the + ``__ne__()`` operator were not properly implemented, leading to nonsensical + results when comparing :class:`.CacheKey` instances to each other. + + + + + .. change:: + :tags: bug, extensions + :versions: 2.0.17 + + Fixed issue in mypy plugin for use with mypy 1.4. + + .. change:: + :tags: platform, usecase + + Compatibility improvements to work fully with Python 3.12 .. changelog:: :version: 1.4.48 diff --git a/doc/build/changelog/unreleased_14/10042.rst b/doc/build/changelog/unreleased_14/10042.rst deleted file mode 100644 index 2248701403..0000000000 --- a/doc/build/changelog/unreleased_14/10042.rst +++ /dev/null @@ -1,43 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 10042 - :versions: 2.0.18 - - Fixed issue where the :meth:`_sql.ColumnOperators.regexp_match` - when using "flags" would not produce a "stable" cache key, that - is, the cache key would keep changing each time causing cache pollution. - The same issue existed for :meth:`_sql.ColumnOperators.regexp_replace` - with both the flags and the actual replacement expression. - The flags are now represented as fixed modifier strings rendered as - safestrings rather than bound parameters, and the replacement - expression is established within the primary portion of the "binary" - element so that it generates an appropriate cache key. - - Note that as part of this change, the - :paramref:`_sql.ColumnOperators.regexp_match.flags` and - :paramref:`_sql.ColumnOperators.regexp_replace.flags` have been modified to - render as literal strings only, whereas previously they were rendered as - full SQL expressions, typically bound parameters. These parameters should - always be passed as plain Python strings and not as SQL expression - constructs; it's not expected that SQL expression constructs were used in - practice for this parameter, so this is a backwards-incompatible change. - - The change also modifies the internal structure of the expression - generated, for :meth:`_sql.ColumnOperators.regexp_replace` with or without - flags, and for :meth:`_sql.ColumnOperators.regexp_match` with flags. Third - party dialects which may have implemented regexp implementations of their - own (no such dialects could be located in a search, so impact is expected - to be low) would need to adjust the traversal of the structure to - accommodate. - - -.. change:: - :tags: bug, sql - :versions: 2.0.18 - - Fixed issue in mostly-internal :class:`.CacheKey` construct where the - ``__ne__()`` operator were not properly implemented, leading to nonsensical - results when comparing :class:`.CacheKey` instances to each other. - - - diff --git a/doc/build/changelog/unreleased_14/mypy14.rst b/doc/build/changelog/unreleased_14/mypy14.rst deleted file mode 100644 index ec073c7431..0000000000 --- a/doc/build/changelog/unreleased_14/mypy14.rst +++ /dev/null @@ -1,5 +0,0 @@ -.. change:: - :tags: bug, extensions - :versions: 2.0.17 - - Fixed issue in mypy plugin for use with mypy 1.4. diff --git a/doc/build/changelog/unreleased_14/py312.rst b/doc/build/changelog/unreleased_14/py312.rst deleted file mode 100644 index 9a7a73df46..0000000000 --- a/doc/build/changelog/unreleased_14/py312.rst +++ /dev/null @@ -1,4 +0,0 @@ -.. change:: - :tags: platform, usecase - - Compatibility improvements to work fully with Python 3.12 diff --git a/doc/build/conf.py b/doc/build/conf.py index 872a7d4086..52d2753a82 100644 --- a/doc/build/conf.py +++ b/doc/build/conf.py @@ -219,9 +219,9 @@ copyright = u"2007-2023, the SQLAlchemy authors and contributors" # noqa # The short X.Y version. version = "1.4" # The full version, including alpha/beta/rc tags. -release = "1.4.48" +release = "1.4.49" -release_date = "April 30, 2023" +release_date = "July 5, 2023" site_base = os.environ.get("RTD_SITE_BASE", "https://www.sqlalchemy.org") site_adapter_template = "docs_adapter.mako"