diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2021-04-09 13:07:59 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2021-04-09 13:07:59 -0400 |
commit | ee40b4bd2acb68b00e75cda1bc40f9c47965be34 (patch) | |
tree | 443ede1ca568e3bb6c860ed0c94f69e62be94a64 | |
parent | df53e150fd12bfb3177e8db3836fe5afd11559ba (diff) | |
download | sqlalchemy-rel_1_4_7.tar.gz |
- 1.4.7rel_1_4_7
-rw-r--r-- | doc/build/changelog/changelog_14.rst | 140 | ||||
-rw-r--r-- | doc/build/changelog/unreleased_14/6211.rst | 7 | ||||
-rw-r--r-- | doc/build/changelog/unreleased_14/6215.rst | 13 | ||||
-rw-r--r-- | doc/build/changelog/unreleased_14/6216.rst | 10 | ||||
-rw-r--r-- | doc/build/changelog/unreleased_14/6218.rst | 28 | ||||
-rw-r--r-- | doc/build/changelog/unreleased_14/6221.rst | 9 | ||||
-rw-r--r-- | doc/build/changelog/unreleased_14/6222.rst | 12 | ||||
-rw-r--r-- | doc/build/changelog/unreleased_14/6232.rst | 12 | ||||
-rw-r--r-- | doc/build/changelog/unreleased_14/6233.rst | 16 | ||||
-rw-r--r-- | doc/build/changelog/unreleased_14/mr_str.rst | 7 | ||||
-rw-r--r-- | doc/build/changelog/unreleased_14/mypy_typedec.rst | 7 | ||||
-rw-r--r-- | doc/build/changelog/unreleased_14/schema_flag.rst | 6 | ||||
-rw-r--r-- | doc/build/conf.py | 4 |
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" |