From: Mike Bayer Date: Wed, 21 Apr 2021 01:36:42 +0000 (-0400) Subject: - 1.4.10 X-Git-Tag: rel_1_4_10 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0dafacd7ebfcf91cf4839c8d84cc8d495afaabe1;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - 1.4.10 --- diff --git a/doc/build/changelog/changelog_14.rst b/doc/build/changelog/changelog_14.rst index 99fc5926ff..079dceaff1 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.10 - :include_notes_from: unreleased_14 + :released: April 20, 2021 + + .. change:: + :tags: bug, declarative, regression + :tickets: 6291 + + Fixed :func:`_declarative.instrument_declarative` that called + a non existing registry method. + + .. change:: + :tags: bug, orm + :tickets: 6320 + + Fixed bug in new :func:`_orm.with_loader_criteria` feature where using a + mixin class with :func:`_orm.declared_attr` on an attribute that were + accessed inside the custom lambda would emit a warning regarding using an + unmapped declared attr, when the lambda callable were first initialized. + This warning is now prevented using special instrumentation for this + lambda initialization step. + + + .. change:: + :tags: usecase, schema, mssql + :tickets: 6306 + + The :paramref:`_types.DateTime.timezone` parameter when set to ``True`` + will now make use of the ``DATETIMEOFFSET`` column type with SQL Server + when used to emit DDL, rather than ``DATETIME`` where the flag was silently + ignored. + + .. change:: + :tags: orm, bug, regression + :tickets: 6326 + + Fixed additional regression caused by the "eagerloaders on refresh" feature + added in :ticket:`1763` where the refresh operation historically would set + ``populate_existing``, which given the new feature now overwrites pending + changes on eagerly loaded objects when autoflush is false. The + populate_existing flag has been turned off for this case and a more + specific method used to ensure the correct attributes refreshed. + + .. change:: + :tags: bug, orm, result + :tickets: 6299 + + Fixed an issue when using 2.0 style execution that prevented using + :meth:`_result.Result.scalar_one` or + :meth:`_result.Result.scalar_one_or_none` after calling + :meth:`_result.Result.unique`, for the case where the ORM is returning a + single-element row in any case. + + .. change:: + :tags: bug, sql + :tickets: 6327 + + Fixed issue in SQL compiler where the bound parameters set up for a + :class:`.Values` construct wouldn't be positionally tracked correctly if + inside of a :class:`_sql.CTE`, affecting database drivers that support + VALUES + ctes and use positional parameters such as SQL Server in + particular as well as asyncpg. The fix also repairs support for + compiler flags such as ``literal_binds``. + + .. change:: + :tags: bug, schema + :tickets: 6287 + + Fixed issue where :func:`_functions.next_value` was not deriving its type + from the corresponding :class:`_schema.Sequence`, instead hardcoded to + :class:`_types.Integer`. The specific numeric type is now used. + + .. change:: + :tags: bug, mypy + :tickets: 6255 + + Fixed issue where mypy plugin would not correctly interpret an explicit + :class:`_orm.Mapped` annotation in conjunction with a + :func:`_orm.relationship` that refers to a class by string name; the + correct annotation would be downgraded to a less specific one leading to + typing errors. + + .. change:: + :tags: bug, sql + :tickets: 6256 + + Repaired and solidified issues regarding custom functions and other + arbitrary expression constructs which within SQLAlchemy's column labeling + mechanics would seek to use ``str(obj)`` to get a string representation to + use as an anonymous column name in the ``.c`` collection of a subquery. + This is a very legacy behavior that performs poorly and leads to lots of + issues, so has been revised to no longer perform any compilation by + establishing specific methods on :class:`.FunctionElement` to handle this + case, as SQL functions are the only use case that it came into play. An + effect of this behavior is that an unlabeled column expression with no + derivable name will be given an arbitrary label starting with the prefix + ``"_no_label"`` in the ``.c`` collection of a subquery; these were + previously being represented either as the generic stringification of that + expression, or as an internal symbol. + + .. change:: + :tags: usecase, orm + :ticketS: 6301 + + Altered some of the behavior repaired in :ticket:`6232` where the + ``immediateload`` loader strategy no longer goes into recursive loops; the + modification is that an eager load (joinedload, selectinload, or + subqueryload) from A->bs->B which then states ``immediateload`` for a + simple manytoone B->a->A that's in the identity map will populate the B->A, + so that this attribute is back-populated when the collection of A/A.bs are + loaded. This allows the objects to be functional when detached. + .. changelog:: :version: 1.4.9 diff --git a/doc/build/changelog/unreleased_14/6255.rst b/doc/build/changelog/unreleased_14/6255.rst deleted file mode 100644 index 0211fb3412..0000000000 --- a/doc/build/changelog/unreleased_14/6255.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, mypy - :tickets: 6255 - - Fixed issue where mypy plugin would not correctly interpret an explicit - :class:`_orm.Mapped` annotation in conjunction with a - :func:`_orm.relationship` that refers to a class by string name; the - correct annotation would be downgraded to a less specific one leading to - typing errors. diff --git a/doc/build/changelog/unreleased_14/6256.rst b/doc/build/changelog/unreleased_14/6256.rst deleted file mode 100644 index 375c230e9c..0000000000 --- a/doc/build/changelog/unreleased_14/6256.rst +++ /dev/null @@ -1,17 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 6256 - - Repaired and solidified issues regarding custom functions and other - arbitrary expression constructs which within SQLAlchemy's column labeling - mechanics would seek to use ``str(obj)`` to get a string representation to - use as an anonymous column name in the ``.c`` collection of a subquery. - This is a very legacy behavior that performs poorly and leads to lots of - issues, so has been revised to no longer perform any compilation by - establishing specific methods on :class:`.FunctionElement` to handle this - case, as SQL functions are the only use case that it came into play. An - effect of this behavior is that an unlabeled column expression with no - derivable name will be given an arbitrary label starting with the prefix - ``"_no_label"`` in the ``.c`` collection of a subquery; these were - previously being represented either as the generic stringification of that - expression, or as an internal symbol. diff --git a/doc/build/changelog/unreleased_14/6287.rst b/doc/build/changelog/unreleased_14/6287.rst deleted file mode 100644 index 4ef0d4af7e..0000000000 --- a/doc/build/changelog/unreleased_14/6287.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: bug, schema - :tickets: 6287 - - Fixed issue where :func:`_functions.next_value` was not deriving its type - from the corresponding :class:`_schema.Sequence`, instead hardcoded to - :class:`_types.Integer`. The specific numeric type is now used. diff --git a/doc/build/changelog/unreleased_14/6291.rst b/doc/build/changelog/unreleased_14/6291.rst deleted file mode 100644 index 150f6704fb..0000000000 --- a/doc/build/changelog/unreleased_14/6291.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. change:: - :tags: bug, declarative, regression - :tickets: 6291 - - Fixed :func:`_declarative.instrument_declarative` that called - a non existing registry method. diff --git a/doc/build/changelog/unreleased_14/6299.rst b/doc/build/changelog/unreleased_14/6299.rst deleted file mode 100644 index 1fd5cadfc3..0000000000 --- a/doc/build/changelog/unreleased_14/6299.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, orm, result - :tickets: 6299 - - Fixed an issue when using 2.0 style execution that prevented using - :meth:`_result.Result.scalar_one` or - :meth:`_result.Result.scalar_one_or_none` after calling - :meth:`_result.Result.unique`, for the case where the ORM is returning a - single-element row in any case. diff --git a/doc/build/changelog/unreleased_14/6301.rst b/doc/build/changelog/unreleased_14/6301.rst deleted file mode 100644 index a85ffd8f89..0000000000 --- a/doc/build/changelog/unreleased_14/6301.rst +++ /dev/null @@ -1,12 +0,0 @@ -.. change:: - :tags: usecase, orm - :ticketS: 6301 - - Altered some of the behavior repaired in :ticket:`6232` where the - ``immediateload`` loader strategy no longer goes into recursive loops; the - modification is that an eager load (joinedload, selectinload, or - subqueryload) from A->bs->B which then states ``immediateload`` for a - simple manytoone B->a->A that's in the identity map will populate the B->A, - so that this attribute is back-populated when the collection of A/A.bs are - loaded. This allows the objects to be functional when detached. - diff --git a/doc/build/changelog/unreleased_14/6306.rst b/doc/build/changelog/unreleased_14/6306.rst deleted file mode 100644 index a862ca8be5..0000000000 --- a/doc/build/changelog/unreleased_14/6306.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: usecase, schema, mssql - :tickets: 6306 - - The :paramref:`_types.DateTime.timezone` parameter when set to ``True`` - will now make use of the ``DATETIMEOFFSET`` column type with SQL Server - when used to emit DDL, rather than ``DATETIME`` where the flag was silently - ignored. diff --git a/doc/build/changelog/unreleased_14/6320.rst b/doc/build/changelog/unreleased_14/6320.rst deleted file mode 100644 index 5a42a1985b..0000000000 --- a/doc/build/changelog/unreleased_14/6320.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 6320 - - Fixed bug in new :func:`_orm.with_loader_criteria` feature where using a - mixin class with :func:`_orm.declared_attr` on an attribute that were - accessed inside the custom lambda would emit a warning regarding using an - unmapped declared attr, when the lambda callable were first initialized. - This warning is now prevented using special instrumentation for this - lambda initialization step. - diff --git a/doc/build/changelog/unreleased_14/6326.rst b/doc/build/changelog/unreleased_14/6326.rst deleted file mode 100644 index 13ad425030..0000000000 --- a/doc/build/changelog/unreleased_14/6326.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: orm, bug, regression - :tickets: 6326 - - Fixed additional regression caused by the "eagerloaders on refresh" feature - added in :ticket:`1763` where the refresh operation historically would set - ``populate_existing``, which given the new feature now overwrites pending - changes on eagerly loaded objects when autoflush is false. The - populate_existing flag has been turned off for this case and a more - specific method used to ensure the correct attributes refreshed. diff --git a/doc/build/changelog/unreleased_14/6327.rst b/doc/build/changelog/unreleased_14/6327.rst deleted file mode 100644 index c5544a1ee6..0000000000 --- a/doc/build/changelog/unreleased_14/6327.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 6327 - - Fixed issue in SQL compiler where the bound parameters set up for a - :class:`.Values` construct wouldn't be positionally tracked correctly if - inside of a :class:`_sql.CTE`, affecting database drivers that support - VALUES + ctes and use positional parameters such as SQL Server in - particular as well as asyncpg. The fix also repairs support for - compiler flags such as ``literal_binds``. diff --git a/doc/build/conf.py b/doc/build/conf.py index f3c8742cf8..9e26b4986c 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.9" +release = "1.4.10" -release_date = "April 17, 2021" +release_date = "April 20, 2021" site_base = os.environ.get("RTD_SITE_BASE", "http://www.sqlalchemy.org") site_adapter_template = "docs_adapter.mako"