From 044d951ea46cfa405ad9cae4319d6d44afda527a Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Wed, 21 Jul 2021 18:53:27 -0400 Subject: [PATCH] - 1.4.22 --- doc/build/changelog/changelog_14.rst | 83 +++++++++++++++++++++- doc/build/changelog/unreleased_14/6740.rst | 9 --- doc/build/changelog/unreleased_14/6769.rst | 18 ----- doc/build/changelog/unreleased_14/6770.rst | 13 ---- doc/build/changelog/unreleased_14/6771.rst | 8 --- doc/build/changelog/unreleased_14/6775.rst | 9 --- doc/build/changelog/unreleased_14/6786.rst | 10 --- doc/build/changelog/unreleased_14/6793.rst | 7 -- doc/build/conf.py | 4 +- 9 files changed, 84 insertions(+), 77 deletions(-) delete mode 100644 doc/build/changelog/unreleased_14/6740.rst delete mode 100644 doc/build/changelog/unreleased_14/6769.rst delete mode 100644 doc/build/changelog/unreleased_14/6770.rst delete mode 100644 doc/build/changelog/unreleased_14/6771.rst delete mode 100644 doc/build/changelog/unreleased_14/6775.rst delete mode 100644 doc/build/changelog/unreleased_14/6786.rst delete mode 100644 doc/build/changelog/unreleased_14/6793.rst diff --git a/doc/build/changelog/changelog_14.rst b/doc/build/changelog/changelog_14.rst index fbf02862d8..ad209bed90 100644 --- a/doc/build/changelog/changelog_14.rst +++ b/doc/build/changelog/changelog_14.rst @@ -15,7 +15,88 @@ This document details individual issue-level changes made throughout .. changelog:: :version: 1.4.22 - :include_notes_from: unreleased_14 + :released: July 21, 2021 + + .. change:: + :tags: bug, sql + :tickets: 6786 + + Fixed issue where use of the :paramref:`_sql.case.whens` parameter passing + a dictionary positionally and not as a keyword argument would emit a 2.0 + deprecation warning, referring to the deprecation of passing a list + positionally. The dictionary format of "whens", passed positionally, is + still supported and was accidentally marked as deprecated. + + + .. change:: + :tags: bug, orm + :tickets: 6775 + + Fixed issue in new :meth:`_schema.Table.table_valued` method where the + resulting :class:`_sql.TableValuedColumn` construct would not respond + correctly to alias adaptation as is used throughout the ORM, such as for + eager loading, polymorphic loading, etc. + + + .. change:: + :tags: bug, orm + :tickets: 6769 + + Fixed issue where usage of the :meth:`_result.Result.unique` method with an + ORM result that included column expressions with unhashable types, such as + ``JSON`` or ``ARRAY`` using non-tuples would silently fall back to using + the ``id()`` function, rather than raising an error. This now raises an + error when the :meth:`_result.Result.unique` method is used in a 2.0 style + ORM query. Additionally, hashability is assumed to be True for result + values of unknown type, such as often happens when using SQL functions of + unknown return type; if values are truly not hashable then the ``hash()`` + itself will raise. + + For legacy ORM queries, since the legacy :class:`_orm.Query` object + uniquifies in all cases, the old rules remain in place, which is to use + ``id()`` for result values of unknown type as this legacy uniquing is + mostly for the purpose of uniquing ORM entities and not column values. + + .. change:: + :tags: orm, bug + :tickets: 6771 + + Fixed an issue where clearing of mappers during things like test suite + teardowns could cause a "dictionary changed size" warning during garbage + collection, due to iteration of a weak-referencing dictionary. A ``list()`` + has been applied to prevent concurrent GC from affecting this operation. + + .. change:: + :tags: bug, sql + :tickets: 6770 + + Fixed issue where type-specific bound parameter handlers would not be + called upon in the case of using the :meth:`_sql.Insert.values` method with + the Python ``None`` value; in particular, this would be noticed when using + the :class:`_types.JSON` datatype as well as related PostgreSQL specific + types such as :class:`_postgresql.JSONB` which would fail to encode the + Python ``None`` value into JSON null, however the issue was generalized to + any bound parameter handler in conjunction with this specific method of + :class:`_sql.Insert`. + + + .. change:: + :tags: bug, engine + :tickets: 6740 + + Added some guards against ``KeyError`` in the event system to accommodate + the case that the interpreter is shutting down at the same time + :meth:`_engine.Engine.dispose` is being called, which would cause stack + trace warnings. + + + .. change:: + :tags: bug, orm, regression + :tickets: 6793 + + Fixed critical caching issue where the ORM's persistence feature using + INSERT..RETURNING would cache an incorrect query when mixing the "bulk + save" and standard "flush" forms of INSERT. .. changelog:: :version: 1.4.21 diff --git a/doc/build/changelog/unreleased_14/6740.rst b/doc/build/changelog/unreleased_14/6740.rst deleted file mode 100644 index 62ac3c83fb..0000000000 --- a/doc/build/changelog/unreleased_14/6740.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, engine - :tickets: 6740 - - Added some guards against ``KeyError`` in the event system to accommodate - the case that the interpreter is shutting down at the same time - :meth:`_engine.Engine.dispose` is being called, which would cause stack - trace warnings. - diff --git a/doc/build/changelog/unreleased_14/6769.rst b/doc/build/changelog/unreleased_14/6769.rst deleted file mode 100644 index 05ddc8d560..0000000000 --- a/doc/build/changelog/unreleased_14/6769.rst +++ /dev/null @@ -1,18 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 6769 - - Fixed issue where usage of the :meth:`_result.Result.unique` method with an - ORM result that included column expressions with unhashable types, such as - ``JSON`` or ``ARRAY`` using non-tuples would silently fall back to using - the ``id()`` function, rather than raising an error. This now raises an - error when the :meth:`_result.Result.unique` method is used in a 2.0 style - ORM query. Additionally, hashability is assumed to be True for result - values of unknown type, such as often happens when using SQL functions of - unknown return type; if values are truly not hashable then the ``hash()`` - itself will raise. - - For legacy ORM queries, since the legacy :class:`_orm.Query` object - uniquifies in all cases, the old rules remain in place, which is to use - ``id()`` for result values of unknown type as this legacy uniquing is - mostly for the purpose of uniquing ORM entities and not column values. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_14/6770.rst b/doc/build/changelog/unreleased_14/6770.rst deleted file mode 100644 index 7da35f47e0..0000000000 --- a/doc/build/changelog/unreleased_14/6770.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 6770 - - Fixed issue where type-specific bound parameter handlers would not be - called upon in the case of using the :meth:`_sql.Insert.values` method with - the Python ``None`` value; in particular, this would be noticed when using - the :class:`_types.JSON` datatype as well as related PostgreSQL specific - types such as :class:`_postgresql.JSONB` which would fail to encode the - Python ``None`` value into JSON null, however the issue was generalized to - any bound parameter handler in conjunction with this specific method of - :class:`_sql.Insert`. - diff --git a/doc/build/changelog/unreleased_14/6771.rst b/doc/build/changelog/unreleased_14/6771.rst deleted file mode 100644 index 811ee7d825..0000000000 --- a/doc/build/changelog/unreleased_14/6771.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: orm, bug - :tickets: 6771 - - Fixed an issue where clearing of mappers during things like test suite - teardowns could cause a "dictionary changed size" warning during garbage - collection, due to iteration of a weak-referencing dictionary. A ``list()`` - has been applied to prevent concurrent GC from affecting this operation. diff --git a/doc/build/changelog/unreleased_14/6775.rst b/doc/build/changelog/unreleased_14/6775.rst deleted file mode 100644 index e7c9a5351c..0000000000 --- a/doc/build/changelog/unreleased_14/6775.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 6775 - - Fixed issue in new :meth:`_schema.Table.table_valued` method where the - resulting :class:`_sql.TableValuedColumn` construct would not respond - correctly to alias adaptation as is used throughout the ORM, such as for - eager loading, polymorphic loading, etc. - diff --git a/doc/build/changelog/unreleased_14/6786.rst b/doc/build/changelog/unreleased_14/6786.rst deleted file mode 100644 index 7d95d5c928..0000000000 --- a/doc/build/changelog/unreleased_14/6786.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 6786 - - Fixed issue where use of the :paramref:`_sql.case.whens` parameter passing - a dictionary positionally and not as a keyword argument would emit a 2.0 - deprecation warning, referring to the deprecation of passing a list - positionally. The dictionary format of "whens", passed positionally, is - still supported and was accidentally marked as deprecated. - diff --git a/doc/build/changelog/unreleased_14/6793.rst b/doc/build/changelog/unreleased_14/6793.rst deleted file mode 100644 index 059bdac65e..0000000000 --- a/doc/build/changelog/unreleased_14/6793.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: bug, orm, regression - :tickets: 6793 - - Fixed critical caching issue where the ORM's persistence feature using - INSERT..RETURNING would cache an incorrect query when mixing the "bulk - save" and standard "flush" forms of INSERT. diff --git a/doc/build/conf.py b/doc/build/conf.py index 03a35b4f3e..d56d7d914e 100644 --- a/doc/build/conf.py +++ b/doc/build/conf.py @@ -196,9 +196,9 @@ copyright = u"2007-2021, 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.21" +release = "1.4.22" -release_date = "July 14, 2021" +release_date = "July 21, 2021" site_base = os.environ.get("RTD_SITE_BASE", "https://www.sqlalchemy.org") site_adapter_template = "docs_adapter.mako" -- 2.47.2