]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
cherry-pick changelog from 1.4.43
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 4 Nov 2022 21:08:39 +0000 (17:08 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 4 Nov 2022 21:08:39 +0000 (17:08 -0400)
13 files changed:
doc/build/changelog/changelog_14.rst
doc/build/changelog/unreleased_14/8700.rst [deleted file]
doc/build/changelog/unreleased_14/8704.rst [deleted file]
doc/build/changelog/unreleased_14/8708.rst [deleted file]
doc/build/changelog/unreleased_14/8710.rst [deleted file]
doc/build/changelog/unreleased_14/8711.rst [deleted file]
doc/build/changelog/unreleased_14/8714.rst [deleted file]
doc/build/changelog/unreleased_14/8717.rst [deleted file]
doc/build/changelog/unreleased_14/8721.rst [deleted file]
doc/build/changelog/unreleased_14/8724.rst [deleted file]
doc/build/changelog/unreleased_14/8738.rst [deleted file]
doc/build/changelog/unreleased_14/8744.rst [deleted file]
doc/build/changelog/unreleased_14/8753.rst [deleted file]

index 1606c781844a65e059d7439ac9106b29a768f66b..66833787f19f0cf31d5e96d011ac6127e89b62d5 100644 (file)
@@ -15,7 +15,176 @@ This document details individual issue-level changes made throughout
 
 .. changelog::
     :version: 1.4.43
-    :include_notes_from: unreleased_14
+    :released: November 4, 2022
+
+    .. change::
+        :tags: bug, orm
+        :tickets: 8738
+
+        Fixed issue in joined eager loading where an assertion fail would occur
+        with a particular combination of outer/inner joined eager loads, when
+        eager loading across three mappers where the middle mapper was
+        an inherited subclass mapper.
+
+
+    .. change::
+        :tags: bug, oracle
+        :tickets: 8708
+
+        Fixed issue where bound parameter names, including those automatically
+        derived from similarly-named database columns, which contained characters
+        that normally require quoting with Oracle would not be escaped when using
+        "expanding parameters" with the Oracle dialect, causing execution errors.
+        The usual "quoting" for bound parameters used by the Oracle dialect is not
+        used with the "expanding parameters" architecture, so escaping for a large
+        range of characters is used instead, now using a list of characters/escapes
+        that are specific to Oracle.
+
+
+
+    .. change::
+        :tags: bug, orm
+        :tickets: 8721
+
+        Fixed bug involving :class:`.Select` constructs, where combinations of
+        :meth:`.Select.select_from` with :meth:`.Select.join`, as well as when
+        using :meth:`.Select.join_from`, would cause the
+        :func:`_orm.with_loader_criteria` feature as well as the IN criteria needed
+        for single-table inheritance queries to not render, in cases where the
+        columns clause of the query did not explicitly include the left-hand side
+        entity of the JOIN. The correct entity is now transferred to the
+        :class:`.Join` object that's generated internally, so that the criteria
+        against the left side entity is correctly added.
+
+
+    .. change::
+        :tags: bug, mssql
+        :tickets: 8714
+
+        Fixed issue with :meth:`.Inspector.has_table`, which when used against a
+        temporary table with the SQL Server dialect would fail on some Azure
+        variants, due to an unnecessary information schema query that is not
+        supported on those server versions. Pull request courtesy Mike Barry.
+
+    .. change::
+        :tags: bug, orm
+        :tickets: 8711
+
+        An informative exception is now raised when the
+        :func:`_orm.with_loader_criteria` option is used as a loader option added
+        to a specific "loader path", such as when using it within
+        :meth:`.Load.options`. This use is not supported as
+        :func:`_orm.with_loader_criteria` is only intended to be used as a top
+        level loader option. Previously, an internal error would be generated.
+
+    .. change::
+        :tags: bug, oracle
+        :tickets: 8744
+
+        Fixed issue where the ``nls_session_parameters`` view queried on first
+        connect in order to get the default decimal point character may not be
+        available depending on Oracle connection modes, and would therefore raise
+        an error.  The approach to detecting decimal char has been simplified to
+        test a decimal value directly, instead of reading system views, which
+        works on any backend / driver.
+
+
+    .. change::
+        :tags: bug, orm
+        :tickets: 8753
+
+        Improved "dictionary mode" for :meth:`_orm.Session.get` so that synonym
+        names which refer to primary key attribute names may be indicated in the
+        named dictionary.
+
+    .. change::
+        :tags: bug, engine, regression
+        :tickets: 8717
+
+        Fixed issue where the :meth:`.PoolEvents.reset` event hook would not be be
+        called in all cases when a :class:`_engine.Connection` were closed and was
+        in the process of returning its DBAPI connection to the connection pool.
+
+        The scenario was when the :class:`_engine.Connection` had already emitted
+        ``.rollback()`` on its DBAPI connection within the process of returning
+        the connection to the pool, where it would then instruct the connection
+        pool to forego doing its own "reset" to save on the additional method
+        call.  However, this prevented custom pool reset schemes from being
+        used within this hook, as such hooks by definition are doing more than
+        just calling ``.rollback()``, and need to be invoked under all
+        circumstances.  This was a regression that appeared in version 1.4.
+
+        For version 1.4, the :meth:`.PoolEvents.checkin` remains viable as an
+        alternate event hook to use for custom "reset" implementations. Version 2.0
+        will feature an improved version of :meth:`.PoolEvents.reset` which is
+        called for additional scenarios such as termination of asyncio connections,
+        and is also passed contextual information about the reset, to allow for
+        "custom connection reset" schemes which can respond to different reset
+        scenarios in different ways.
+
+    .. change::
+        :tags: bug, orm
+        :tickets: 8704
+
+        Fixed issue where "selectin_polymorphic" loading for inheritance mappers
+        would not function correctly if the :paramref:`_orm.Mapper.polymorphic_on`
+        parameter referred to a SQL expression that was not directly mapped on the
+        class.
+
+    .. change::
+        :tags: bug, orm
+        :tickets: 8710
+
+        Fixed issue where the underlying DBAPI cursor would not be closed when
+        using the :class:`_orm.Query` object as an iterator, if a user-defined exception
+        case were raised within the iteration process, thereby causing the iterator
+        to be closed by the Python interpreter.  When using
+        :meth:`_orm.Query.yield_per` to create server-side cursors, this would lead
+        to the usual MySQL-related issues with server side cursors out of sync,
+        and without direct access to the :class:`.Result` object, end-user code
+        could not access the cursor in order to close it.
+
+        To resolve, a catch for ``GeneratorExit`` is applied within the iterator
+        method, which will close the result object in those cases when the
+        iterator were interrupted, and by definition will be closed by the
+        Python interpreter.
+
+        As part of this change as implemented for the 1.4 series, ensured that
+        ``.close()`` methods are available on all :class:`.Result` implementations
+        including :class:`.ScalarResult`, :class:`.MappingResult`.  The 2.0
+        version of this change also includes new context manager patterns for use
+        with :class:`.Result` classes.
+
+    .. change::
+        :tags: bug, engine
+        :tickets: 8710
+
+        Ensured all :class:`.Result` objects include a :meth:`.Result.close` method
+        as well as a :attr:`.Result.closed` attribute, including on
+        :class:`.ScalarResult` and :class:`.MappingResult`.
+
+    .. change::
+        :tags: bug, mssql, reflection
+        :tickets: 8700
+
+        Fixed issue with :meth:`.Inspector.has_table`, which when used against a
+        view with the SQL Server dialect would erroneously return ``False``, due to
+        a regression in the 1.4 series which removed support for this on SQL
+        Server. The issue is not present in the 2.0 series which uses a different
+        reflection architecture. Test support is added to ensure ``has_table()``
+        remains working per spec re: views.
+
+    .. change::
+        :tags: bug, sql
+        :tickets: 8724
+
+        Fixed issue which prevented the :func:`_sql.literal_column` construct from
+        working properly within the context of a :class:`.Select` construct as well
+        as other potential places where "anonymized labels" might be generated, if
+        the literal expression contained characters which could interfere with
+        format strings, such as open parenthesis, due to an implementation detail
+        of the "anonymous label" structure.
+
 
 .. changelog::
     :version: 1.4.42
diff --git a/doc/build/changelog/unreleased_14/8700.rst b/doc/build/changelog/unreleased_14/8700.rst
deleted file mode 100644 (file)
index 0805c23..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-.. change::
-    :tags: bug, mssql, reflection
-    :tickets: 8700
-
-    Fixed issue with :meth:`.Inspector.has_table`, which when used against a
-    view with the SQL Server dialect would erroneously return ``False``, due to
-    a regression in the 1.4 series which removed support for this on SQL
-    Server. The issue is not present in the 2.0 series which uses a different
-    reflection architecture. Test support is added to ensure ``has_table()``
-    remains working per spec re: views.
diff --git a/doc/build/changelog/unreleased_14/8704.rst b/doc/build/changelog/unreleased_14/8704.rst
deleted file mode 100644 (file)
index 90d9728..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-.. change::
-    :tags: bug, orm
-    :tickets: 8704
-
-    Fixed issue where "selectin_polymorphic" loading for inheritance mappers
-    would not function correctly if the :paramref:`_orm.Mapper.polymorphic_on`
-    parameter referred to a SQL expression that was not directly mapped on the
-    class.
diff --git a/doc/build/changelog/unreleased_14/8708.rst b/doc/build/changelog/unreleased_14/8708.rst
deleted file mode 100644 (file)
index bb7424f..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-.. change::
-    :tags: bug, oracle
-    :tickets: 8708
-
-    Fixed issue where bound parameter names, including those automatically
-    derived from similarly-named database columns, which contained characters
-    that normally require quoting with Oracle would not be escaped when using
-    "expanding parameters" with the Oracle dialect, causing execution errors.
-    The usual "quoting" for bound parameters used by the Oracle dialect is not
-    used with the "expanding parameters" architecture, so escaping for a large
-    range of characters is used instead, now using a list of characters/escapes
-    that are specific to Oracle.
-
-
diff --git a/doc/build/changelog/unreleased_14/8710.rst b/doc/build/changelog/unreleased_14/8710.rst
deleted file mode 100644 (file)
index e6f9211..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-.. change::
-    :tags: bug, orm
-    :tickets: 8710
-
-    Fixed issue where the underlying DBAPI cursor would not be closed when
-    using the :class:`_orm.Query` object as an iterator, if a user-defined exception
-    case were raised within the iteration process, thereby causing the iterator
-    to be closed by the Python interpreter.  When using
-    :meth:`_orm.Query.yield_per` to create server-side cursors, this would lead
-    to the usual MySQL-related issues with server side cursors out of sync,
-    and without direct access to the :class:`.Result` object, end-user code
-    could not access the cursor in order to close it.
-
-    To resolve, a catch for ``GeneratorExit`` is applied within the iterator
-    method, which will close the result object in those cases when the
-    iterator were interrupted, and by definition will be closed by the
-    Python interpreter.
-
-    As part of this change as implemented for the 1.4 series, ensured that
-    ``.close()`` methods are available on all :class:`.Result` implementations
-    including :class:`.ScalarResult`, :class:`.MappingResult`.  The 2.0
-    version of this change also includes new context manager patterns for use
-    with :class:`.Result` classes.
-
-
-.. change::
-    :tags: bug, engine
-    :tickets: 8710
-
-    Ensured all :class:`.Result` objects include a :meth:`.Result.close` method
-    as well as a :attr:`.Result.closed` attribute, including on
-    :class:`.ScalarResult` and :class:`.MappingResult`.
diff --git a/doc/build/changelog/unreleased_14/8711.rst b/doc/build/changelog/unreleased_14/8711.rst
deleted file mode 100644 (file)
index cc76eb4..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-.. change::
-    :tags: bug, orm
-    :tickets: 8711
-
-    An informative exception is now raised when the
-    :func:`_orm.with_loader_criteria` option is used as a loader option added
-    to a specific "loader path", such as when using it within
-    :meth:`.Load.options`. This use is not supported as
-    :func:`_orm.with_loader_criteria` is only intended to be used as a top
-    level loader option. Previously, an internal error would be generated.
diff --git a/doc/build/changelog/unreleased_14/8714.rst b/doc/build/changelog/unreleased_14/8714.rst
deleted file mode 100644 (file)
index 6fd133a..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-.. change::
-    :tags: bug, mssql
-    :tickets: 8714
-
-    Fixed issue with :meth:`.Inspector.has_table`, which when used against a
-    temporary table with the SQL Server dialect would fail on some Azure
-    variants, due to an unnecessary information schema query that is not
-    supported on those server versions. Pull request courtesy Mike Barry.
diff --git a/doc/build/changelog/unreleased_14/8717.rst b/doc/build/changelog/unreleased_14/8717.rst
deleted file mode 100644 (file)
index 6ce3b83..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-.. change::
-    :tags: bug, engine, regression
-    :tickets: 8717
-
-    Fixed issue where the :meth:`.PoolEvents.reset` event hook would not be
-    be called in all cases when a :class:`.Connection` were closed and was
-    in the process of returning its DBAPI connection to the connection pool.
-    The scenario was when the :class:`.Connection` had already emitted
-    ``.rollback()`` on its DBAPI connection within the process of returning
-    the connection to the pool, where it would then instruct the connection
-    pool to forego doing its own "reset" to save on the additional method
-    call.  However, this prevented custom pool reset schemes from being
-    used within this hook, as such hooks by definition are doing more than
-    just calling ``.rollback()``, and need to be invoked under all
-    circumstances.  This was a regression that appeared in version 1.4.
-
-    For version 1.4, the :meth:`.PoolEvents.checkin` remains viable as an
-    alternate event hook to use for custom "reset" implementations. Version 2.0
-    will feature an improved version of :meth:`.PoolEvents.reset` which is
-    called for additional scenarios such as termination of asyncio connections,
-    and is also passed contextual information about the reset, to allow for
-    "custom connection reset" schemes which can respond to different reset
-    scenarios in different ways.
diff --git a/doc/build/changelog/unreleased_14/8721.rst b/doc/build/changelog/unreleased_14/8721.rst
deleted file mode 100644 (file)
index 9e62e66..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-.. change::
-    :tags: bug, orm
-    :tickets: 8721
-
-    Fixed bug involving :class:`.Select` constructs, where combinations of
-    :meth:`.Select.select_from` with :meth:`.Select.join`, as well as when
-    using :meth:`.Select.join_from`, would cause the
-    :func:`_orm.with_loader_criteria` feature as well as the IN criteria needed
-    for single-table inheritance queries to not render, in cases where the
-    columns clause of the query did not explicitly include the left-hand side
-    entity of the JOIN. The correct entity is now transferred to the
-    :class:`.Join` object that's generated internally, so that the criteria
-    against the left side entity is correctly added.
-
diff --git a/doc/build/changelog/unreleased_14/8724.rst b/doc/build/changelog/unreleased_14/8724.rst
deleted file mode 100644 (file)
index 8329697..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.. change::
-    :tags: bug, sql
-    :tickets: 8724
-
-    Fixed issue which prevented the :func:`_sql.literal_column` construct from
-    working properly within the context of a :class:`.Select` construct as well
-    as other potential places where "anonymized labels" might be generated, if
-    the literal expression contained characters which could interfere with
-    format strings, such as open parenthesis, due to an implementation detail
-    of the "anonymous label" structure.
-
diff --git a/doc/build/changelog/unreleased_14/8738.rst b/doc/build/changelog/unreleased_14/8738.rst
deleted file mode 100644 (file)
index fb7b31a..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-.. change::
-    :tags: bug, orm
-    :tickets: 8738
-
-    Fixed issue in joined eager loading where an assertion fail would occur
-    with a particular combination of outer/inner joined eager loads, when
-    eager loading across three mappers where the middle mapper was
-    an inherited subclass mapper.
-
diff --git a/doc/build/changelog/unreleased_14/8744.rst b/doc/build/changelog/unreleased_14/8744.rst
deleted file mode 100644 (file)
index 6d24f0f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.. change::
-    :tags: bug, oracle
-    :tickets: 8744
-
-    Fixed issue where the ``nls_session_parameters`` view queried on first
-    connect in order to get the default decimal point character may not be
-    available depending on Oracle connection modes, and would therefore raise
-    an error.  The approach to detecting decimal char has been simplified to
-    test a decimal value directly, instead of reading system views, which
-    works on any backend / driver.
-
diff --git a/doc/build/changelog/unreleased_14/8753.rst b/doc/build/changelog/unreleased_14/8753.rst
deleted file mode 100644 (file)
index 6f898e9..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-.. change::
-    :tags: bug, orm
-    :tickets: 8753
-
-    Improved "dictionary mode" for :meth:`_orm.Session.get` so that synonym
-    names which refer to primary key attribute names may be indicated in the
-    named dictionary.