From: Mike Bayer Date: Sun, 16 Oct 2022 14:12:34 +0000 (-0400) Subject: - 1.4.42 X-Git-Tag: rel_1_4_42 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8aa07c8e62a0483e0c882ffbf97453d5e4614efe;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - 1.4.42 --- diff --git a/doc/build/changelog/changelog_14.rst b/doc/build/changelog/changelog_14.rst index 5a267ebd0d..f82d623a20 100644 --- a/doc/build/changelog/changelog_14.rst +++ b/doc/build/changelog/changelog_14.rst @@ -15,7 +15,116 @@ This document details individual issue-level changes made throughout .. changelog:: :version: 1.4.42 - :include_notes_from: unreleased_14 + :released: October 16, 2022 + + .. change:: + :tags: bug, asyncio + :tickets: 8516 + + Improved implementation of ``asyncio.shield()`` used in context managers as + added in :ticket:`8145`, such that the "close" operation is enclosed within + an ``asyncio.Task`` which is then strongly referenced as the operation + proceeds. This is per Python documentation indicating that the task is + otherwise not strongly referenced. + + .. change:: + :tags: bug, orm + :tickets: 8614 + + The :paramref:`_orm.Session.execute.bind_arguments` dictionary is no longer + mutated when passed to :meth:`_orm.Session.execute` and similar; instead, + it's copied to an internal dictionary for state changes. Among other + things, this fixes and issue where the "clause" passed to the + :meth:`_orm.Session.get_bind` method would be incorrectly referring to the + :class:`_sql.Select` construct used for the "fetch" synchronization + strategy, when the actual query being emitted was a :class:`_dml.Delete` or + :class:`_dml.Update`. This would interfere with recipes for "routing + sessions". + + .. change:: + :tags: bug, orm + :tickets: 7094 + + A warning is emitted in ORM configurations when an explicit + :func:`_orm.remote` annotation is applied to columns that are local to the + immediate mapped class, when the referenced class does not include any of + the same table columns. Ideally this would raise an error at some point as + it's not correct from a mapping point of view. + + .. change:: + :tags: bug, orm + :tickets: 7545 + + A warning is emitted when attempting to configure a mapped class within an + inheritance hierarchy where the mapper is not given any polymorphic + identity, however there is a polymorphic discriminator column assigned. + Such classes should be abstract if they never intend to load directly. + + + .. change:: + :tags: bug, mssql, regression + :tickets: 8525 + + Fixed yet another regression in SQL Server isolation level fetch (see + :ticket:`8231`, :ticket:`8475`), this time with "Microsoft Dynamics CRM + Database via Azure Active Directory", which apparently lacks the + ``system_views`` view entirely. Error catching has been extended that under + no circumstances will this method ever fail, provided database connectivity + is present. + + .. change:: + :tags: orm, bug, regression + :tickets: 8569 + + Fixed regression for 1.4 in :func:`_orm.contains_eager` where the "wrap in + subquery" logic of :func:`_orm.joinedload` would be inadvertently triggered + for use of the :func:`_orm.contains_eager` function with similar statements + (e.g. those that use ``distinct()``, ``limit()`` or ``offset()``), which + would then lead to secondary issues with queries that used some + combinations of SQL label names and aliasing. This "wrapping" is not + appropriate for :func:`_orm.contains_eager` which has always had the + contract that the user-defined SQL statement is unmodified with the + exception of adding the appropriate columns to be fetched. + + .. change:: + :tags: bug, orm, regression + :tickets: 8507 + + Fixed regression where using ORM update() with synchronize_session='fetch' + would fail due to the use of evaluators that are now used to determine the + in-Python value for expressions in the the SET clause when refreshing + objects; if the evaluators make use of math operators against non-numeric + values such as PostgreSQL JSONB, the non-evaluable condition would fail to + be detected correctly. The evaluator now limits the use of math mutation + operators to numeric types only, with the exception of "+" that continues + to work for strings as well. SQLAlchemy 2.0 may alter this further by + fetching the SET values completely rather than using evaluation. + + .. change:: + :tags: usecase, postgresql + :tickets: 8574 + + :class:`_postgresql.aggregate_order_by` now supports cache generation. + + .. change:: + :tags: bug, mysql + :tickets: 8588 + + Adjusted the regular expression used to match "CREATE VIEW" when + testing for views to work more flexibly, no longer requiring the + special keyword "ALGORITHM" in the middle, which was intended to be + optional but was not working correctly. The change allows view reflection + to work more completely on MySQL-compatible variants such as StarRocks. + Pull request courtesy John Bodley. + + .. change:: + :tags: bug, engine + :tickets: 8536 + + Fixed issue where mixing "*" with additional explicitly-named column + expressions within the columns clause of a :func:`_sql.select` construct + would cause result-column targeting to sometimes consider the label name or + other non-repeated names to be an ambiguous target. .. changelog:: :version: 1.4.41 diff --git a/doc/build/changelog/unreleased_14/7094.rst b/doc/build/changelog/unreleased_14/7094.rst deleted file mode 100644 index b6fb30d998..0000000000 --- a/doc/build/changelog/unreleased_14/7094.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 7094 - - A warning is emitted in ORM configurations when an explicit - :func:`_orm.remote` annotation is applied to columns that are local to the - immediate mapped class, when the referenced class does not include any of - the same table columns. Ideally this would raise an error at some point as - it's not correct from a mapping point of view. diff --git a/doc/build/changelog/unreleased_14/7545.rst b/doc/build/changelog/unreleased_14/7545.rst deleted file mode 100644 index ea31d1a3c3..0000000000 --- a/doc/build/changelog/unreleased_14/7545.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 7545 - - A warning is emitted when attempting to configure a mapped class within an - inheritance hierarchy where the mapper is not given any polymorphic - identity, however there is a polymorphic discriminator column assigned. - Such classes should be abstract if they never intend to load directly. - diff --git a/doc/build/changelog/unreleased_14/8507.rst b/doc/build/changelog/unreleased_14/8507.rst deleted file mode 100644 index 07944da75d..0000000000 --- a/doc/build/changelog/unreleased_14/8507.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. change:: - :tags: bug, orm, regression - :tickets: 8507 - - Fixed regression where using ORM update() with synchronize_session='fetch' - would fail due to the use of evaluators that are now used to determine the - in-Python value for expressions in the the SET clause when refreshing - objects; if the evaluators make use of math operators against non-numeric - values such as PostgreSQL JSONB, the non-evaluable condition would fail to - be detected correctly. The evaluator now limits the use of math mutation - operators to numeric types only, with the exception of "+" that continues - to work for strings as well. SQLAlchemy 2.0 may alter this further by - fetching the SET values completely rather than using evaluation. diff --git a/doc/build/changelog/unreleased_14/8516.rst b/doc/build/changelog/unreleased_14/8516.rst deleted file mode 100644 index 2f83586e2a..0000000000 --- a/doc/build/changelog/unreleased_14/8516.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, asyncio - :tickets: 8516 - - Improved implementation of ``asyncio.shield()`` used in context managers as - added in :ticket:`8145`, such that the "close" operation is enclosed within - an ``asyncio.Task`` which is then strongly referenced as the operation - proceeds. This is per Python documentation indicating that the task is - otherwise not strongly referenced. diff --git a/doc/build/changelog/unreleased_14/8525.rst b/doc/build/changelog/unreleased_14/8525.rst deleted file mode 100644 index 8508e396b4..0000000000 --- a/doc/build/changelog/unreleased_14/8525.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, mssql, regression - :tickets: 8525 - - Fixed yet another regression in SQL Server isolation level fetch (see - :ticket:`8231`, :ticket:`8475`), this time with "Microsoft Dynamics CRM - Database via Azure Active Directory", which apparently lacks the - ``system_views`` view entirely. Error catching has been extended that under - no circumstances will this method ever fail, provided database connectivity - is present. diff --git a/doc/build/changelog/unreleased_14/8536.rst b/doc/build/changelog/unreleased_14/8536.rst deleted file mode 100644 index d7b5283cde..0000000000 --- a/doc/build/changelog/unreleased_14/8536.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, engine - :tickets: 8536 - - Fixed issue where mixing "*" with additional explicitly-named column - expressions within the columns clause of a :func:`_sql.select` construct - would cause result-column targeting to sometimes consider the label name or - other non-repeated names to be an ambiguous target. diff --git a/doc/build/changelog/unreleased_14/8569.rst b/doc/build/changelog/unreleased_14/8569.rst deleted file mode 100644 index 5ae6fce091..0000000000 --- a/doc/build/changelog/unreleased_14/8569.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. change:: - :tags: orm, bug, regression - :tickets: 8569 - - Fixed regression for 1.4 in :func:`_orm.contains_eager` where the "wrap in - subquery" logic of :func:`_orm.joinedload` would be inadvertently triggered - for use of the :func:`_orm.contains_eager` function with similar statements - (e.g. those that use ``distinct()``, ``limit()`` or ``offset()``), which - would then lead to secondary issues with queries that used some - combinations of SQL label names and aliasing. This "wrapping" is not - appropriate for :func:`_orm.contains_eager` which has always had the - contract that the user-defined SQL statement is unmodified with the - exception of adding the appropriate columns to be fetched. diff --git a/doc/build/changelog/unreleased_14/8574.rst b/doc/build/changelog/unreleased_14/8574.rst deleted file mode 100644 index ffc1761c30..0000000000 --- a/doc/build/changelog/unreleased_14/8574.rst +++ /dev/null @@ -1,5 +0,0 @@ -.. change:: - :tags: usecase, postgresql - :tickets: 8574 - - :class:`_postgresql.aggregate_order_by` now supports cache generation. diff --git a/doc/build/changelog/unreleased_14/8588.rst b/doc/build/changelog/unreleased_14/8588.rst deleted file mode 100644 index 474c14c4fa..0000000000 --- a/doc/build/changelog/unreleased_14/8588.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, mysql - :tickets: 8588 - - Adjusted the regular expression used to match "CREATE VIEW" when - testing for views to work more flexibly, no longer requiring the - special keyword "ALGORITHM" in the middle, which was intended to be - optional but was not working correctly. The change allows view reflection - to work more completely on MySQL-compatible variants such as StarRocks. - Pull request courtesy John Bodley. diff --git a/doc/build/changelog/unreleased_14/8614.rst b/doc/build/changelog/unreleased_14/8614.rst deleted file mode 100644 index b975dbc1f9..0000000000 --- a/doc/build/changelog/unreleased_14/8614.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 8614 - - The :paramref:`_orm.Session.execute.bind_arguments` dictionary is no longer - mutated when passed to :meth:`_orm.Session.execute` and similar; instead, - it's copied to an internal dictionary for state changes. Among other - things, this fixes and issue where the "clause" passed to the - :meth:`_orm.Session.get_bind` method would be incorrectly referring to the - :class:`_sql.Select` construct used for the "fetch" synchronization - strategy, when the actual query being emitted was a :class:`_dml.Delete` or - :class:`_dml.Update`. This would interfere with recipes for "routing - sessions". diff --git a/doc/build/conf.py b/doc/build/conf.py index 3a236ffbc7..d1144b41bb 100644 --- a/doc/build/conf.py +++ b/doc/build/conf.py @@ -213,9 +213,9 @@ copyright = u"2007-2022, 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.41" +release = "1.4.42" -release_date = "September 6, 2022" +release_date = "October 16, 2022" site_base = os.environ.get("RTD_SITE_BASE", "https://www.sqlalchemy.org") site_adapter_template = "docs_adapter.mako"