summaryrefslogtreecommitdiff
path: root/doc/build
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2021-06-10 14:13:44 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2021-06-10 14:13:44 -0400
commit4808acfe1b88854fce47b792ef9995f1921426e7 (patch)
tree76a726217ec3776c425e86b56345d78f29d5ee5f /doc/build
parentad1c81a6df4950788db3f8007331cac0f9365d97 (diff)
downloadsqlalchemy-4808acfe1b88854fce47b792ef9995f1921426e7.tar.gz
- 1.4.18rel_1_4_18
Diffstat (limited to 'doc/build')
-rw-r--r--doc/build/changelog/changelog_14.rst139
-rw-r--r--doc/build/changelog/unreleased_14/6072.rst20
-rw-r--r--doc/build/changelog/unreleased_14/6285.rst10
-rw-r--r--doc/build/changelog/unreleased_14/6319.rst24
-rw-r--r--doc/build/changelog/unreleased_14/6400.rst9
-rw-r--r--doc/build/changelog/unreleased_14/6575.rst7
-rw-r--r--doc/build/changelog/unreleased_14/6581.rst12
-rw-r--r--doc/build/changelog/unreleased_14/6586.rst10
-rw-r--r--doc/build/changelog/unreleased_14/6591.rst7
-rw-r--r--doc/build/changelog/unreleased_14/6592.rst10
-rw-r--r--doc/build/changelog/unreleased_14/6595.rst7
-rw-r--r--doc/build/changelog/unreleased_14/6596.rst10
-rw-r--r--doc/build/conf.py4
13 files changed, 140 insertions, 129 deletions
diff --git a/doc/build/changelog/changelog_14.rst b/doc/build/changelog/changelog_14.rst
index a40dbce7e..e241dea95 100644
--- a/doc/build/changelog/changelog_14.rst
+++ b/doc/build/changelog/changelog_14.rst
@@ -15,7 +15,144 @@ This document details individual issue-level changes made throughout
.. changelog::
:version: 1.4.18
- :include_notes_from: unreleased_14
+ :released: June 10, 2021
+
+ .. change::
+ :tags: bug, orm
+ :tickets: 6072, 6487
+
+ Clarified the current purpose of the
+ :paramref:`_orm.relationship.bake_queries` flag, which in 1.4 is to enable
+ or disable "lambda caching" of statements within the "lazyload" and
+ "selectinload" loader strategies; this is separate from the more
+ foundational SQL query cache that is used for most statements.
+ Additionally, the lazy loader no longer uses its own cache for many-to-one
+ SQL queries, which was an implementation quirk that doesn't exist for any
+ other loader scenario. Finally, the "lru cache" warning that the lazyloader
+ and selectinloader strategies could emit when handling a wide array of
+ class/relationship combinations has been removed; based on analysis of some
+ end-user cases, this warning doesn't suggest any significant issue. While
+ setting ``bake_queries=False`` for such a relationship will remove this
+ cache from being used, there's no particular performance gain in this case
+ as using no caching vs. using a cache that needs to refresh often likely
+ still wins out on the caching being used side.
+
+
+ .. change::
+ :tags: bug, asyncio
+ :tickets: 6575
+
+ Fixed an issue that presented itself when using the :class:`_pool.NullPool`
+ or the :class:`_pool.StaticPool` with an async engine. This mostly affected
+ the aiosqlite dialect.
+
+ .. change::
+ :tags: bug, sqlite, regression
+ :tickets: 6586
+
+ The fix for pysqlcipher released in version 1.4.3 :ticket:`5848` was
+ unfortunately non-working, in that the new ``on_connect_url`` hook was
+ erroneously not receiving a ``URL`` object under normal usage of
+ :func:`_sa.create_engine` and instead received a string that was unhandled;
+ the test suite failed to fully set up the actual conditions under which
+ this hook is called. This has been fixed.
+
+ .. change::
+ :tags: bug, postgresql, regression
+ :tickets: 6581
+
+ Fixed regression where using the PostgreSQL "INSERT..ON CONFLICT" structure
+ would fail to work with the psycopg2 driver if it were used in an
+ "executemany" context along with bound parameters in the "SET" clause, due
+ to the implicit use of the psycopg2 fast execution helpers which are not
+ appropriate for this style of INSERT statement; as these helpers are the
+ default in 1.4 this is effectively a regression. Additional checks to
+ exclude this kind of statement from that particular extension have been
+ added.
+
+ .. change::
+ :tags: bug, orm, regression
+ :tickets: 6285
+
+ Adjusted the means by which classes such as :class:`_orm.scoped_session`
+ and :class:`_asyncio.AsyncSession` are generated from the base
+ :class:`_orm.Session` class, such that custom :class:`_orm.Session`
+ subclasses such as that used by Flask-SQLAlchemy don't need to implement
+ positional arguments when they call into the superclass method, and can
+ continue using the same argument styles as in previous releases.
+
+ .. change::
+ :tags: bug, orm, regression
+ :tickets: 6595
+
+ Fixed issue where query production for joinedload against a complex left
+ hand side involving joined-table inheritance could fail to produce a
+ correct query, due to a clause adaption issue.
+
+ .. change::
+ :tags: bug, orm, regression, performance
+ :tickets: 6596
+
+ Fixed regression involving how the ORM would resolve a given mapped column
+ to a result row, where under cases such as joined eager loading, a slightly
+ more expensive "fallback" could take place to set up this resolution due to
+ some logic that was removed since 1.3. The issue could also cause
+ deprecation warnings involving column resolution to be emitted when using a
+ 1.4 style query with joined eager loading.
+
+ .. change::
+ :tags: bug, orm
+ :tickets: 6591
+
+ Fixed issue in experimental "select ORM objects from INSERT/UPDATE" use
+ case where an error was raised if the statement were against a
+ single-table-inheritance subclass.
+
+ .. change::
+ :tags: bug, asyncio
+ :tickets: 6592
+
+ Added ``asyncio.exceptions.TimeoutError``,
+ ``asyncio.exceptions.CancelledError`` as so-called "exit exceptions", a
+ class of exceptions that include things like ``GreenletExit`` and
+ ``KeyboardInterrupt``, which are considered to be events that warrant
+ considering a DBAPI connection to be in an unusable state where it should
+ be recycled.
+
+ .. change::
+ :tags: bug, orm
+ :tickets: 6400
+
+ The warning that's emitted for :func:`_orm.relationship` when multiple
+ relationships would overlap with each other as far as foreign key
+ attributes written towards, now includes the specific "overlaps" argument
+ to use for each warning in order to silence the warning without changing
+ the mapping.
+
+ .. change::
+ :tags: usecase, asyncio
+ :tickets: 6319
+
+ Implemented a new registry architecture that allows the ``Async`` version
+ of an object, like ``AsyncSession``, ``AsyncConnection``, etc., to be
+ locatable given the proxied "sync" object, i.e. ``Session``,
+ ``Connection``. Previously, to the degree such lookup functions were used,
+ an ``Async`` object would be re-created each time, which was less than
+ ideal as the identity and state of the "async" object would not be
+ preserved across calls.
+
+ From there, new helper functions :func:`_asyncio.async_object_session`,
+ :func:`_asyncio.async_session` as well as a new :class:`_orm.InstanceState`
+ attribute :attr:`_orm.InstanceState.async_session` have been added, which
+ are used to retrieve the original :class:`_asyncio.AsyncSession` associated
+ with an ORM mapped object, a :class:`_orm.Session` associated with an
+ :class:`_asyncio.AsyncSession`, and an :class:`_asyncio.AsyncSession`
+ associated with an :class:`_orm.InstanceState`, respectively.
+
+ This patch also implements new methods
+ :meth:`_asyncio.AsyncSession.in_nested_transaction`,
+ :meth:`_asyncio.AsyncSession.get_transaction`,
+ :meth:`_asyncio.AsyncSession.get_nested_transaction`.
.. changelog::
:version: 1.4.17
diff --git a/doc/build/changelog/unreleased_14/6072.rst b/doc/build/changelog/unreleased_14/6072.rst
deleted file mode 100644
index 29e3294c1..000000000
--- a/doc/build/changelog/unreleased_14/6072.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-.. change::
- :tags: bug, orm
- :tickets: 6072, 6487
-
- Clarified the current purpose of the
- :paramref:`_orm.relationship.bake_queries` flag, which in 1.4 is to enable
- or disable "lambda caching" of statements within the "lazyload" and
- "selectinload" loader strategies; this is separate from the more
- foundational SQL query cache that is used for most statements.
- Additionally, the lazy loader no longer uses its own cache for many-to-one
- SQL queries, which was an implementation quirk that doesn't exist for any
- other loader scenario. Finally, the "lru cache" warning that the lazyloader
- and selectinloader strategies could emit when handling a wide array of
- class/relationship combinations has been removed; based on analysis of some
- end-user cases, this warning doesn't suggest any significant issue. While
- setting ``bake_queries=False`` for such a relationship will remove this
- cache from being used, there's no particular performance gain in this case
- as using no caching vs. using a cache that needs to refresh often likely
- still wins out on the caching being used side.
-
diff --git a/doc/build/changelog/unreleased_14/6285.rst b/doc/build/changelog/unreleased_14/6285.rst
deleted file mode 100644
index 7debb5ca1..000000000
--- a/doc/build/changelog/unreleased_14/6285.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-.. change::
- :tags: bug, orm, regression
- :tickets: 6285
-
- Adjusted the means by which classes such as :class:`_orm.scoped_session`
- and :class:`_asyncio.AsyncSession` are generated from the base
- :class:`_orm.Session` class, such that custom :class:`_orm.Session`
- subclasses such as that used by Flask-SQLAlchemy don't need to implement
- positional arguments when they call into the superclass method, and can
- continue using the same argument styles as in previous releases.
diff --git a/doc/build/changelog/unreleased_14/6319.rst b/doc/build/changelog/unreleased_14/6319.rst
deleted file mode 100644
index 13db051e1..000000000
--- a/doc/build/changelog/unreleased_14/6319.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-.. change::
- :tags: usecase, asyncio
- :tickets: 6319
-
- Implemented a new registry architecture that allows the ``Async`` version
- of an object, like ``AsyncSession``, ``AsyncConnection``, etc., to be
- locatable given the proxied "sync" object, i.e. ``Session``,
- ``Connection``. Previously, to the degree such lookup functions were used,
- an ``Async`` object would be re-created each time, which was less than
- ideal as the identity and state of the "async" object would not be
- preserved across calls.
-
- From there, new helper functions :func:`_asyncio.async_object_session`,
- :func:`_asyncio.async_session` as well as a new :class:`_orm.InstanceState`
- attribute :attr:`_orm.InstanceState.async_session` have been added, which
- are used to retrieve the original :class:`_asyncio.AsyncSession` associated
- with an ORM mapped object, a :class:`_orm.Session` associated with an
- :class:`_asyncio.AsyncSession`, and an :class:`_asyncio.AsyncSession`
- associated with an :class:`_orm.InstanceState`, respectively.
-
- This patch also implements new methods
- :meth:`_asyncio.AsyncSession.in_nested_transaction`,
- :meth:`_asyncio.AsyncSession.get_transaction`,
- :meth:`_asyncio.AsyncSession.get_nested_transaction`.
diff --git a/doc/build/changelog/unreleased_14/6400.rst b/doc/build/changelog/unreleased_14/6400.rst
deleted file mode 100644
index 928feb9bd..000000000
--- a/doc/build/changelog/unreleased_14/6400.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-.. change::
- :tags: bug, orm
- :tickets: 6400
-
- The warning that's emitted for :func:`_orm.relationship` when multiple
- relationships would overlap with each other as far as foreign key
- attributes written towards, now includes the specific "overlaps" argument
- to use for each warning in order to silence the warning without changing
- the mapping.
diff --git a/doc/build/changelog/unreleased_14/6575.rst b/doc/build/changelog/unreleased_14/6575.rst
deleted file mode 100644
index 17f7beef8..000000000
--- a/doc/build/changelog/unreleased_14/6575.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-.. change::
- :tags: bug, asyncio
- :tickets: 6575
-
- Fixed an issue that presented itself when using the :class:`_pool.NullPool`
- or the :class:`_pool.StaticPool` with an async engine. This mostly affected
- the aiosqlite dialect.
diff --git a/doc/build/changelog/unreleased_14/6581.rst b/doc/build/changelog/unreleased_14/6581.rst
deleted file mode 100644
index 63c6e0634..000000000
--- a/doc/build/changelog/unreleased_14/6581.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-.. change::
- :tags: bug, postgresql, regression
- :tickets: 6581
-
- Fixed regression where using the PostgreSQL "INSERT..ON CONFLICT" structure
- would fail to work with the psycopg2 driver if it were used in an
- "executemany" context along with bound parameters in the "SET" clause, due
- to the implicit use of the psycopg2 fast execution helpers which are not
- appropriate for this style of INSERT statement; as these helpers are the
- default in 1.4 this is effectively a regression. Additional checks to
- exclude this kind of statement from that particular extension have been
- added.
diff --git a/doc/build/changelog/unreleased_14/6586.rst b/doc/build/changelog/unreleased_14/6586.rst
deleted file mode 100644
index 027f1b01d..000000000
--- a/doc/build/changelog/unreleased_14/6586.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-.. change::
- :tags: bug, sqlite, regression
- :tickets: 6586
-
- The fix for pysqlcipher released in version 1.4.3 :ticket:`5848` was
- unfortunately non-working, in that the new ``on_connect_url`` hook was
- erroneously not receiving a ``URL`` object under normal usage of
- :func:`_sa.create_engine` and instead received a string that was unhandled;
- the test suite failed to fully set up the actual conditions under which
- this hook is called. This has been fixed.
diff --git a/doc/build/changelog/unreleased_14/6591.rst b/doc/build/changelog/unreleased_14/6591.rst
deleted file mode 100644
index 74cbcc5f4..000000000
--- a/doc/build/changelog/unreleased_14/6591.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-.. change::
- :tags: bug, orm
- :tickets: 6591
-
- Fixed issue in experimental "select ORM objects from INSERT/UPDATE" use
- case where an error was raised if the statement were against a
- single-table-inheritance subclass.
diff --git a/doc/build/changelog/unreleased_14/6592.rst b/doc/build/changelog/unreleased_14/6592.rst
deleted file mode 100644
index 896789bd5..000000000
--- a/doc/build/changelog/unreleased_14/6592.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-.. change::
- :tags: bug, asyncio
- :tickets: 6592
-
- Added ``asyncio.exceptions.TimeoutError``,
- ``asyncio.exceptions.CancelledError`` as so-called "exit exceptions", a
- class of exceptions that include things like ``GreenletExit`` and
- ``KeyboardInterrupt``, which are considered to be events that warrant
- considering a DBAPI connection to be in an unusable state where it should
- be recycled.
diff --git a/doc/build/changelog/unreleased_14/6595.rst b/doc/build/changelog/unreleased_14/6595.rst
deleted file mode 100644
index a9f22da18..000000000
--- a/doc/build/changelog/unreleased_14/6595.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-.. change::
- :tags: bug, orm, regression
- :tickets: 6595
-
- Fixed issue where query production for joinedload against a complex left
- hand side involving joined-table inheritance could fail to produce a
- correct query, due to a clause adaption issue.
diff --git a/doc/build/changelog/unreleased_14/6596.rst b/doc/build/changelog/unreleased_14/6596.rst
deleted file mode 100644
index 65d307eb8..000000000
--- a/doc/build/changelog/unreleased_14/6596.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-.. change::
- :tags: bug, orm, regression, performance
- :tickets: 6596
-
- Fixed regression involving how the ORM would resolve a given mapped column
- to a result row, where under cases such as joined eager loading, a slightly
- more expensive "fallback" could take place to set up this resolution due to
- some logic that was removed since 1.3. The issue could also cause
- deprecation warnings involving column resolution to be emitted when using a
- 1.4 style query with joined eager loading.
diff --git a/doc/build/conf.py b/doc/build/conf.py
index d305ca0d9..c63491f06 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.17"
+release = "1.4.18"
-release_date = "May 29, 2021"
+release_date = "June 10, 2021"
site_base = os.environ.get("RTD_SITE_BASE", "http://www.sqlalchemy.org")
site_adapter_template = "docs_adapter.mako"