From: Mike Bayer Date: Mon, 15 Apr 2019 15:46:47 +0000 (-0400) Subject: - 1.3.3 X-Git-Tag: rel_1_3_3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=47a2ab9e35e6e3b8963342809b75ca48d99ae667;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - 1.3.3 --- diff --git a/doc/build/changelog/changelog_13.rst b/doc/build/changelog/changelog_13.rst index 686e8d34f5..4182ed0720 100644 --- a/doc/build/changelog/changelog_13.rst +++ b/doc/build/changelog/changelog_13.rst @@ -12,7 +12,88 @@ .. changelog:: :version: 1.3.3 - :include_notes_from: unreleased_13 + :released: April 15, 2019 + + .. change:: + :tags: bug, postgresql + :tickets: 4601 + + Fixed regression from release 1.3.2 caused by :ticket:`4562` where a URL + that contained only a query string and no hostname, such as for the + purposes of specifying a service file with connection information, would no + longer be propagated to psycopg2 properly. The change in :ticket:`4562` + has been adjusted to further suit psycopg2's exact requirements, which is + that if there are any connection parameters whatsoever, the "dsn" parameter + is no longer required, so in this case the query string parameters are + passed alone. + + .. change:: + :tags: bug, pool + :tickets: 4585 + + Fixed behavioral regression as a result of deprecating the "use_threadlocal" + flag for :class:`.Pool`, where the :class:`.SingletonThreadPool` no longer + makes use of this option which causes the "rollback on return" logic to take + place when the same :class:`.Engine` is used multiple times in the context + of a transaction to connect or implicitly execute, thereby cancelling the + transaction. While this is not the recommended way to work with engines + and connections, it is nonetheless a confusing behavioral change as when + using :class:`.SingletonThreadPool`, the transaction should stay open + regardless of what else is done with the same engine in the same thread. + The ``use_threadlocal`` flag remains deprecated however the + :class:`.SingletonThreadPool` now implements its own version of the same + logic. + + + .. change:: + :tags: bug, orm + :tickets: 4584 + + Fixed 1.3 regression in new "ambiguous FROMs" query logic introduced in + :ref:`change_4365` where a :class:`.Query` that explicitly places an entity + in the FROM clause with :meth:`.Query.select_from` and also joins to it + using :meth:`.Query.join` would later cause an "ambiguous FROM" error if + that entity were used in additional joins, as the entity appears twice in + the "from" list of the :class:`.Query`. The fix resolves this ambiguity by + folding the standalone entity into the join that it's already a part of in + the same way that ultimately happens when the SELECT statement is rendered. + + .. change:: + :tags: bug, ext + :tickets: 4603 + + Fixed bug where using ``copy.copy()`` or ``copy.deepcopy()`` on + :class:`.MutableList` would cause the items within the list to be + duplicated, due to an inconsistency in how Python pickle and copy both make + use of ``__getstate__()`` and ``__setstate__()`` regarding lists. In order + to resolve, a ``__reduce_ex__`` method had to be added to + :class:`.MutableList`. In order to maintain backwards compatibility with + existing pickles based on ``__getstate__()``, the ``__setstate__()`` method + remains as well; the test suite asserts that pickles made against the old + version of the class can still be deserialized by the pickle module. + + .. change:: + :tags: bug, orm + :tickets: 4606 + + Adjusted the :meth:`.Query.filter_by` method to not call :func:`.and()` + internally against multiple criteria, instead passing it off to + :meth:`.Query.filter` as a series of criteria, instead of a single criteria. + This allows :meth:`.Query.filter_by` to defer to :meth:`.Query.filter`'s + treatment of variable numbers of clauses, including the case where the list + is empty. In this case, the :class:`.Query` object will not have a + ``.whereclause``, which allows subsequent "no whereclause" methods like + :meth:`.Query.select_from` to behave consistently. + + .. change:: + :tags: bug, mssql + :tickets: 4587 + + Fixed issue in SQL Server dialect where if a bound parameter were present in + an ORDER BY expression that would ultimately not be rendered in the SQL + Server version of the statement, the parameters would still be part of the + execution parameters, leading to DBAPI-level errors. Pull request courtesy + Matt Lewellyn. .. changelog:: :version: 1.3.2 diff --git a/doc/build/changelog/unreleased_13/4584.rst b/doc/build/changelog/unreleased_13/4584.rst deleted file mode 100644 index 1f40a7014b..0000000000 --- a/doc/build/changelog/unreleased_13/4584.rst +++ /dev/null @@ -1,12 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 4584 - - Fixed 1.3 regression in new "ambiguous FROMs" query logic introduced in - :ref:`change_4365` where a :class:`.Query` that explicitly places an entity - in the FROM clause with :meth:`.Query.select_from` and also joins to it - using :meth:`.Query.join` would later cause an "ambiguous FROM" error if - that entity were used in additional joins, as the entity appears twice in - the "from" list of the :class:`.Query`. The fix resolves this ambiguity by - folding the standalone entity into the join that it's already a part of in - the same way that ultimately happens when the SELECT statement is rendered. diff --git a/doc/build/changelog/unreleased_13/4585.rst b/doc/build/changelog/unreleased_13/4585.rst deleted file mode 100644 index f9e13cac18..0000000000 --- a/doc/build/changelog/unreleased_13/4585.rst +++ /dev/null @@ -1,17 +0,0 @@ -.. change:: - :tags: bug, pool - :tickets: 4585 - - Fixed behavioral regression as a result of deprecating the "use_threadlocal" - flag for :class:`.Pool`, where the :class:`.SingletonThreadPool` no longer - makes use of this option which causes the "rollback on return" logic to take - place when the same :class:`.Engine` is used multiple times in the context - of a transaction to connect or implicitly execute, thereby cancelling the - transaction. While this is not the recommended way to work with engines - and connections, it is nonetheless a confusing behavioral change as when - using :class:`.SingletonThreadPool`, the transaction should stay open - regardless of what else is done with the same engine in the same thread. - The ``use_threadlocal`` flag remains deprecated however the - :class:`.SingletonThreadPool` now implements its own version of the same - logic. - diff --git a/doc/build/changelog/unreleased_13/4587.rst b/doc/build/changelog/unreleased_13/4587.rst deleted file mode 100644 index decc6a286b..0000000000 --- a/doc/build/changelog/unreleased_13/4587.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, mssql - :tickets: 4587 - - Fixed issue in SQL Server dialect where if a bound parameter were present in - an ORDER BY expression that would ultimately not be rendered in the SQL - Server version of the statement, the parameters would still be part of the - execution parameters, leading to DBAPI-level errors. Pull request courtesy - Matt Lewellyn. diff --git a/doc/build/changelog/unreleased_13/4601.rst b/doc/build/changelog/unreleased_13/4601.rst deleted file mode 100644 index 950d746505..0000000000 --- a/doc/build/changelog/unreleased_13/4601.rst +++ /dev/null @@ -1,12 +0,0 @@ -.. change:: - :tags: bug, postgresql - :tickets: 4601 - - Fixed regression from release 1.3.2 caused by :ticket:`4562` where a URL - that contained only a query string and no hostname, such as for the - purposes of specifying a service file with connection information, would no - longer be propagated to psycopg2 properly. The change in :ticket:`4562` - has been adjusted to further suit psycopg2's exact requirements, which is - that if there are any connection parameters whatsoever, the "dsn" parameter - is no longer required, so in this case the query string parameters are - passed alone. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_13/4603.rst b/doc/build/changelog/unreleased_13/4603.rst deleted file mode 100644 index a172f36587..0000000000 --- a/doc/build/changelog/unreleased_13/4603.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. change:: - :tags: bug, ext - :tickets: 4603 - - Fixed bug where using ``copy.copy()`` or ``copy.deepcopy()`` on - :class:`.MutableList` would cause the items within the list to be - duplicated, due to an inconsistency in how Python pickle and copy both make - use of ``__getstate__()`` and ``__setstate__()`` regarding lists. In order - to resolve, a ``__reduce_ex__`` method had to be added to - :class:`.MutableList`. In order to maintain backwards compatibility with - existing pickles based on ``__getstate__()``, the ``__setstate__()`` method - remains as well; the test suite asserts that pickles made against the old - version of the class can still be deserialized by the pickle module. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_13/4606.rst b/doc/build/changelog/unreleased_13/4606.rst deleted file mode 100644 index 6bdfa8a5f4..0000000000 --- a/doc/build/changelog/unreleased_13/4606.rst +++ /dev/null @@ -1,12 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 4606 - - Adjusted the :meth:`.Query.filter_by` method to not call :func:`.and()` - internally against multiple criteria, instead passing it off to - :meth:`.Query.filter` as a series of criteria, instead of a single criteria. - This allows :meth:`.Query.filter_by` to defer to :meth:`.Query.filter`'s - treatment of variable numbers of clauses, including the case where the list - is empty. In this case, the :class:`.Query` object will not have a - ``.whereclause``, which allows subsequent "no whereclause" methods like - :meth:`.Query.select_from` to behave consistently. diff --git a/doc/build/conf.py b/doc/build/conf.py index 0d2118c2d4..58d32fa06e 100644 --- a/doc/build/conf.py +++ b/doc/build/conf.py @@ -109,9 +109,9 @@ copyright = u'2007-2019, the SQLAlchemy authors and contributors' # The short X.Y version. version = "1.3" # The full version, including alpha/beta/rc tags. -release = "1.3.2" +release = "1.3.3" -release_date = "April 2, 2019" +release_date = "April 15, 2019" site_base = os.environ.get("RTD_SITE_BASE", "http://www.sqlalchemy.org") site_adapter_template = "docs_adapter.mako"