From acbc5e824130ae2944defde655a2c437a711ce6b Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 22 Jun 2021 21:22:33 -0400 Subject: [PATCH] - 1.4.19 --- doc/build/changelog/changelog_14.rst | 132 ++++++++++++++++++++- doc/build/changelog/unreleased_14/5557.rst | 6 - doc/build/changelog/unreleased_14/6132.rst | 11 -- doc/build/changelog/unreleased_14/6476.rst | 7 -- doc/build/changelog/unreleased_14/6503.rst | 13 -- doc/build/changelog/unreleased_14/6583.rst | 13 -- doc/build/changelog/unreleased_14/6621.rst | 8 -- doc/build/changelog/unreleased_14/6649.rst | 8 -- doc/build/changelog/unreleased_14/6652.rst | 11 -- doc/build/changelog/unreleased_14/6658.rst | 11 -- doc/build/changelog/unreleased_14/6661.rst | 22 ---- doc/build/changelog/unreleased_14/6663.rst | 9 -- doc/build/conf.py | 4 +- 13 files changed, 133 insertions(+), 122 deletions(-) delete mode 100644 doc/build/changelog/unreleased_14/5557.rst delete mode 100644 doc/build/changelog/unreleased_14/6132.rst delete mode 100644 doc/build/changelog/unreleased_14/6476.rst delete mode 100644 doc/build/changelog/unreleased_14/6503.rst delete mode 100644 doc/build/changelog/unreleased_14/6583.rst delete mode 100644 doc/build/changelog/unreleased_14/6621.rst delete mode 100644 doc/build/changelog/unreleased_14/6649.rst delete mode 100644 doc/build/changelog/unreleased_14/6652.rst delete mode 100644 doc/build/changelog/unreleased_14/6658.rst delete mode 100644 doc/build/changelog/unreleased_14/6661.rst delete mode 100644 doc/build/changelog/unreleased_14/6663.rst diff --git a/doc/build/changelog/changelog_14.rst b/doc/build/changelog/changelog_14.rst index e84cc167ac..2774c5b8eb 100644 --- a/doc/build/changelog/changelog_14.rst +++ b/doc/build/changelog/changelog_14.rst @@ -15,7 +15,137 @@ This document details individual issue-level changes made throughout .. changelog:: :version: 1.4.19 - :include_notes_from: unreleased_14 + :released: June 22, 2021 + + .. change:: + :tags: bug, mssql + :tickets: 6658 + + Fixed bug where the "schema_translate_map" feature would fail to function + correctly in conjunction with an INSERT into a table that has an IDENTITY + column, where the value of the IDENTITY column were specified in the values + of the INSERT thus triggering SQLAlchemy's feature of setting IDENTITY + INSERT to "on"; it's in this directive where the schema translate map would + fail to be honored. + + + .. change:: + :tags: bug, sql + :tickets: 6663 + + Fixed issue in CTE constructs mostly relevant to ORM use cases where a + recursive CTE against "anonymous" labels such as those seen in ORM + ``column_property()`` mappings would render in the + ``WITH RECURSIVE xyz(...)`` section as their raw internal label and not a + cleanly anonymized name. + + .. change:: + :tags: mssql, change + :tickets: 6503, 6253 + + Made improvements to the server version regexp used by the pymssql dialect + to prevent a regexp overflow in case of an invalid version string. + + .. change:: + :tags: bug, orm, regression + :tickets: 6503, 6253 + + Fixed further regressions in the same area as that of :ticket:`6052` where + loader options as well as invocations of methods like + :meth:`_orm.Query.join` would fail if the left side of the statement for + which the option/join depends upon were replaced by using the + :meth:`_orm.Query.with_entities` method, or when using 2.0 style queries + when using the :meth:`_sql.Select.with_only_columns` method. A new set of + state has been added to the objects which tracks the "left" entities that + the options / join were made against which is memoized when the lead + entities are changed. + + .. change:: + :tags: bug, asyncio, postgresql + :tickets: 6652 + + Fixed bug in asyncio implementation where the greenlet adaptation system + failed to propagate ``BaseException`` subclasses, most notably including + ``asyncio.CancelledError``, to the exception handling logic used by the + engine to invalidate and clean up the connection, thus preventing + connections from being correctly disposed when a task was cancelled. + + + + .. change:: + :tags: usecase, asyncio + :tickets: 6583 + + Implemented :class:`_asyncio.async_scoped_session` to address some + asyncio-related incompatibilities between :class:`_orm.scoped_session` and + :class:`_asyncio.AsyncSession`, in which some methods (notably the + :meth:`_asyncio.async_scoped_session.remove` method) should be used with + the ``await`` keyword. + + .. seealso:: + + :ref:`asyncio_scoped_session` + + .. change:: + :tags: usecase, mysql + :tickets: 6132 + + Added new construct :class:`_mysql.match`, which provides for the full + range of MySQL's MATCH operator including multiple column support and + modifiers. Pull request courtesy Anton Kovalevich. + + .. seealso:: + + :class:`_mysql.match` + + .. change:: + :tags: bug, postgresql, oracle + :tickets: 6649 + + Fixed issue where the ``INTERVAL`` datatype on PostgreSQL and Oracle would + produce an ``AttributeError`` when used in the context of a comparison + operation against a ``timedelta()`` object. Pull request courtesy + MajorDallas. + + .. change:: + :tags: bug, mypy + :tickets: 6476 + + Fixed issue in mypy plugin where class info for a custom declarative base + would not be handled correctly on a cached mypy pass, leading to an + AssertionError being raised. + + .. change:: + :tags: bug, orm + :tickets: 6661 + + Refined the behavior of ORM subquery rendering with regards to deferred + columns and column properties to be more compatible with that of 1.3 while + also providing for 1.4's newer features. As a subquery in 1.4 does not make + use of loader options, including :func:`_orm.undefer`, a subquery that is + against an ORM entity with deferred attributes will now render those + deferred attributes that refer directly to mapped table columns, as these + are needed in the outer SELECT if that outer SELECT makes use of these + columns; however a deferred attribute that refers to a composed SQL + expression as we normally do with :func:`_orm.column_property` will not be + part of the subquery, as these can be selected explicitly if needed in the + subquery. If the entity is being SELECTed from this subquery, the column + expression can still render on "the outside" in terms of the derived + subquery columns. This produces essentially the same behavior as when + working with 1.3. However in this case the fix has to also make sure that + the ``.selected_columns`` collection of an ORM-enabled :func:`_sql.select` + also follows these rules, which in particular allows recursive CTEs to + render correctly in this scenario, which were previously failing to render + correctly due to this issue. + + .. change:: + :tags: bug, postgresql + :tickets: 6621 + + Fixed issue where the pool "pre ping" feature would implicitly start a + transaction, which would then interfere with custom transactional flags + such as PostgreSQL's "read only" mode when used with the psycopg2 driver. + .. changelog:: :version: 1.4.18 diff --git a/doc/build/changelog/unreleased_14/5557.rst b/doc/build/changelog/unreleased_14/5557.rst deleted file mode 100644 index 1fcae4f6d6..0000000000 --- a/doc/build/changelog/unreleased_14/5557.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. change:: - :tags: mssql, change - :tickets: 6503, 6253 - - Made improvements to the server version regexp used by the pymssql dialect - to prevent a regexp overflow in case of an invalid version string. diff --git a/doc/build/changelog/unreleased_14/6132.rst b/doc/build/changelog/unreleased_14/6132.rst deleted file mode 100644 index 59964e6497..0000000000 --- a/doc/build/changelog/unreleased_14/6132.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. change:: - :tags: usecase, mysql - :tickets: 6132 - - Added new construct :class:`_mysql.match`, which provides for the full - range of MySQL's MATCH operator including multiple column support and - modifiers. Pull request courtesy Anton Kovalevich. - - .. seealso:: - - :class:`_mysql.match` diff --git a/doc/build/changelog/unreleased_14/6476.rst b/doc/build/changelog/unreleased_14/6476.rst deleted file mode 100644 index 8f740f4a17..0000000000 --- a/doc/build/changelog/unreleased_14/6476.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: bug, mypy - :tickets: 6476 - - Fixed issue in mypy plugin where class info for a custom declarative base - would not be handled correctly on a cached mypy pass, leading to an - AssertionError being raised. diff --git a/doc/build/changelog/unreleased_14/6503.rst b/doc/build/changelog/unreleased_14/6503.rst deleted file mode 100644 index a2d50bc99c..0000000000 --- a/doc/build/changelog/unreleased_14/6503.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. change:: - :tags: bug, orm, regression - :tickets: 6503, 6253 - - Fixed further regressions in the same area as that of :ticket:`6052` where - loader options as well as invocations of methods like - :meth:`_orm.Query.join` would fail if the left side of the statement for - which the option/join depends upon were replaced by using the - :meth:`_orm.Query.with_entities` method, or when using 2.0 style queries - when using the :meth:`_sql.Select.with_only_columns` method. A new set of - state has been added to the objects which tracks the "left" entities that - the options / join were made against which is memoized when the lead - entities are changed. diff --git a/doc/build/changelog/unreleased_14/6583.rst b/doc/build/changelog/unreleased_14/6583.rst deleted file mode 100644 index 2d235c6d48..0000000000 --- a/doc/build/changelog/unreleased_14/6583.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. change:: - :tags: usecase, asyncio - :tickets: 6583 - - Implemented :class:`_asyncio.async_scoped_session` to address some - asyncio-related incompatibilities between :class:`_orm.scoped_session` and - :class:`_asyncio.AsyncSession`, in which some methods (notably the - :meth:`_asyncio.async_scoped_session.remove` method) should be used with - the ``await`` keyword. - - .. seealso:: - - :ref:`asyncio_scoped_session` \ No newline at end of file diff --git a/doc/build/changelog/unreleased_14/6621.rst b/doc/build/changelog/unreleased_14/6621.rst deleted file mode 100644 index 0a87206174..0000000000 --- a/doc/build/changelog/unreleased_14/6621.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, postgresql - :tickets: 6621 - - Fixed issue where the pool "pre ping" feature would implicitly start a - transaction, which would then interfere with custom transactional flags - such as PostgreSQL's "read only" mode when used with the psycopg2 driver. - diff --git a/doc/build/changelog/unreleased_14/6649.rst b/doc/build/changelog/unreleased_14/6649.rst deleted file mode 100644 index 70ec64216d..0000000000 --- a/doc/build/changelog/unreleased_14/6649.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, postgresql, oracle - :tickets: 6649 - - Fixed issue where the ``INTERVAL`` datatype on PostgreSQL and Oracle would - produce an ``AttributeError`` when used in the context of a comparison - operation against a ``timedelta()`` object. Pull request courtesy - MajorDallas. diff --git a/doc/build/changelog/unreleased_14/6652.rst b/doc/build/changelog/unreleased_14/6652.rst deleted file mode 100644 index ebc12bae6d..0000000000 --- a/doc/build/changelog/unreleased_14/6652.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. change:: - :tags: bug, asyncio, postgresql - :tickets: 6652 - - Fixed bug in asyncio implementation where the greenlet adaptation system - failed to propagate ``BaseException`` subclasses, most notably including - ``asyncio.CancelledError``, to the exception handling logic used by the - engine to invalidate and clean up the connection, thus preventing - connections from being correctly disposed when a task was cancelled. - - diff --git a/doc/build/changelog/unreleased_14/6658.rst b/doc/build/changelog/unreleased_14/6658.rst deleted file mode 100644 index c0d899517e..0000000000 --- a/doc/build/changelog/unreleased_14/6658.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. change:: - :tags: bug, mssql - :tickets: 6658 - - Fixed bug where the "schema_translate_map" feature would fail to function - correctly in conjunction with an INSERT into a table that has an IDENTITY - column, where the value of the IDENTITY column were specified in the values - of the INSERT thus triggering SQLAlchemy's feature of setting IDENTITY - INSERT to "on"; it's in this directive where the schema translate map would - fail to be honored. - diff --git a/doc/build/changelog/unreleased_14/6661.rst b/doc/build/changelog/unreleased_14/6661.rst deleted file mode 100644 index 9e4907f791..0000000000 --- a/doc/build/changelog/unreleased_14/6661.rst +++ /dev/null @@ -1,22 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 6661 - - Refined the behavior of ORM subquery rendering with regards to deferred - columns and column properties to be more compatible with that of 1.3 while - also providing for 1.4's newer features. As a subquery in 1.4 does not make - use of loader options, including :func:`_orm.undefer`, a subquery that is - against an ORM entity with deferred attributes will now render those - deferred attributes that refer directly to mapped table columns, as these - are needed in the outer SELECT if that outer SELECT makes use of these - columns; however a deferred attribute that refers to a composed SQL - expression as we normally do with :func:`_orm.column_property` will not be - part of the subquery, as these can be selected explicitly if needed in the - subquery. If the entity is being SELECTed from this subquery, the column - expression can still render on "the outside" in terms of the derived - subquery columns. This produces essentially the same behavior as when - working with 1.3. However in this case the fix has to also make sure that - the ``.selected_columns`` collection of an ORM-enabled :func:`_sql.select` - also follows these rules, which in particular allows recursive CTEs to - render correctly in this scenario, which were previously failing to render - correctly due to this issue. diff --git a/doc/build/changelog/unreleased_14/6663.rst b/doc/build/changelog/unreleased_14/6663.rst deleted file mode 100644 index 50367be5a1..0000000000 --- a/doc/build/changelog/unreleased_14/6663.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 6663 - - Fixed issue in CTE constructs mostly relevant to ORM use cases where a - recursive CTE against "anonymous" labels such as those seen in ORM - ``column_property()`` mappings would render in the - ``WITH RECURSIVE xyz(...)`` section as their raw internal label and not a - cleanly anonymized name. diff --git a/doc/build/conf.py b/doc/build/conf.py index c63491f060..e8e00d1d64 100644 --- a/doc/build/conf.py +++ b/doc/build/conf.py @@ -195,9 +195,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.18" +release = "1.4.19" -release_date = "June 10, 2021" +release_date = "June 22, 2021" site_base = os.environ.get("RTD_SITE_BASE", "http://www.sqlalchemy.org") site_adapter_template = "docs_adapter.mako" -- 2.47.2