summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2021-06-28 16:29:28 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2021-06-28 16:29:28 -0400
commite3ce7ee2ee5b647416654763bd0c8c781b88d79f (patch)
tree7a766c8a8a1a4817a12b1abb67fc44da148d9620
parentf7f1d565cc764aeef56fe0e47536b90e26c2138b (diff)
downloadsqlalchemy-e3ce7ee2ee5b647416654763bd0c8c781b88d79f.tar.gz
- 1.4.20rel_1_4_20
-rw-r--r--doc/build/changelog/changelog_14.rst121
-rw-r--r--doc/build/changelog/unreleased_14/5348.rst11
-rw-r--r--doc/build/changelog/unreleased_14/6538.rst11
-rw-r--r--doc/build/changelog/unreleased_14/6646.rst7
-rw-r--r--doc/build/changelog/unreleased_14/6659.rst10
-rw-r--r--doc/build/changelog/unreleased_14/6665.rst9
-rw-r--r--doc/build/changelog/unreleased_14/6668.rst13
-rw-r--r--doc/build/changelog/unreleased_14/6678.rst13
-rw-r--r--doc/build/changelog/unreleased_14/6679.rst16
-rw-r--r--doc/build/changelog/unreleased_14/6680.rst9
-rw-r--r--doc/build/changelog/unreleased_14/6685.rst10
-rw-r--r--doc/build/conf.py4
12 files changed, 122 insertions, 112 deletions
diff --git a/doc/build/changelog/changelog_14.rst b/doc/build/changelog/changelog_14.rst
index 2b4f2207f..178ad3ef1 100644
--- a/doc/build/changelog/changelog_14.rst
+++ b/doc/build/changelog/changelog_14.rst
@@ -15,7 +15,126 @@ This document details individual issue-level changes made throughout
.. changelog::
:version: 1.4.20
- :include_notes_from: unreleased_14
+ :released: June 28, 2021
+
+ .. change::
+ :tags: bug, regression, orm
+ :tickets: 6680
+
+ Fixed regression in ORM regarding an internal reconstitution step for the
+ :func:`_orm.with_polymorphic` construct, when the user-facing object is
+ garbage collected as the query is processed. The reconstitution was not
+ ensuring the sub-entities for the "polymorphic" case were handled, leading
+ to an ``AttributeError``.
+
+ .. change::
+ :tags: usecase, sql
+ :tickets: 6646
+
+ Add a impl parameter to :class:`_types.PickleType` constructor, allowing
+ any arbitary type to be used in place of the default implementation of
+ :class:`_types.LargeBinary`. Pull request courtesy jason3gb.
+
+ .. change::
+ :tags: bug, engine
+ :tickets: 5348
+
+ Fixed an issue in the C extension for the :class:`_result.Row` class which
+ could lead to a memory leak in the unlikely case of a :class:`_result.Row`
+ object which referred to an ORM object that then was mutated to refer back
+ to the ``Row`` itself, creating a cycle. The Python C APIs for tracking GC
+ cycles has been added to the native :class:`_result.Row` implementation to
+ accommodate for this case.
+
+
+ .. change::
+ :tags: bug, engine
+ :tickets: 6665
+
+ Fixed old issue where a :func:`_sql.select()` made against the token "*",
+ which then yielded exactly one column, would fail to correctly organize the
+ ``cursor.description`` column name into the keys of the result object.
+
+
+
+ .. change::
+ :tags: usecase, mysql
+ :tickets: 6659
+
+ Made a small adjustment in the table reflection feature of the MySQL
+ dialect to accommodate for alternate MySQL-oriented databases such as TiDB
+ which include their own "comment" directives at the end of a constraint
+ directive within "CREATE TABLE" where the format doesn't have the
+ additional space character after the comment, in this case the TiDB
+ "clustered index" feature. Pull request courtesy Daniël van Eeden.
+
+ .. change::
+ :tags: bug, schema
+ :tickets: 6685
+
+ Fixed issue where passing ``None`` for the value of
+ :paramref:`_schema.Table.prefixes` would not store an empty list, but
+ rather the constant ``None``, which may be unexpected by third party
+ dialects. The issue is revealed by a usage in recent versions of Alembic
+ that are passing ``None`` for this value. Pull request courtesy Kai
+ Mueller.
+
+ .. change::
+ :tags: bug, regression, ext
+ :tickets: 6679
+
+ Fixed regression in :mod:`sqlalchemy.ext.automap` extension such that the
+ use case of creating an explicit mapped class to a table that is also the
+ :paramref:`_orm.relationship.secondary` element of a
+ :func:`_orm.relationship` that automap will be generating would emit the
+ "overlaps" warnings introduced in 1.4 and discussed at :ref:`error_qzyx`.
+ While generating this case from automap is still subject to the same
+ caveats that the "overlaps" warning refers towards, as automap is intended
+ for more ad-hoc use cases, the condition which produces the warning is
+ disabled when a many-to-many relationship with this particular pattern is
+ generated.
+
+
+
+ .. change::
+ :tags: bug, regression, orm
+ :tickets: 6678
+
+ Adjusted :meth:`_orm.Query.union` and similar set operations to be
+ correctly compatible with the new capabilities just added in
+ :ticket:`6661`, with SQLAlchemy 1.4.19, such that the SELECT statements
+ rendered as elements of the UNION or other set operation will include
+ directly mapped columns that are mapped as deferred; this both fixes a
+ regression involving unions with multiple levels of nesting that would
+ produce a column mismatch, and also allows the :func:`_orm.undefer` option
+ to be used at the top level of such a :class:`_orm.Query` without having to
+ apply the option to each of the elements within the UNION.
+
+ .. change::
+ :tags: bug, sql, orm
+ :tickets: 6668
+
+ Fixed the class hierarchy for the :class:`_schema.Sequence` and the more
+ general :class:`_schema.DefaultGenerator` base, as these are "executable"
+ as statements they need to include :class:`_sql.Executable` in their
+ hierarchy, not just :class:`_roles.StatementRole` as was applied
+ arbitrarily to :class:`_schema.Sequence` previously. The fix allows
+ :class:`_schema.Sequence` to work in all ``.execute()`` methods including
+ with :meth:`_orm.Session.execute` which was not working in the case that a
+ :meth:`_orm.SessionEvents.do_orm_execute` handler was also established.
+
+
+ .. change::
+ :tags: bug, orm
+ :tickets: 6538
+
+ Adjusted the check in the mapper for a callable object that is used as a
+ ``@validates`` validator function or a ``@reconstructor`` reconstruction
+ function, to check for "callable" more liberally such as to accommodate
+ objects based on fundamental attributes like ``__func__`` and
+ ``__call___``, rather than testing for ``MethodType`` / ``FunctionType``,
+ allowing things like cython functions to work properly. Pull request
+ courtesy Miłosz Stypiński.
.. changelog::
:version: 1.4.19
diff --git a/doc/build/changelog/unreleased_14/5348.rst b/doc/build/changelog/unreleased_14/5348.rst
deleted file mode 100644
index 337620aa1..000000000
--- a/doc/build/changelog/unreleased_14/5348.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-.. change::
- :tags: bug, engine
- :tickets: 5348
-
- Fixed an issue in the C extension for the :class:`_result.Row` class which
- could lead to a memory leak in the unlikely case of a :class:`_result.Row`
- object which referred to an ORM object that then was mutated to refer back
- to the ``Row`` itself, creating a cycle. The Python C APIs for tracking GC
- cycles has been added to the native :class:`_result.Row` implementation to
- accommodate for this case.
-
diff --git a/doc/build/changelog/unreleased_14/6538.rst b/doc/build/changelog/unreleased_14/6538.rst
deleted file mode 100644
index f50b592ee..000000000
--- a/doc/build/changelog/unreleased_14/6538.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-.. change::
- :tags: bug, orm
- :tickets: 6538
-
- Adjusted the check in the mapper for a callable object that is used as a
- ``@validates`` validator function or a ``@reconstructor`` reconstruction
- function, to check for "callable" more liberally such as to accommodate
- objects based on fundamental attributes like ``__func__`` and
- ``__call___``, rather than testing for ``MethodType`` / ``FunctionType``,
- allowing things like cython functions to work properly. Pull request
- courtesy Miłosz Stypiński.
diff --git a/doc/build/changelog/unreleased_14/6646.rst b/doc/build/changelog/unreleased_14/6646.rst
deleted file mode 100644
index 55e0ec8d5..000000000
--- a/doc/build/changelog/unreleased_14/6646.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-.. change::
- :tags: usecase, sql
- :tickets: 6646
-
- Add a impl parameter to :class:`_types.PickleType` constructor, allowing
- any arbitary type to be used in place of the default implementation of
- :class:`_types.LargeBinary`. Pull request courtesy jason3gb. \ No newline at end of file
diff --git a/doc/build/changelog/unreleased_14/6659.rst b/doc/build/changelog/unreleased_14/6659.rst
deleted file mode 100644
index 15e9c095b..000000000
--- a/doc/build/changelog/unreleased_14/6659.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-.. change::
- :tags: usecase, mysql
- :tickets: 6659
-
- Made a small adjustment in the table reflection feature of the MySQL
- dialect to accommodate for alternate MySQL-oriented databases such as TiDB
- which include their own "comment" directives at the end of a constraint
- directive within "CREATE TABLE" where the format doesn't have the
- additional space character after the comment, in this case the TiDB
- "clustered index" feature. Pull request courtesy Daniël van Eeden.
diff --git a/doc/build/changelog/unreleased_14/6665.rst b/doc/build/changelog/unreleased_14/6665.rst
deleted file mode 100644
index f7b53d5d4..000000000
--- a/doc/build/changelog/unreleased_14/6665.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-.. change::
- :tags: bug, engine
- :tickets: 6665
-
- Fixed old issue where a :func:`_sql.select()` made against the token "*",
- which then yielded exactly one column, would fail to correctly organize the
- ``cursor.description`` column name into the keys of the result object.
-
-
diff --git a/doc/build/changelog/unreleased_14/6668.rst b/doc/build/changelog/unreleased_14/6668.rst
deleted file mode 100644
index 697b20504..000000000
--- a/doc/build/changelog/unreleased_14/6668.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-.. change::
- :tags: bug, sql, orm
- :tickets: 6668
-
- Fixed the class hierarchy for the :class:`_schema.Sequence` and the more
- general :class:`_schema.DefaultGenerator` base, as these are "executable"
- as statements they need to include :class:`_sql.Executable` in their
- hierarchy, not just :class:`_roles.StatementRole` as was applied
- arbitrarily to :class:`_schema.Sequence` previously. The fix allows
- :class:`_schema.Sequence` to work in all ``.execute()`` methods including
- with :meth:`_orm.Session.execute` which was not working in the case that a
- :meth:`_orm.SessionEvents.do_orm_execute` handler was also established.
-
diff --git a/doc/build/changelog/unreleased_14/6678.rst b/doc/build/changelog/unreleased_14/6678.rst
deleted file mode 100644
index db461ee5c..000000000
--- a/doc/build/changelog/unreleased_14/6678.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-.. change::
- :tags: bug, regression, orm
- :tickets: 6678
-
- Adjusted :meth:`_orm.Query.union` and similar set operations to be
- correctly compatible with the new capabilities just added in
- :ticket:`6661`, with SQLAlchemy 1.4.19, such that the SELECT statements
- rendered as elements of the UNION or other set operation will include
- directly mapped columns that are mapped as deferred; this both fixes a
- regression involving unions with multiple levels of nesting that would
- produce a column mismatch, and also allows the :func:`_orm.undefer` option
- to be used at the top level of such a :class:`_orm.Query` without having to
- apply the option to each of the elements within the UNION.
diff --git a/doc/build/changelog/unreleased_14/6679.rst b/doc/build/changelog/unreleased_14/6679.rst
deleted file mode 100644
index ca4cd7b49..000000000
--- a/doc/build/changelog/unreleased_14/6679.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-.. change::
- :tags: bug, regression, ext
- :tickets: 6679
-
- Fixed regression in :mod:`sqlalchemy.ext.automap` extension such that the
- use case of creating an explicit mapped class to a table that is also the
- :paramref:`_orm.relationship.secondary` element of a
- :func:`_orm.relationship` that automap will be generating would emit the
- "overlaps" warnings introduced in 1.4 and discussed at :ref:`error_qzyx`.
- While generating this case from automap is still subject to the same
- caveats that the "overlaps" warning refers towards, as automap is intended
- for more ad-hoc use cases, the condition which produces the warning is
- disabled when a many-to-many relationship with this particular pattern is
- generated.
-
-
diff --git a/doc/build/changelog/unreleased_14/6680.rst b/doc/build/changelog/unreleased_14/6680.rst
deleted file mode 100644
index 7e61cf61e..000000000
--- a/doc/build/changelog/unreleased_14/6680.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-.. change::
- :tags: bug, regression, orm
- :tickets: 6680
-
- Fixed regression in ORM regarding an internal reconstitution step for the
- :func:`_orm.with_polymorphic` construct, when the user-facing object is
- garbage collected as the query is processed. The reconstitution was not
- ensuring the sub-entities for the "polymorphic" case were handled, leading
- to an ``AttributeError``.
diff --git a/doc/build/changelog/unreleased_14/6685.rst b/doc/build/changelog/unreleased_14/6685.rst
deleted file mode 100644
index dcac51691..000000000
--- a/doc/build/changelog/unreleased_14/6685.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-.. change::
- :tags: bug, schema
- :tickets: 6685
-
- Fixed issue where passing ``None`` for the value of
- :paramref:`_schema.Table.prefixes` would not store an empty list, but
- rather the constant ``None``, which may be unexpected by third party
- dialects. The issue is revealed by a usage in recent versions of Alembic
- that are passing ``None`` for this value. Pull request courtesy Kai
- Mueller.
diff --git a/doc/build/conf.py b/doc/build/conf.py
index 8dd41a92f..b7ef6d43b 100644
--- a/doc/build/conf.py
+++ b/doc/build/conf.py
@@ -196,9 +196,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.19"
+release = "1.4.20"
-release_date = "June 22, 2021"
+release_date = "June 28, 2021"
site_base = os.environ.get("RTD_SITE_BASE", "http://www.sqlalchemy.org")
site_adapter_template = "docs_adapter.mako"