From 37422d0528a46e3eb468dabfadef3ed6586d1476 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Thu, 11 Nov 2021 10:48:50 -0500 Subject: [PATCH] cherry-pick changelog from 1.4.27 --- doc/build/changelog/changelog_14.rst | 236 ++++++++++++++++++++- doc/build/changelog/unreleased_14/6023.rst | 6 - doc/build/changelog/unreleased_14/7167.rst | 11 - doc/build/changelog/unreleased_14/7224.rst | 15 -- doc/build/changelog/unreleased_14/7239.rst | 7 - doc/build/changelog/unreleased_14/7244.rst | 10 - doc/build/changelog/unreleased_14/7269.rst | 11 - doc/build/changelog/unreleased_14/7272.rst | 14 -- doc/build/changelog/unreleased_14/7274.rst | 37 ---- doc/build/changelog/unreleased_14/7281.rst | 8 - doc/build/changelog/unreleased_14/7283.rst | 9 - doc/build/changelog/unreleased_14/7284.rst | 13 -- doc/build/changelog/unreleased_14/7287.rst | 12 -- doc/build/changelog/unreleased_14/7291.rst | 8 - doc/build/changelog/unreleased_14/7292.rst | 20 -- doc/build/changelog/unreleased_14/7295.rst | 9 - doc/build/changelog/unreleased_14/7300.rst | 17 -- doc/build/changelog/unreleased_14/7304.rst | 10 - 18 files changed, 235 insertions(+), 218 deletions(-) delete mode 100644 doc/build/changelog/unreleased_14/6023.rst delete mode 100644 doc/build/changelog/unreleased_14/7167.rst delete mode 100644 doc/build/changelog/unreleased_14/7224.rst delete mode 100644 doc/build/changelog/unreleased_14/7239.rst delete mode 100644 doc/build/changelog/unreleased_14/7244.rst delete mode 100644 doc/build/changelog/unreleased_14/7269.rst delete mode 100644 doc/build/changelog/unreleased_14/7272.rst delete mode 100644 doc/build/changelog/unreleased_14/7274.rst delete mode 100644 doc/build/changelog/unreleased_14/7281.rst delete mode 100644 doc/build/changelog/unreleased_14/7283.rst delete mode 100644 doc/build/changelog/unreleased_14/7284.rst delete mode 100644 doc/build/changelog/unreleased_14/7287.rst delete mode 100644 doc/build/changelog/unreleased_14/7291.rst delete mode 100644 doc/build/changelog/unreleased_14/7292.rst delete mode 100644 doc/build/changelog/unreleased_14/7295.rst delete mode 100644 doc/build/changelog/unreleased_14/7300.rst delete mode 100644 doc/build/changelog/unreleased_14/7304.rst diff --git a/doc/build/changelog/changelog_14.rst b/doc/build/changelog/changelog_14.rst index 35e500d495..65a0fd22fa 100644 --- a/doc/build/changelog/changelog_14.rst +++ b/doc/build/changelog/changelog_14.rst @@ -15,7 +15,241 @@ This document details individual issue-level changes made throughout .. changelog:: :version: 1.4.27 - :include_notes_from: unreleased_14 + :released: November 11, 2021 + + .. change:: + :tags: bug, engine + :tickets: 7291 + + Fixed issue in future :class:`_future.Connection` object where the + :meth:`_future.Connection.execute` method would not accept a non-dict + mapping object, such as SQLAlchemy's own :class:`.RowMapping` or other + ``abc.collections.Mapping`` object as a parameter dictionary. + + .. change:: + :tags: bug, mysql, mariadb + :tickets: 7167 + + Reorganized the list of reserved words into two separate lists, one for + MySQL and one for MariaDB, so that these diverging sets of words can be + managed more accurately; adjusted the MySQL/MariaDB dialect to switch among + these lists based on either explicitly configured or + server-version-detected "MySQL" or "MariaDB" backend. Added all current + reserved words through MySQL 8 and current MariaDB versions including + recently added keywords like "lead" . Pull request courtesy Kevin Kirsche. + + .. change:: + :tags: bug, orm + :tickets: 7224 + + Fixed bug in "relationship to aliased class" feature introduced at + :ref:`relationship_aliased_class` where it was not possible to create a + loader strategy option targeting an attribute on the target using the + :func:`_orm.aliased` construct directly in a second loader option, such as + ``selectinload(A.aliased_bs).joinedload(aliased_b.cs)``, without explicitly + qualifying using :meth:`_orm.PropComparator.of_type` on the preceding + element of the path. Additionally, targeting the non-aliased class directly + would be accepted (inappropriately), but would silently fail, such as + ``selectinload(A.aliased_bs).joinedload(B.cs)``; this now raises an error + referring to the typing mismatch. + + + .. change:: + :tags: bug, schema + :tickets: 7295 + + Fixed issue in :class:`.Table` where the + :paramref:`.Table.implicit_returning` parameter would not be + accommodated correctly when passed along with + :paramref:`.Table.extend_existing` to augment an existing + :class:`.Table`. + + .. change:: + :tags: bug, postgresql, asyncpg + :tickets: 7283 + + Changed the asyncpg dialect to bind the :class:`.Float` type to the "float" + PostgreSQL type instead of "numeric" so that the value ``float(inf)`` can + be accommodated. Added test suite support for persistence of the "inf" + value. + + + .. change:: + :tags: bug, engine, regression + :tickets: 7274 + :versions: 2.0.0b1 + + Fixed regression where the :meth:`_engine.CursorResult.fetchmany` method + would fail to autoclose a server-side cursor (i.e. when ``stream_results`` + or ``yield_per`` is in use, either Core or ORM oriented results) when the + results were fully exhausted. + + .. change:: + :tags: bug, orm + :tickets: 7274 + :versions: 2.0.0b1 + + All :class:`_result.Result` objects will now consistently raise + :class:`_exc.ResourceClosedError` if they are used after a hard close, + which includes the "hard close" that occurs after calling "single row or + value" methods like :meth:`_result.Result.first` and + :meth:`_result.Result.scalar`. This was already the behavior of the most + common class of result objects returned for Core statement executions, i.e. + those based on :class:`_engine.CursorResult`, so this behavior is not new. + However, the change has been extended to properly accommodate for the ORM + "filtering" result objects returned when using 2.0 style ORM queries, + which would previously behave in "soft closed" style of returning empty + results, or wouldn't actually "soft close" at all and would continue + yielding from the underlying cursor. + + As part of this change, also added :meth:`_result.Result.close` to the base + :class:`_result.Result` class and implemented it for the filtered result + implementations that are used by the ORM, so that it is possible to call + the :meth:`_engine.CursorResult.close` method on the underlying + :class:`_engine.CursorResult` when the the ``yield_per`` execution option + is in use to close a server side cursor before remaining ORM results have + been fetched. This was again already available for Core result sets but the + change makes it available for 2.0 style ORM results as well. + + + .. change:: + :tags: bug, mysql + :tickets: 7281 + :versions: 2.0.0b1 + + Fixed issue in MySQL :meth:`_mysql.Insert.on_duplicate_key_update` which + would render the wrong column name when an expression were used in a VALUES + expression. Pull request courtesy Cristian Sabaila. + + .. change:: + :tags: bug, sql, regression + :tickets: 7292 + + Fixed regression where the row objects returned for ORM queries, which are + now the normal :class:`_sql.Row` objects, would not be interpreted by the + :meth:`_sql.ColumnOperators.in_` operator as tuple values to be broken out + into individual bound parameters, and would instead pass them as single + values to the driver leading to failures. The change to the "expanding IN" + system now accommodates for the expression already being of type + :class:`.TupleType` and treats values accordingly if so. In the uncommon + case of using "tuple-in" with an untyped statement such as a textual + statement with no typing information, a tuple value is detected for values + that implement ``collections.abc.Sequence``, but that are not ``str`` or + ``bytes``, as always when testing for ``Sequence``. + + .. change:: + :tags: usecase, sql + + Added :class:`.TupleType` to the top level ``sqlalchemy`` import namespace. + + .. change:: + :tags: bug, sql + :tickets: 7269 + + Fixed issue where using the feature of using a string label for ordering or + grouping described at :ref:`tutorial_order_by_label` would fail to function + correctly if used on a :class:`.CTE` construct, when the CTE were embedded + inside of an enclosing :class:`_sql.Select` statement that itself was set + up as a scalar subquery. + + + + .. change:: + :tags: bug, orm, regression + :tickets: 7239 + + Fixed 1.4 regression where :meth:`_orm.Query.filter_by` would not function + correctly on a :class:`_orm.Query` that was produced from + :meth:`_orm.Query.union`, :meth:`_orm.Query.from_self` or similar. + + .. change:: + :tags: bug, orm + :tickets: 7304 + + Fixed issue where deferred polymorphic loading of attributes from a + joined-table inheritance subclass would fail to populate the attribute + correctly if the :func:`_orm.load_only` option were used to originally + exclude that attribute, in the case where the load_only were descending + from a relationship loader option. The fix allows that other valid options + such as ``defer(..., raiseload=True)`` etc. still function as expected. + + .. change:: + :tags: postgresql, usecase, asyncpg + :tickets: 7284 + :versions: 2.0.0b1 + + Added overridable methods ``PGDialect_asyncpg.setup_asyncpg_json_codec`` + and ``PGDialect_asyncpg.setup_asyncpg_jsonb_codec`` codec, which handle the + required task of registering JSON/JSONB codecs for these datatypes when + using asyncpg. The change is that methods are broken out as individual, + overridable methods to support third party dialects that need to alter or + disable how these particular codecs are set up. + + + + .. change:: + :tags: bug, engine + :tickets: 7272 + :versions: 2.0.0b1 + + Fixed issue in future :class:`_future.Engine` where calling upon + :meth:`_future.Engine.begin` and entering the context manager would not + close the connection if the actual BEGIN operation failed for some reason, + such as an event handler raising an exception; this use case failed to be + tested for the future version of the engine. Note that the "future" context + managers which handle ``begin()`` blocks in Core and ORM don't actually run + the "BEGIN" operation until the context managers are actually entered. This + is different from the legacy version which runs the "BEGIN" operation up + front. + + .. change:: + :tags: mssql, bug + :tickets: 7300 + + Adjusted the compiler's generation of "post compile" symbols including + those used for "expanding IN" as well as for the "schema translate map" to + not be based directly on plain bracketed strings with underscores, as this + conflicts directly with SQL Server's quoting format of also using brackets, + which produces false matches when the compiler replaces "post compile" and + "schema translate" symbols. The issue created easy to reproduce examples + both with the :meth:`.Inspector.get_schema_names` method when used in + conjunction with the + :paramref:`_engine.Connection.execution_options.schema_translate_map` + feature, as well in the unlikely case that a symbol overlapping with the + internal name "POSTCOMPILE" would be used with a feature like "expanding + in". + + + .. change:: + :tags: postgresql, pg8000 + :tickets: 7167 + + Improve array handling when using PostgreSQL with the + pg8000 dialect. + + .. change:: + :tags: bug, orm, regression + :tickets: 7244 + + Fixed 1.4 regression where :meth:`_orm.Query.filter_by` would not function + correctly when :meth:`_orm.Query.join` were joined to an entity which made + use of :meth:`_orm.PropComparator.of_type` to specify an aliased version of + the target entity. The issue also applies to future style ORM queries + constructed with :func:`_sql.select`. + + + .. change:: + :tags: bug, sql, regression + :tickets: 7287 + + Fixed regression where the :func:`_sql.text` construct would no longer be + accepted as a target case in the "whens" list within a :func:`_sql.case` + construct. The regression appears related to an attempt to guard against + some forms of literal values that were considered to be ambiguous when + passed here; however, there's no reason the target cases shouldn't be + interpreted as open-ended SQL expressions just like anywhere else, and a + literal string or tuple will be converted to a bound parameter as would be + the case elsewhere. .. changelog:: :version: 1.4.26 diff --git a/doc/build/changelog/unreleased_14/6023.rst b/doc/build/changelog/unreleased_14/6023.rst deleted file mode 100644 index 88d9777ba5..0000000000 --- a/doc/build/changelog/unreleased_14/6023.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. change:: - :tags: postgresql, pg8000 - :tickets: 7167 - - Improve array handling when using PostgreSQL with the - pg8000 dialect. diff --git a/doc/build/changelog/unreleased_14/7167.rst b/doc/build/changelog/unreleased_14/7167.rst deleted file mode 100644 index aedc8086c0..0000000000 --- a/doc/build/changelog/unreleased_14/7167.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. change:: - :tags: bug, mysql, mariadb - :tickets: 7167 - - Reorganized the list of reserved words into two separate lists, one for - MySQL and one for MariaDB, so that these diverging sets of words can be - managed more accurately; adjusted the MySQL/MariaDB dialect to switch among - these lists based on either explicitly configured or - server-version-detected "MySQL" or "MariaDB" backend. Added all current - reserved words through MySQL 8 and current MariaDB versions including - recently added keywords like "lead" . Pull request courtesy Kevin Kirsche. diff --git a/doc/build/changelog/unreleased_14/7224.rst b/doc/build/changelog/unreleased_14/7224.rst deleted file mode 100644 index 3f10a60883..0000000000 --- a/doc/build/changelog/unreleased_14/7224.rst +++ /dev/null @@ -1,15 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 7224 - - Fixed bug in "relationship to aliased class" feature introduced at - :ref:`relationship_aliased_class` where it was not possible to create a - loader strategy option targeting an attribute on the target using the - :func:`_orm.aliased` construct directly in a second loader option, such as - ``selectinload(A.aliased_bs).joinedload(aliased_b.cs)``, without explicitly - qualifying using :meth:`_orm.PropComparator.of_type` on the preceding - element of the path. Additionally, targeting the non-aliased class directly - would be accepted (inappropriately), but would silently fail, such as - ``selectinload(A.aliased_bs).joinedload(B.cs)``; this now raises an error - referring to the typing mismatch. - diff --git a/doc/build/changelog/unreleased_14/7239.rst b/doc/build/changelog/unreleased_14/7239.rst deleted file mode 100644 index 14ef19118f..0000000000 --- a/doc/build/changelog/unreleased_14/7239.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: bug, orm, regression - :tickets: 7239 - - Fixed 1.4 regression where :meth:`_orm.Query.filter_by` would not function - correctly on a :class:`_orm.Query` that was produced from - :meth:`_orm.Query.union`, :meth:`_orm.Query.from_self` or similar. diff --git a/doc/build/changelog/unreleased_14/7244.rst b/doc/build/changelog/unreleased_14/7244.rst deleted file mode 100644 index 92352c6001..0000000000 --- a/doc/build/changelog/unreleased_14/7244.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, orm, regression - :tickets: 7244 - - Fixed 1.4 regression where :meth:`_orm.Query.filter_by` would not function - correctly when :meth:`_orm.Query.join` were joined to an entity which made - use of :meth:`_orm.PropComparator.of_type` to specify an aliased version of - the target entity. The issue also applies to future style ORM queries - constructed with :func:`_sql.select`. - diff --git a/doc/build/changelog/unreleased_14/7269.rst b/doc/build/changelog/unreleased_14/7269.rst deleted file mode 100644 index 6bbd126052..0000000000 --- a/doc/build/changelog/unreleased_14/7269.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 7269 - - Fixed issue where using the feature of using a string label for ordering or - grouping described at :ref:`tutorial_order_by_label` would fail to function - correctly if used on a :class:`.CTE` construct, when the CTE were embedded - inside of an enclosing :class:`_sql.Select` statement that itself was set - up as a scalar subquery. - - diff --git a/doc/build/changelog/unreleased_14/7272.rst b/doc/build/changelog/unreleased_14/7272.rst deleted file mode 100644 index a38aacdaa8..0000000000 --- a/doc/build/changelog/unreleased_14/7272.rst +++ /dev/null @@ -1,14 +0,0 @@ -.. change:: - :tags: bug, engine - :tickets: 7272 - :versions: 2.0.0b1 - - Fixed issue in future :class:`_future.Engine` where calling upon - :meth:`_future.Engine.begin` and entering the context manager would not - close the connection if the actual BEGIN operation failed for some reason, - such as an event handler raising an exception; this use case failed to be - tested for the future version of the engine. Note that the "future" context - managers which handle ``begin()`` blocks in Core and ORM don't actually run - the "BEGIN" operation until the context managers are actually entered. This - is different from the legacy version which runs the "BEGIN" operation up - front. diff --git a/doc/build/changelog/unreleased_14/7274.rst b/doc/build/changelog/unreleased_14/7274.rst deleted file mode 100644 index 08e961a729..0000000000 --- a/doc/build/changelog/unreleased_14/7274.rst +++ /dev/null @@ -1,37 +0,0 @@ -.. change:: - :tags: bug, engine, regression - :tickets: 7274 - :versions: 2.0.0b1 - - Fixed regression where the :meth:`_engine.CursorResult.fetchmany` method - would fail to autoclose a server-side cursor (i.e. when ``stream_results`` - or ``yield_per`` is in use, either Core or ORM oriented results) when the - results were fully exhausted. - -.. change:: - :tags: bug, orm - :tickets: 7274 - :versions: 2.0.0b1 - - All :class:`_result.Result` objects will now consistently raise - :class:`_exc.ResourceClosedError` if they are used after a hard close, - which includes the "hard close" that occurs after calling "single row or - value" methods like :meth:`_result.Result.first` and - :meth:`_result.Result.scalar`. This was already the behavior of the most - common class of result objects returned for Core statement executions, i.e. - those based on :class:`_engine.CursorResult`, so this behavior is not new. - However, the change has been extended to properly accommodate for the ORM - "filtering" result objects returned when using 2.0 style ORM queries, - which would previously behave in "soft closed" style of returning empty - results, or wouldn't actually "soft close" at all and would continue - yielding from the underlying cursor. - - As part of this change, also added :meth:`_result.Result.close` to the base - :class:`_result.Result` class and implemented it for the filtered result - implementations that are used by the ORM, so that it is possible to call - the :meth:`_engine.CursorResult.close` method on the underlying - :class:`_engine.CursorResult` when the the ``yield_per`` execution option - is in use to close a server side cursor before remaining ORM results have - been fetched. This was again already available for Core result sets but the - change makes it available for 2.0 style ORM results as well. - diff --git a/doc/build/changelog/unreleased_14/7281.rst b/doc/build/changelog/unreleased_14/7281.rst deleted file mode 100644 index a5ca9a1622..0000000000 --- a/doc/build/changelog/unreleased_14/7281.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, mysql - :tickets: 7281 - :versions: 2.0.0b1 - - Fixed issue in MySQL :meth:`_mysql.Insert.on_duplicate_key_update` which - would render the wrong column name when an expression were used in a VALUES - expression. Pull request courtesy Cristian Sabaila. diff --git a/doc/build/changelog/unreleased_14/7283.rst b/doc/build/changelog/unreleased_14/7283.rst deleted file mode 100644 index 4fc86b4ca9..0000000000 --- a/doc/build/changelog/unreleased_14/7283.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, postgresql, asyncpg - :tickets: 7283 - - Changed the asyncpg dialect to bind the :class:`.Float` type to the "float" - PostgreSQL type instead of "numeric" so that the value ``float(inf)`` can - be accommodated. Added test suite support for persistence of the "inf" - value. - diff --git a/doc/build/changelog/unreleased_14/7284.rst b/doc/build/changelog/unreleased_14/7284.rst deleted file mode 100644 index b5d23739c8..0000000000 --- a/doc/build/changelog/unreleased_14/7284.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. change:: - :tags: postgresql, usecase, asyncpg - :tickets: 7284 - :versions: 2.0.0b1 - - Added overridable methods ``PGDialect_asyncpg.setup_asyncpg_json_codec`` - and ``PGDialect_asyncpg.setup_asyncpg_jsonb_codec`` codec, which handle the - required task of registering JSON/JSONB codecs for these datatypes when - using asyncpg. The change is that methods are broken out as individual, - overridable methods to support third party dialects that need to alter or - disable how these particular codecs are set up. - - diff --git a/doc/build/changelog/unreleased_14/7287.rst b/doc/build/changelog/unreleased_14/7287.rst deleted file mode 100644 index 14c72a8aff..0000000000 --- a/doc/build/changelog/unreleased_14/7287.rst +++ /dev/null @@ -1,12 +0,0 @@ -.. change:: - :tags: bug, sql, regression - :tickets: 7287 - - Fixed regression where the :func:`_sql.text` construct would no longer be - accepted as a target case in the "whens" list within a :func:`_sql.case` - construct. The regression appears related to an attempt to guard against - some forms of literal values that were considered to be ambiguous when - passed here; however, there's no reason the target cases shouldn't be - interpreted as open-ended SQL expressions just like anywhere else, and a - literal string or tuple will be converted to a bound parameter as would be - the case elsewhere. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_14/7291.rst b/doc/build/changelog/unreleased_14/7291.rst deleted file mode 100644 index add383ee86..0000000000 --- a/doc/build/changelog/unreleased_14/7291.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, engine - :tickets: 7291 - - Fixed issue in future :class:`_future.Connection` object where the - :meth:`_future.Connection.execute` method would not accept a non-dict - mapping object, such as SQLAlchemy's own :class:`.RowMapping` or other - ``abc.collections.Mapping`` object as a parameter dictionary. diff --git a/doc/build/changelog/unreleased_14/7292.rst b/doc/build/changelog/unreleased_14/7292.rst deleted file mode 100644 index e75d11e813..0000000000 --- a/doc/build/changelog/unreleased_14/7292.rst +++ /dev/null @@ -1,20 +0,0 @@ -.. change:: - :tags: bug, sql, regression - :tickets: 7292 - - Fixed regression where the row objects returned for ORM queries, which are - now the normal :class:`_sql.Row` objects, would not be interpreted by the - :meth:`_sql.ColumnOperators.in_` operator as tuple values to be broken out - into individual bound parameters, and would instead pass them as single - values to the driver leading to failures. The change to the "expanding IN" - system now accommodates for the expression already being of type - :class:`.TupleType` and treats values accordingly if so. In the uncommon - case of using "tuple-in" with an untyped statement such as a textual - statement with no typing information, a tuple value is detected for values - that implement ``collections.abc.Sequence``, but that are not ``str`` or - ``bytes``, as always when testing for ``Sequence``. - -.. change:: - :tags: usecase, sql - - Added :class:`.TupleType` to the top level ``sqlalchemy`` import namespace. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_14/7295.rst b/doc/build/changelog/unreleased_14/7295.rst deleted file mode 100644 index 058c9d16a5..0000000000 --- a/doc/build/changelog/unreleased_14/7295.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, schema - :tickets: 7295 - - Fixed issue in :class:`.Table` where the - :paramref:`.Table.implicit_returning` parameter would not be - accommodated correctly when passed along with - :paramref:`.Table.extend_existing` to augment an existing - :class:`.Table`. diff --git a/doc/build/changelog/unreleased_14/7300.rst b/doc/build/changelog/unreleased_14/7300.rst deleted file mode 100644 index d9061af094..0000000000 --- a/doc/build/changelog/unreleased_14/7300.rst +++ /dev/null @@ -1,17 +0,0 @@ -.. change:: - :tags: mssql, bug - :tickets: 7300 - - Adjusted the compiler's generation of "post compile" symbols including - those used for "expanding IN" as well as for the "schema translate map" to - not be based directly on plain bracketed strings with underscores, as this - conflicts directly with SQL Server's quoting format of also using brackets, - which produces false matches when the compiler replaces "post compile" and - "schema translate" symbols. The issue created easy to reproduce examples - both with the :meth:`.Inspector.get_schema_names` method when used in - conjunction with the - :paramref:`_engine.Connection.execution_options.schema_translate_map` - feature, as well in the unlikely case that a symbol overlapping with the - internal name "POSTCOMPILE" would be used with a feature like "expanding - in". - diff --git a/doc/build/changelog/unreleased_14/7304.rst b/doc/build/changelog/unreleased_14/7304.rst deleted file mode 100644 index 44d188a30e..0000000000 --- a/doc/build/changelog/unreleased_14/7304.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 7304 - - Fixed issue where deferred polymorphic loading of attributes from a - joined-table inheritance subclass would fail to populate the attribute - correctly if the :func:`_orm.load_only` option were used to originally - exclude that attribute, in the case where the load_only were descending - from a relationship loader option. The fix allows that other valid options - such as ``defer(..., raiseload=True)`` etc. still function as expected. -- 2.47.2