]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- 1.4.6 rel_1_4_6
authorMike Bayer <mike_mp@zzzcomputing.com>
Tue, 6 Apr 2021 22:59:01 +0000 (18:59 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Tue, 6 Apr 2021 22:59:01 +0000 (18:59 -0400)
doc/build/changelog/changelog_14.rst
doc/build/changelog/unreleased_14/6147.rst [deleted file]
doc/build/changelog/unreleased_14/6199.rst [deleted file]
doc/build/changelog/unreleased_14/6202.rst [deleted file]
doc/build/changelog/unreleased_14/6203.rst [deleted file]
doc/build/changelog/unreleased_14/6204.rst [deleted file]
doc/build/changelog/unreleased_14/6205.rst [deleted file]
doc/build/changelog/unreleased_14/6206.rst [deleted file]
doc/build/conf.py

index 6bc69a1f664d02a091d3a97722919481a06177f2..4c011c3f4e570bb4dd6910db4c4f818669da4427 100644 (file)
@@ -15,7 +15,110 @@ This document details individual issue-level changes made throughout
 
 .. changelog::
     :version: 1.4.6
-    :include_notes_from: unreleased_14
+    :released: April 6, 2021
+
+    .. change::
+        :tags: bug, sql, regression, oracle, mssql
+        :tickets: 6202
+
+        Fixed further regressions in the same area as that of :ticket:`6173` released in
+        1.4.5, where a "postcompile" parameter, again most typically those used for
+        LIMIT/OFFSET rendering in Oracle and SQL Server, would fail to be processed
+        correctly if the same parameter rendered in multiple places in the
+        statement.
+
+
+
+    .. change::
+        :tags: bug, orm, regression
+        :tickets: 6203
+
+        Fixed regression where a deprecated form of :meth:`_orm.Query.join` were
+        used, passing a series of entities to join from without any ON clause in a
+        single :meth:`_orm.Query.join` call, would fail to function correctly.
+
+    .. change::
+        :tags: bug, mypy
+        :tickets: 6147
+
+        Applied a series of refactorings and fixes to accommodate for Mypy
+        "incremental" mode across multiple files, which previously was not taken
+        into account. In this mode the Mypy plugin has to accommodate Python
+        datatypes expressed in other files coming in with less information than
+        they have on a direct run.
+
+        Additionally, a new decorator :func:`_orm.declarative_mixin` is added,
+        which is necessary for the Mypy plugin to be able to definifitely identify
+        a Declarative mixin class that is otherwise not used inside a particular
+        Python file.
+
+        .. seealso::
+
+            :ref:`mypy_declarative_mixins`
+
+
+    .. change::
+        :tags: bug, mypy
+        :tickets: 6205
+
+        Fixed issue where the Mypy plugin would fail to interpret the
+        "collection_class" of a relationship if it were a callable and not a class.
+        Also improved type matching and error reporting for collection-oriented
+        relationships.
+
+
+    .. change::
+        :tags: bug, sql
+        :tickets: 6204
+
+        Executing a :class:`_sql.Subquery` using :meth:`_engine.Connection.execute`
+        is deprecated and will emit a deprecation warning; this use case was an
+        oversight that should have been removed from 1.4. The operation will now
+        execute the underlying :class:`_sql.Select` object directly for backwards
+        compatibility. Similarly, the :class:`_sql.CTE` class is also not
+        appropriate for execution. In 1.3, attempting to execute a CTE would result
+        in an invalid "blank" SQL statement being executed; since this use case was
+        not working it now raises :class:`_exc.ObjectNotExecutableError`.
+        Previously, 1.4 was attempting to execute the CTE as a statement however it
+        was working only erratically.
+
+    .. change::
+        :tags: bug, regression, orm
+        :tickets: 6206
+
+        Fixed critical regression where the :meth:`_orm.Query.yield_per` method in
+        the ORM would set up the internal :class:`_engine.Result` to yield chunks
+        at a time, however made use of the new :meth:`_engine.Result.unique` method
+        which uniques across the entire result. This would lead to lost rows since
+        the ORM is using ``id(obj)`` as the uniquing function, which leads to
+        repeated identifiers for new objects as already-seen objects are garbage
+        collected. 1.3's behavior here was to "unique" across each chunk, which
+        does not actually produce "uniqued" results when results are yielded in
+        chunks. As the :meth:`_orm.Query.yield_per` method is already explicitly
+        disallowed when joined eager loading is in place, which is the primary
+        rationale for the "uniquing" feature, the "uniquing" feature is now turned
+        off entirely when :meth:`_orm.Query.yield_per` is used.
+
+        This regression only applies to the legacy :class:`_orm.Query` object; when
+        using :term:`2.0 style` execution, "uniquing" is not automatically applied.
+        To prevent the issue from arising from explicit use of
+        :meth:`_engine.Result.unique`, an error is now raised if rows are fetched
+        from a "uniqued" ORM-level :class:`_engine.Result` if any
+        :ref:`yield per <orm_queryguide_yield_per>` API is also in use, as the
+        purpose of ``yield_per`` is to allow for arbitrarily large numbers of rows,
+        which cannot be uniqued in memory without growing the number of entries to
+        fit the complete result size.
+
+
+    .. change::
+        :tags: usecase, asyncio, postgresql
+        :tickets: 6199
+
+        Added accessors ``.sqlstate`` and synonym ``.pgcode`` to the ``.orig``
+        attribute of the SQLAlchemy exception class raised by the asyncpg DBAPI
+        adapter, that is, the intermediary exception object that wraps on top of
+        that raised by the asyncpg library itself, but below the level of the
+        SQLAlchemy dialect.
 
 .. changelog::
     :version: 1.4.5
diff --git a/doc/build/changelog/unreleased_14/6147.rst b/doc/build/changelog/unreleased_14/6147.rst
deleted file mode 100644 (file)
index 325ae0e..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-.. change::
-    :tags: bug, mypy
-    :tickets: 6147
-
-    Applied a series of refactorings and fixes to accommodate for Mypy
-    "incremental" mode across multiple files, which previously was not taken
-    into account. In this mode the Mypy plugin has to accommodate Python
-    datatypes expressed in other files coming in with less information than
-    they have on a direct run.
-
-    Additionally, a new decorator :func:`_orm.declarative_mixin` is added,
-    which is necessary for the Mypy plugin to be able to definifitely identify
-    a Declarative mixin class that is otherwise not used inside a particular
-    Python file.
-
-    .. seealso::
-
-        :ref:`mypy_declarative_mixins`
-
diff --git a/doc/build/changelog/unreleased_14/6199.rst b/doc/build/changelog/unreleased_14/6199.rst
deleted file mode 100644 (file)
index 0c81637..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-.. change::
-    :tags: usecase, asyncio, postgresql
-    :tickets: 6199
-
-    Added accessors ``.sqlstate`` and synonym ``.pgcode`` to the ``.orig``
-    attribute of the SQLAlchemy exception class raised by the asyncpg DBAPI
-    adapter, that is, the intermediary exception object that wraps on top of
-    that raised by the asyncpg library itself, but below the level of the
-    SQLAlchemy dialect.
diff --git a/doc/build/changelog/unreleased_14/6202.rst b/doc/build/changelog/unreleased_14/6202.rst
deleted file mode 100644 (file)
index a925d93..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.. change::
-    :tags: bug, sql, regression, oracle, mssql
-    :tickets: 6202
-
-    Fixed further regressions in the same area as that of :ticket:`6173` released in
-    1.4.5, where a "postcompile" parameter, again most typically those used for
-    LIMIT/OFFSET rendering in Oracle and SQL Server, would fail to be processed
-    correctly if the same parameter rendered in multiple places in the
-    statement.
-
-
diff --git a/doc/build/changelog/unreleased_14/6203.rst b/doc/build/changelog/unreleased_14/6203.rst
deleted file mode 100644 (file)
index 39076f1..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-.. change::
-    :tags: bug, orm, regression
-    :tickets: 6203
-
-    Fixed regression where a deprecated form of :meth:`_orm.Query.join` were
-    used, passing a series of entities to join from without any ON clause in a
-    single :meth:`_orm.Query.join` call, would fail to function correctly.
diff --git a/doc/build/changelog/unreleased_14/6204.rst b/doc/build/changelog/unreleased_14/6204.rst
deleted file mode 100644 (file)
index b6c518c..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-.. change::
-    :tags: bug, sql
-    :tickets: 6204
-
-    Executing a :class:`_sql.Subquery` using :meth:`_engine.Connection.execute`
-    is deprecated and will emit a deprecation warning; this use case was an
-    oversight that should have been removed from 1.4. The operation will now
-    execute the underlying :class:`_sql.Select` object directly for backwards
-    compatibility. Similarly, the :class:`_sql.CTE` class is also not
-    appropriate for execution. In 1.3, attempting to execute a CTE would result
-    in an invalid "blank" SQL statement being executed; since this use case was
-    not working it now raises :class:`_exc.ObjectNotExecutableError`.
-    Previously, 1.4 was attempting to execute the CTE as a statement however it
-    was working only erratically.
diff --git a/doc/build/changelog/unreleased_14/6205.rst b/doc/build/changelog/unreleased_14/6205.rst
deleted file mode 100644 (file)
index 8f79eb4..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-.. change::
-    :tags: bug, mypy
-    :tickets: 6205
-
-    Fixed issue where the Mypy plugin would fail to interpret the
-    "collection_class" of a relationship if it were a callable and not a class.
-    Also improved type matching and error reporting for collection-oriented
-    relationships.
-
diff --git a/doc/build/changelog/unreleased_14/6206.rst b/doc/build/changelog/unreleased_14/6206.rst
deleted file mode 100644 (file)
index c2452e0..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-.. change::
-    :tags: bug, regression, orm
-    :tickets: 6206
-
-    Fixed critical regression where the :meth:`_orm.Query.yield_per` method in
-    the ORM would set up the internal :class:`_engine.Result` to yield chunks
-    at a time, however made use of the new :meth:`_engine.Result.unique` method
-    which uniques across the entire result. This would lead to lost rows since
-    the ORM is using ``id(obj)`` as the uniquing function, which leads to
-    repeated identifiers for new objects as already-seen objects are garbage
-    collected. 1.3's behavior here was to "unique" across each chunk, which
-    does not actually produce "uniqued" results when results are yielded in
-    chunks. As the :meth:`_orm.Query.yield_per` method is already explicitly
-    disallowed when joined eager loading is in place, which is the primary
-    rationale for the "uniquing" feature, the "uniquing" feature is now turned
-    off entirely when :meth:`_orm.Query.yield_per` is used.
-
-    This regression only applies to the legacy :class:`_orm.Query` object; when
-    using :term:`2.0 style` execution, "uniquing" is not automatically applied.
-    To prevent the issue from arising from explicit use of
-    :meth:`_engine.Result.unique`, an error is now raised if rows are fetched
-    from a "uniqued" ORM-level :class:`_engine.Result` if any
-    :ref:`yield per <orm_queryguide_yield_per>` API is also in use, as the
-    purpose of ``yield_per`` is to allow for arbitrarily large numbers of rows,
-    which cannot be uniqued in memory without growing the number of entries to
-    fit the complete result size.
-
index 020f61d8b573b6dd48d154d04a5b4ca8661f3f8b..846734fd454ff91ee298182c32bdd6797002c225 100644 (file)
@@ -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.5"
+release = "1.4.6"
 
-release_date = "April 2, 2021"
+release_date = "April 6, 2021"
 
 site_base = os.environ.get("RTD_SITE_BASE", "http://www.sqlalchemy.org")
 site_adapter_template = "docs_adapter.mako"