summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2021-04-09 13:07:59 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2021-04-09 13:07:59 -0400
commitee40b4bd2acb68b00e75cda1bc40f9c47965be34 (patch)
tree443ede1ca568e3bb6c860ed0c94f69e62be94a64
parentdf53e150fd12bfb3177e8db3836fe5afd11559ba (diff)
downloadsqlalchemy-rel_1_4_7.tar.gz
- 1.4.7rel_1_4_7
-rw-r--r--doc/build/changelog/changelog_14.rst140
-rw-r--r--doc/build/changelog/unreleased_14/6211.rst7
-rw-r--r--doc/build/changelog/unreleased_14/6215.rst13
-rw-r--r--doc/build/changelog/unreleased_14/6216.rst10
-rw-r--r--doc/build/changelog/unreleased_14/6218.rst28
-rw-r--r--doc/build/changelog/unreleased_14/6221.rst9
-rw-r--r--doc/build/changelog/unreleased_14/6222.rst12
-rw-r--r--doc/build/changelog/unreleased_14/6232.rst12
-rw-r--r--doc/build/changelog/unreleased_14/6233.rst16
-rw-r--r--doc/build/changelog/unreleased_14/mr_str.rst7
-rw-r--r--doc/build/changelog/unreleased_14/mypy_typedec.rst7
-rw-r--r--doc/build/changelog/unreleased_14/schema_flag.rst6
-rw-r--r--doc/build/conf.py4
13 files changed, 141 insertions, 130 deletions
diff --git a/doc/build/changelog/changelog_14.rst b/doc/build/changelog/changelog_14.rst
index a2548a412..9fe004c79 100644
--- a/doc/build/changelog/changelog_14.rst
+++ b/doc/build/changelog/changelog_14.rst
@@ -15,7 +15,145 @@ This document details individual issue-level changes made throughout
.. changelog::
:version: 1.4.7
- :include_notes_from: unreleased_14
+ :released: April 9, 2021
+
+ .. change::
+ :tags: bug, sql, regression
+ :tickets: 6222
+
+ Enhanced the "expanding" feature used for :meth:`_sql.ColumnOperators.in_`
+ operations to infer the type of expression from the right hand list of
+ elements, if the left hand side does not have any explicit type set up.
+ This allows the expression to support stringification among other things.
+ In 1.3, "expanding" was not automatically used for
+ :meth:`_sql.ColumnOperators.in_` expressions, so in that sense this change
+ fixes a behavioral regression.
+
+
+ .. change::
+ :tags: bug, mypy
+
+ Fixed issue in Mypy plugin where the plugin wasn’t inferring the correct
+ type for columns of subclasses that don’t directly descend from
+ ``TypeEngine``, in particular that of ``TypeDecorator`` and
+ ``UserDefinedType``.
+
+ .. change::
+ :tags: bug, orm, regression
+ :tickets: 6221
+
+ Fixed regression where the :func:`_orm.subqueryload` loader strategy would
+ fail to correctly accommodate sub-options, such as a :func:`_orm.defer`
+ option on a column, if the "path" of the subqueryload were more than one
+ level deep.
+
+
+ .. change::
+ :tags: bug, sql
+
+ Fixed the "stringify" compiler to support a basic stringification
+ of a "multirow" INSERT statement, i.e. one with multiple tuples
+ following the VALUES keyword.
+
+
+ .. change::
+ :tags: bug, orm, regression
+ :tickets: 6211
+
+ Fixed regression where the :func:`_orm.merge_frozen_result` function relied
+ upon by the dogpile.caching example was not included in tests and began
+ failing due to incorrect internal arguments.
+
+ .. change::
+ :tags: bug, engine, regression
+ :tickets: 6218
+
+ Fixed up the behavior of the :class:`_result.Row` object when dictionary
+ access is used upon it, meaning converting to a dict via ``dict(row)`` or
+ accessing members using strings or other objects i.e. ``row["some_key"]``
+ works as it would with a dictionary, rather than raising ``TypeError`` as
+ would be the case with a tuple, whether or not the C extensions are in
+ place. This was originally supposed to emit a 2.0 deprecation warning for
+ the "non-future" case using :class:`_result.LegacyRow`, and was to raise
+ ``TypeError`` for the "future" :class:`_result.Row` class. However, the C
+ version of :class:`_result.Row` was failing to raise this ``TypeError``,
+ and to complicate matters, the :meth:`_orm.Session.execute` method now
+ returns :class:`_result.Row` in all cases to maintain consistency with the
+ ORM result case, so users who didn't have C extensions installed would
+ see different behavior in this one case for existing pre-1.4 style
+ code.
+
+ Therefore, in order to soften the overall upgrade scheme as most users have
+ not been exposed to the more strict behavior of :class:`_result.Row` up
+ through 1.4.6, :class:`_result.LegacyRow` and :class:`_result.Row` both
+ provide for string-key access as well as support for ``dict(row)``, in all
+ cases emitting the 2.0 deprecation warning when ``SQLALCHEMY_WARN_20`` is
+ enabled. The :class:`_result.Row` object still uses tuple-like behavior for
+ ``__contains__``, which is probably the only noticeable behavioral change
+ compared to :class:`_result.LegacyRow`, other than the removal of
+ dictionary-style methods ``values()`` and ``items()``.
+
+ .. change::
+ :tags: bug, regression, orm
+ :tickets: 6233
+
+ Fixed critical regression where the :class:`_orm.Session` could fail to
+ "autobegin" a new transaction when a flush occurred without an existing
+ transaction in place, implicitly placing the :class:`_orm.Session` into
+ legacy autocommit mode which commit the transaction. The
+ :class:`_orm.Session` now has a check that will prevent this condition from
+ occurring, in addition to repairing the flush issue.
+
+ Additionally, scaled back part of the change made as part of :ticket:`5226`
+ which can run autoflush during an unexpire operation, to not actually
+ do this in the case of a :class:`_orm.Session` using legacy
+ :paramref:`_orm.Session.autocommit` mode, as this incurs a commit within
+ a refresh operation.
+
+ .. change::
+ :tags: change, tests
+
+ Added a new flag to :class:`.DefaultDialect` called ``supports_schema``;
+ third party dialects may set this flag to ``True`` to enable SQLAlchemy's
+ schema-level tests when running the test suite for a third party dialect.
+
+ .. change::
+ :tags: bug, regression, schema
+ :tickets: 6216
+
+ Fixed regression where usage of a token in the
+ :paramref:`_engine.Connection.execution_options.schema_translate_map`
+ dictionary which contained special characters such as braces would fail to
+ be substituted properly. Use of square bracket characters ``[]`` is now
+ explicitly disallowed as these are used as a delimiter character in the
+ current implementation.
+
+ .. change::
+ :tags: bug, regression, orm
+ :tickets: 6215
+
+ Fixed regression where the ORM compilation scheme would assume the function
+ name of a hybrid property would be the same as the attribute name in such a
+ way that an ``AttributeError`` would be raised, when it would attempt to
+ determine the correct name for each element in a result tuple. A similar
+ issue exists in 1.3 but only impacts the names of tuple rows. The fix here
+ adds a check that the hybrid's function name is actually present in the
+ ``__dict__`` of the class or its superclasses before assigning this name;
+ otherwise, the hybrid is considered to be "unnamed" and ORM result tuples
+ will use the naming scheme of the underlying expression.
+
+ .. change::
+ :tags: bug, orm, regression
+ :tickets: 6232
+
+ Fixed critical regression caused by the new feature added as part of
+ :ticket:`1763`, eager loaders are invoked on unexpire operations. The new
+ feature makes use of the "immediateload" eager loader strategy as a
+ substitute for a collection loading strategy, which unlike the other
+ "post-load" strategies was not accommodating for recursive invocations
+ between mutually-dependent relationships, leading to recursion overflow
+ errors.
+
.. changelog::
:version: 1.4.6
diff --git a/doc/build/changelog/unreleased_14/6211.rst b/doc/build/changelog/unreleased_14/6211.rst
deleted file mode 100644
index 599b865eb..000000000
--- a/doc/build/changelog/unreleased_14/6211.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-.. change::
- :tags: bug, orm, regression
- :tickets: 6211
-
- Fixed regression where the :func:`_orm.merge_frozen_result` function relied
- upon by the dogpile.caching example was not included in tests and began
- failing due to incorrect internal arguments.
diff --git a/doc/build/changelog/unreleased_14/6215.rst b/doc/build/changelog/unreleased_14/6215.rst
deleted file mode 100644
index c2ba306a4..000000000
--- a/doc/build/changelog/unreleased_14/6215.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-.. change::
- :tags: bug, regression, orm
- :tickets: 6215
-
- Fixed regression where the ORM compilation scheme would assume the function
- name of a hybrid property would be the same as the attribute name in such a
- way that an ``AttributeError`` would be raised, when it would attempt to
- determine the correct name for each element in a result tuple. A similar
- issue exists in 1.3 but only impacts the names of tuple rows. The fix here
- adds a check that the hybrid's function name is actually present in the
- ``__dict__`` of the class or its superclasses before assigning this name;
- otherwise, the hybrid is considered to be "unnamed" and ORM result tuples
- will use the naming scheme of the underlying expression.
diff --git a/doc/build/changelog/unreleased_14/6216.rst b/doc/build/changelog/unreleased_14/6216.rst
deleted file mode 100644
index b8779e9e2..000000000
--- a/doc/build/changelog/unreleased_14/6216.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-.. change::
- :tags: bug, regression, schema
- :tickets: 6216
-
- Fixed regression where usage of a token in the
- :paramref:`_engine.Connection.execution_options.schema_translate_map`
- dictionary which contained special characters such as braces would fail to
- be substituted properly. Use of square bracket characters ``[]`` is now
- explicitly disallowed as these are used as a delimiter character in the
- current implementation.
diff --git a/doc/build/changelog/unreleased_14/6218.rst b/doc/build/changelog/unreleased_14/6218.rst
deleted file mode 100644
index 47621da8e..000000000
--- a/doc/build/changelog/unreleased_14/6218.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-.. change::
- :tags: bug, engine, regression
- :tickets: 6218
-
- Fixed up the behavior of the :class:`_result.Row` object when dictionary
- access is used upon it, meaning converting to a dict via ``dict(row)`` or
- accessing members using strings or other objects i.e. ``row["some_key"]``
- works as it would with a dictionary, rather than raising ``TypeError`` as
- would be the case with a tuple, whether or not the C extensions are in
- place. This was originally supposed to emit a 2.0 deprecation warning for
- the "non-future" case using :class:`_result.LegacyRow`, and was to raise
- ``TypeError`` for the "future" :class:`_result.Row` class. However, the C
- version of :class:`_result.Row` was failing to raise this ``TypeError``,
- and to complicate matters, the :meth:`_orm.Session.execute` method now
- returns :class:`_result.Row` in all cases to maintain consistency with the
- ORM result case, so users who didn't have C extensions installed would
- see different behavior in this one case for existing pre-1.4 style
- code.
-
- Therefore, in order to soften the overall upgrade scheme as most users have
- not been exposed to the more strict behavior of :class:`_result.Row` up
- through 1.4.6, :class:`_result.LegacyRow` and :class:`_result.Row` both
- provide for string-key access as well as support for ``dict(row)``, in all
- cases emitting the 2.0 deprecation warning when ``SQLALCHEMY_WARN_20`` is
- enabled. The :class:`_result.Row` object still uses tuple-like behavior for
- ``__contains__``, which is probably the only noticeable behavioral change
- compared to :class:`_result.LegacyRow`, other than the removal of
- dictionary-style methods ``values()`` and ``items()``.
diff --git a/doc/build/changelog/unreleased_14/6221.rst b/doc/build/changelog/unreleased_14/6221.rst
deleted file mode 100644
index d7438811f..000000000
--- a/doc/build/changelog/unreleased_14/6221.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-.. change::
- :tags: bug, orm, regression
- :tickets: 6221
-
- Fixed regression where the :func:`_orm.subqueryload` loader strategy would
- fail to correctly accommodate sub-options, such as a :func:`_orm.defer`
- option on a column, if the "path" of the subqueryload were more than one
- level deep.
-
diff --git a/doc/build/changelog/unreleased_14/6222.rst b/doc/build/changelog/unreleased_14/6222.rst
deleted file mode 100644
index 7464b09c6..000000000
--- a/doc/build/changelog/unreleased_14/6222.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-.. change::
- :tags: bug, sql, regression
- :tickets: 6222
-
- Enhanced the "expanding" feature used for :meth:`_sql.ColumnOperators.in_`
- operations to infer the type of expression from the right hand list of
- elements, if the left hand side does not have any explicit type set up.
- This allows the expression to support stringification among other things.
- In 1.3, "expanding" was not automatically used for
- :meth:`_sql.ColumnOperators.in_` expressions, so in that sense this change
- fixes a behavioral regression.
-
diff --git a/doc/build/changelog/unreleased_14/6232.rst b/doc/build/changelog/unreleased_14/6232.rst
deleted file mode 100644
index 5aee050e1..000000000
--- a/doc/build/changelog/unreleased_14/6232.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-.. change::
- :tags: bug, orm, regression
- :tickets: 6232
-
- Fixed critical regression caused by the new feature added as part of
- :ticket:`1763`, eager loaders are invoked on unexpire operations. The new
- feature makes use of the "immediateload" eager loader strategy as a
- substitute for a collection loading strategy, which unlike the other
- "post-load" strategies was not accommodating for recursive invocations
- between mutually-dependent relationships, leading to recursion overflow
- errors.
-
diff --git a/doc/build/changelog/unreleased_14/6233.rst b/doc/build/changelog/unreleased_14/6233.rst
deleted file mode 100644
index 80552e9b3..000000000
--- a/doc/build/changelog/unreleased_14/6233.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-.. change::
- :tags: bug, regression, orm
- :tickets: 6233
-
- Fixed critical regression where the :class:`_orm.Session` could fail to
- "autobegin" a new transaction when a flush occurred without an existing
- transaction in place, implicitly placing the :class:`_orm.Session` into
- legacy autocommit mode which commit the transaction. The
- :class:`_orm.Session` now has a check that will prevent this condition from
- occurring, in addition to repairing the flush issue.
-
- Additionally, scaled back part of the change made as part of :ticket:`5226`
- which can run autoflush during an unexpire operation, to not actually
- do this in the case of a :class:`_orm.Session` using legacy
- :paramref:`_orm.Session.autocommit` mode, as this incurs a commit within
- a refresh operation. \ No newline at end of file
diff --git a/doc/build/changelog/unreleased_14/mr_str.rst b/doc/build/changelog/unreleased_14/mr_str.rst
deleted file mode 100644
index f8511dc87..000000000
--- a/doc/build/changelog/unreleased_14/mr_str.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-.. change::
- :tags: bug, sql
-
- Fixed the "stringify" compiler to support a basic stringification
- of a "multirow" INSERT statement, i.e. one with multiple tuples
- following the VALUES keyword.
-
diff --git a/doc/build/changelog/unreleased_14/mypy_typedec.rst b/doc/build/changelog/unreleased_14/mypy_typedec.rst
deleted file mode 100644
index f4f7f3c19..000000000
--- a/doc/build/changelog/unreleased_14/mypy_typedec.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-.. change::
- :tags: bug, mypy
-
- Fixed issue in Mypy plugin where the plugin wasn’t inferring the correct
- type for columns of subclasses that don’t directly descend from
- ``TypeEngine``, in particular that of ``TypeDecorator`` and
- ``UserDefinedType``.
diff --git a/doc/build/changelog/unreleased_14/schema_flag.rst b/doc/build/changelog/unreleased_14/schema_flag.rst
deleted file mode 100644
index 8cf3b40a4..000000000
--- a/doc/build/changelog/unreleased_14/schema_flag.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-.. change::
- :tags: change, tests
-
- Added a new flag to :class:`.DefaultDialect` called ``supports_schema``;
- third party dialects may set this flag to ``True`` to enable SQLAlchemy's
- schema-level tests when running the test suite for a third party dialect.
diff --git a/doc/build/conf.py b/doc/build/conf.py
index 846734fd4..e33fca289 100644
--- a/doc/build/conf.py
+++ b/doc/build/conf.py
@@ -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.6"
+release = "1.4.7"
-release_date = "April 6, 2021"
+release_date = "April 9, 2021"
site_base = os.environ.get("RTD_SITE_BASE", "http://www.sqlalchemy.org")
site_adapter_template = "docs_adapter.mako"