]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
cherry-pick changelog from 1.3.14
authorMike Bayer <mike_mp@zzzcomputing.com>
Tue, 10 Mar 2020 15:57:23 +0000 (11:57 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Tue, 10 Mar 2020 15:57:23 +0000 (11:57 -0400)
16 files changed:
doc/build/changelog/changelog_13.rst
doc/build/changelog/unreleased_13/4849.rst [deleted file]
doc/build/changelog/unreleased_13/5110.rst [deleted file]
doc/build/changelog/unreleased_13/5114.rst [deleted file]
doc/build/changelog/unreleased_13/5121.rst [deleted file]
doc/build/changelog/unreleased_13/5129.rst [deleted file]
doc/build/changelog/unreleased_13/5132.rst [deleted file]
doc/build/changelog/unreleased_13/5138.rst [deleted file]
doc/build/changelog/unreleased_13/5146.rst [deleted file]
doc/build/changelog/unreleased_13/5149.rst [deleted file]
doc/build/changelog/unreleased_13/5158.rst [deleted file]
doc/build/changelog/unreleased_13/5170.rst [deleted file]
doc/build/changelog/unreleased_13/5173.rst [deleted file]
doc/build/changelog/unreleased_13/5180.rst [deleted file]
doc/build/changelog/unreleased_13/5181.rst [deleted file]
doc/build/changelog/unreleased_13/5182.rst [deleted file]

index a315bdd20f80bcfa8c13132392a2e2872c4f8f05..4e98e76c1d50301177ac006e9f33b01386ee0486 100644 (file)
 
 .. changelog::
     :version: 1.3.14
-    :include_notes_from: unreleased_13
+    :released: March 10, 2020
+
+    .. change::
+        :tags: bug, sql, postgresql
+        :tickets: 5181
+
+        Fixed bug where a CTE of an INSERT/UPDATE/DELETE that also uses RETURNING
+        could then not be SELECTed from directly, as the internal state of the
+        compiler would try to treat the outer SELECT as a DELETE statement itself
+        and access nonexistent state.
+
+
+    .. change::
+        :tags: bug, orm
+        :tickets: 5110
+
+        Fixed regression caused in 1.3.13 by :ticket:`5056` where a refactor of the
+        ORM path registry system made it such that a path could no longer be
+        compared to an empty tuple, which can occur in a particular kind of joined
+        eager loading path.   The "empty tuple" use case has been resolved so that
+        the path registry is compared to a path registry in all cases;  the
+        :class:`.PathRegistry` object itself now implements ``__eq__()`` and
+        ``__ne__()`` methods which will take place for all equality comparisons and
+        continue to succeed in the not anticipated case that a non-
+        :class:`.PathRegistry` object is compared, while emitting a warning that
+        this object should not be the subject of the comparison.
+
+
+
+    .. change::
+        :tags: bug, orm
+        :tickets: 5149
+
+        Setting a relationship to viewonly=True which is also the target of a
+        back_populates or backref configuration will now emit a warning and
+        eventually be disallowed. back_populates refers specifically to mutation
+        of an attribute or collection, which is disallowed when the attribute is
+        subject to viewonly=True.   The viewonly attribute is not subject to
+        persistence behaviors which means it will not reflect correct results
+        when it is locally mutated.
+
+    .. change::
+        :tags: bug, oracle
+        :tickets: 5146
+
+        Fixed a reflection bug where table comments could only be retrieved for
+        tables actually owned by the user but not for tables visible to the user
+        but owned by someone else.  Pull request courtesy Dave Hirschfeld.
+
+    .. change::
+        :tags: bug, performance
+        :tickets: 5180
+
+        Revised an internal change to the test system added as a result of
+        :ticket:`5085` where a testing-related module per dialect would be loaded
+        unconditionally upon making use of that dialect, pulling in SQLAlchemy's
+        testing framework as well as the ORM into the module import space.   This
+        would only impact initial startup time and memory to a modest extent,
+        however it's best that these additional modules aren't reverse-dependent on
+        straight Core usage.
+
+    .. change::
+        :tags: bug, installation
+        :tickets: 5138
+
+        Vendored the ``inspect.formatannotation`` function inside of
+        ``sqlalchemy.util.compat``, which is needed for the vendored version of
+        ``inspect.formatargspec``.  The function is not documented in cPython and
+        is not guaranteed to be available in future Python versions.
+
+
+    .. change::
+        :tags: bug, mssql
+        :tickets: 5132
+
+        Fixed issue where the :class:`.mssql.DATETIMEOFFSET` type would not
+        accommodate for the ``None`` value, introduced as part of the series of
+        fixes for this type first introduced in :ticket:`4983`, :ticket:`5045`.
+        Additionally, added support for passing a backend-specific date formatted
+        string through this type, as is typically allowed for date/time types on
+        most other DBAPIs.
+
+    .. change::
+        :tags: bug, engine
+        :tickets: 5182
+
+        Expanded the scope of cursor/connection cleanup when a statement is
+        executed to include when the result object fails to be constructed, or an
+        after_cursor_execute() event raises an error, or autocommit / autoclose
+        fails.  This allows the DBAPI cursor to be cleaned up on failure and for
+        connectionless execution allows the connection to be closed out and
+        returned to the connection pool, where previously it waiting until garbage
+        collection would trigger a pool return.
+
+    .. change::
+        :tags: bug, postgresql
+        :tickets: 5158
+
+        Fixed issue where the "schema_translate_map" feature would not work with a
+        PostgreSQL native enumeration type (i.e. :class:`.Enum`,
+        :class:`.postgresql.ENUM`) in that while the "CREATE TYPE" statement would
+        be emitted with the correct schema, the schema would not be rendered in
+        the CREATE TABLE statement at the point at which the enumeration was
+        referenced.
+
+
+    .. change::
+        :tags: usecase, ext
+        :tickets: 5114
+
+        Added keyword arguments to the :meth:`.MutableList.sort` function so that a
+        key function as well as the "reverse" keyword argument can be provided.
+
+
+    .. change::
+        :tags: bug, general, py3k
+        :tickets: 4849
+
+        Applied an explicit "cause" to most if not all internally raised exceptions
+        that are raised from within an internal exception catch, to avoid
+        misleading stacktraces that suggest an error within the handling of an
+        exception.  While it would be preferable to suppress the internally caught
+        exception in the way that the ``__suppress_context__`` attribute would,
+        there does not as yet seem to be a way to do this without suppressing an
+        enclosing user constructed context, so for now it exposes the internally
+        caught exception as the cause so that full information about the context
+        of the error is maintained.
+
+    .. change::
+        :tags: orm, bug
+        :tickets: 5121
+
+        Fixed an additional regression in the same area as that of :ticket:`5080`
+        introduced in 1.3.0b3 via :ticket:`4468` where the ability to create a
+        joined option across a :func:`.with_polymorphic` into a relationship
+        against the base class of that with_polymorphic, and then further into
+        regular mapped relationships would fail as the base class component would
+        not add itself to the load path in a way that could be located by the
+        loader strategy. The changes applied in :ticket:`5080` have been further
+        refined to also accommodate this scenario.
+
+    .. change::
+        :tags: bug, postgresql, reflection
+        :tickets: 5170
+
+        Fixed bug where PostgreSQL reflection of CHECK constraints would fail to
+        parse the constraint if the SQL text contained newline characters. The
+        regular expression has been adjusted to accommodate for this case. Pull
+        request courtesy Eric Borczuk.
+
+    .. change::
+        :tags: usecase, orm
+        :tickets: 5129
+
+        Added a new flag :paramref:`.InstanceEvents.restore_load_context` and
+        :paramref:`.SessionEvents.restore_load_context` which apply to the
+        :meth:`.InstanceEvents.load`, :meth:`.InstanceEvents.refresh`, and
+        :meth:`.SessionEvents.loaded_as_persistent` events, which when set will
+        restore the "load context" of the object after the event hook has been
+        called.  This ensures that the object remains within the "loader context"
+        of the load operation that is already ongoing, rather than the object being
+        transferred to a new load context due to refresh operations which may have
+        occurred in the event. A warning is now emitted when this condition occurs,
+        which recommends use of the flag to resolve this case.  The flag is
+        "opt-in" so that there is no risk introduced to existing applications.
+
+        The change additionally adds support for the ``raw=True`` flag to
+        session lifecycle events.
+
+    .. change::
+        :tags: bug, mysql
+        :tickets: 5173
+
+        Fixed issue in MySQL :meth:`.mysql.Insert.on_duplicate_key_update` construct
+        where using a SQL function or other composed expression for a column argument
+        would not properly render the ``VALUES`` keyword surrounding the column
+        itself.
 
 .. changelog::
     :version: 1.3.13
diff --git a/doc/build/changelog/unreleased_13/4849.rst b/doc/build/changelog/unreleased_13/4849.rst
deleted file mode 100644 (file)
index 5a649dc..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-.. change::
-    :tags: bug, general, py3k
-    :tickets: 4849
-
-    Applied an explicit "cause" to most if not all internally raised exceptions
-    that are raised from within an internal exception catch, to avoid
-    misleading stacktraces that suggest an error within the handling of an
-    exception.  While it would be preferable to suppress the internally caught
-    exception in the way that the ``__suppress_context__`` attribute would,
-    there does not as yet seem to be a way to do this without suppressing an
-    enclosing user constructed context, so for now it exposes the internally
-    caught exception as the cause so that full information about the context
-    of the error is maintained.
diff --git a/doc/build/changelog/unreleased_13/5110.rst b/doc/build/changelog/unreleased_13/5110.rst
deleted file mode 100644 (file)
index 54823ab..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-.. change::
-    :tags: bug, orm
-    :tickets: 5110
-
-    Fixed regression caused in 1.3.13 by :ticket:`5056` where a refactor of the
-    ORM path registry system made it such that a path could no longer be
-    compared to an empty tuple, which can occur in a particular kind of joined
-    eager loading path.   The "empty tuple" use case has been resolved so that
-    the path registry is compared to a path registry in all cases;  the
-    :class:`.PathRegistry` object itself now implements ``__eq__()`` and
-    ``__ne__()`` methods which will take place for all equality comparisons and
-    continue to succeed in the not anticipated case that a non-
-    :class:`.PathRegistry` object is compared, while emitting a warning that
-    this object should not be the subject of the comparison.
-
-
diff --git a/doc/build/changelog/unreleased_13/5114.rst b/doc/build/changelog/unreleased_13/5114.rst
deleted file mode 100644 (file)
index 9dab646..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-.. change::
-    :tags: usecase, ext
-    :tickets: 5114
-
-    Added keyword arguments to the :meth:`.MutableList.sort` function so that a
-    key function as well as the "reverse" keyword argument can be provided.
-
diff --git a/doc/build/changelog/unreleased_13/5121.rst b/doc/build/changelog/unreleased_13/5121.rst
deleted file mode 100644 (file)
index 9803601..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-.. change::
-    :tags: orm, bug
-    :tickets: 5121
-
-    Fixed an additional regression in the same area as that of :ticket:`5080`
-    introduced in 1.3.0b3 via :ticket:`4468` where the ability to create a
-    joined option across a :func:`.with_polymorphic` into a relationship
-    against the base class of that with_polymorphic, and then further into
-    regular mapped relationships would fail as the base class component would
-    not add itself to the load path in a way that could be located by the
-    loader strategy. The changes applied in :ticket:`5080` have been further
-    refined to also accommodate this scenario.
diff --git a/doc/build/changelog/unreleased_13/5129.rst b/doc/build/changelog/unreleased_13/5129.rst
deleted file mode 100644 (file)
index 5c621ec..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-.. change::
-    :tags: usecase, orm
-    :tickets: 5129
-
-    Added a new flag :paramref:`.InstanceEvents.restore_load_context` and
-    :paramref:`.SessionEvents.restore_load_context` which apply to the
-    :meth:`.InstanceEvents.load`, :meth:`.InstanceEvents.refresh`, and
-    :meth:`.SessionEvents.loaded_as_persistent` events, which when set will
-    restore the "load context" of the object after the event hook has been
-    called.  This ensures that the object remains within the "loader context"
-    of the load operation that is already ongoing, rather than the object being
-    transferred to a new load context due to refresh operations which may have
-    occurred in the event. A warning is now emitted when this condition occurs,
-    which recommends use of the flag to resolve this case.  The flag is
-    "opt-in" so that there is no risk introduced to existing applications.
-
-    The change additionally adds support for the ``raw=True`` flag to
-    session lifecycle events.
\ No newline at end of file
diff --git a/doc/build/changelog/unreleased_13/5132.rst b/doc/build/changelog/unreleased_13/5132.rst
deleted file mode 100644 (file)
index d4e68f2..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-.. change::
-    :tags: bug, mssql
-    :tickets: 5132
-
-    Fixed issue where the :class:`.mssql.DATETIMEOFFSET` type would not
-    accommodate for the ``None`` value, introduced as part of the series of
-    fixes for this type first introduced in :ticket:`4983`, :ticket:`5045`.
-    Additionally, added support for passing a backend-specific date formatted
-    string through this type, as is typically allowed for date/time types on
-    most other DBAPIs.
diff --git a/doc/build/changelog/unreleased_13/5138.rst b/doc/build/changelog/unreleased_13/5138.rst
deleted file mode 100644 (file)
index e0a04b1..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-.. change::
-    :tags: bug, installation
-    :tickets: 5138
-
-    Vendored the ``inspect.formatannotation`` function inside of
-    ``sqlalchemy.util.compat``, which is needed for the vendored version of
-    ``inspect.formatargspec``.  The function is not documented in cPython and
-    is not guaranteed to be available in future Python versions.
-
diff --git a/doc/build/changelog/unreleased_13/5146.rst b/doc/build/changelog/unreleased_13/5146.rst
deleted file mode 100644 (file)
index d216c75..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-.. change::
-    :tags: bug, oracle
-    :tickets: 5146
-
-    Fixed a reflection bug where table comments could only be retrieved for
-    tables actually owned by the user but not for tables visible to the user
-    but owned by someone else.  Pull request courtesy Dave Hirschfeld.
diff --git a/doc/build/changelog/unreleased_13/5149.rst b/doc/build/changelog/unreleased_13/5149.rst
deleted file mode 100644 (file)
index 9550a7a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.. change::
-    :tags: bug, orm
-    :tickets: 5149
-
-    Setting a relationship to viewonly=True which is also the target of a
-    back_populates or backref configuration will now emit a warning and
-    eventually be disallowed. back_populates refers specifically to mutation
-    of an attribute or collection, which is disallowed when the attribute is
-    subject to viewonly=True.   The viewonly attribute is not subject to
-    persistence behaviors which means it will not reflect correct results
-    when it is locally mutated.
diff --git a/doc/build/changelog/unreleased_13/5158.rst b/doc/build/changelog/unreleased_13/5158.rst
deleted file mode 100644 (file)
index adab86d..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.. change::
-    :tags: bug, postgresql
-    :tickets: 5158
-
-    Fixed issue where the "schema_translate_map" feature would not work with a
-    PostgreSQL native enumeration type (i.e. :class:`.Enum`,
-    :class:`.postgresql.ENUM`) in that while the "CREATE TYPE" statement would
-    be emitted with the correct schema, the schema would not be rendered in
-    the CREATE TABLE statement at the point at which the enumeration was
-    referenced.
-
diff --git a/doc/build/changelog/unreleased_13/5170.rst b/doc/build/changelog/unreleased_13/5170.rst
deleted file mode 100644 (file)
index 2cebdd6..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-.. change::
-    :tags: bug, postgresql, reflection
-    :tickets: 5170
-
-    Fixed bug where PostgreSQL reflection of CHECK constraints would fail to
-    parse the constraint if the SQL text contained newline characters. The
-    regular expression has been adjusted to accommodate for this case. Pull
-    request courtesy Eric Borczuk.
diff --git a/doc/build/changelog/unreleased_13/5173.rst b/doc/build/changelog/unreleased_13/5173.rst
deleted file mode 100644 (file)
index 15e4fa2..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-.. change::
-    :tags: bug, mysql
-    :tickets: 5173
-
-    Fixed issue in MySQL :meth:`.mysql.Insert.on_duplicate_key_update` construct
-    where using a SQL function or other composed expression for a column argument
-    would not properly render the ``VALUES`` keyword surrounding the column
-    itself.
diff --git a/doc/build/changelog/unreleased_13/5180.rst b/doc/build/changelog/unreleased_13/5180.rst
deleted file mode 100644 (file)
index 85ac9a6..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.. change::
-    :tags: bug, performance
-    :tickets: 5180
-
-    Revised an internal change to the test system added as a result of
-    :ticket:`5085` where a testing-related module per dialect would be loaded
-    unconditionally upon making use of that dialect, pulling in SQLAlchemy's
-    testing framework as well as the ORM into the module import space.   This
-    would only impact initial startup time and memory to a modest extent,
-    however it's best that these additional modules aren't reverse-dependent on
-    straight Core usage.
diff --git a/doc/build/changelog/unreleased_13/5181.rst b/doc/build/changelog/unreleased_13/5181.rst
deleted file mode 100644 (file)
index 046dc4f..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-.. change::
-    :tags: bug, sql, postgresql
-    :tickets: 5181
-
-    Fixed bug where a CTE of an INSERT/UPDATE/DELETE that also uses RETURNING
-    could then not be SELECTed from directly, as the internal state of the
-    compiler would try to treat the outer SELECT as a DELETE statement itself
-    and access nonexistent state.
-
diff --git a/doc/build/changelog/unreleased_13/5182.rst b/doc/build/changelog/unreleased_13/5182.rst
deleted file mode 100644 (file)
index 0512385..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.. change::
-    :tags: bug, engine
-    :tickets: 5182
-
-    Expanded the scope of cursor/connection cleanup when a statement is
-    executed to include when the result object fails to be constructed, or an
-    after_cursor_execute() event raises an error, or autocommit / autoclose
-    fails.  This allows the DBAPI cursor to be cleaned up on failure and for
-    connectionless execution allows the connection to be closed out and
-    returned to the connection pool, where previously it waiting until garbage
-    collection would trigger a pool return.