Skip to content

Commit

Permalink
- 2.0.24
Browse files Browse the repository at this point in the history
  • Loading branch information
zzzeek committed Dec 28, 2023
1 parent e29e68f commit aab08b7
Show file tree
Hide file tree
Showing 14 changed files with 134 additions and 122 deletions.
133 changes: 132 additions & 1 deletion doc/build/changelog/changelog_20.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,138 @@

.. changelog::
:version: 2.0.24
:include_notes_from: unreleased_20
:released: December 28, 2023

.. change::
:tags: bug, orm
:tickets: 10597

Fixed issue where use of :func:`_orm.foreign` annotation on a
non-initialized :func:`_orm.mapped_column` construct would produce an
expression without a type, which was then not updated at initialization
time of the actual column, leading to issues such as relationships not
determining ``use_get`` appropriately.


.. change::
:tags: bug, schema
:tickets: 10654

Fixed issue where error reporting for unexpected schema item when creating
objects like :class:`_schema.Table` would incorrectly handle an argument
that was itself passed as a tuple, leading to a formatting error. The
error message has been modernized to use f-strings.

.. change::
:tags: bug, engine
:tickets: 10662

Fixed URL-encoding of the username and password components of
:class:`.engine.URL` objects when converting them to string using the
:meth:`_engine.URL.render_as_string` method, by using Python standard
library ``urllib.parse.quote`` while allowing for plus signs and spaces to
remain unchanged as supported by SQLAlchemy's non-standard URL parsing,
rather than the legacy home-grown routine from many years ago. Pull request
courtesy of Xavier NUNN.

.. change::
:tags: bug, orm
:tickets: 10668

Improved the error message produced when the unit of work process sets the
value of a primary key column to NULL due to a related object with a
dependency rule on that column being deleted, to include not just the
destination object and column name but also the source column from which
the NULL value is originating. Pull request courtesy Jan Vollmer.

.. change::
:tags: bug, postgresql
:tickets: 10717

Adjusted the asyncpg dialect such that when the ``terminate()`` method is
used to discard an invalidated connection, the dialect will first attempt
to gracefully close the connection using ``.close()`` with a timeout, if
the operation is proceeding within an async event loop context only. This
allows the asyncpg driver to attend to finalizing a ``TimeoutError``
including being able to close a long-running query server side, which
otherwise can keep running after the program has exited.

.. change::
:tags: bug, orm
:tickets: 10732

Modified the ``__init_subclass__()`` method used by
:class:`_orm.MappedAsDataclass`, :class:`_orm.DeclarativeBase` and
:class:`_orm.DeclarativeBaseNoMeta` to accept arbitrary ``**kw`` and to
propagate them to the ``super()`` call, allowing greater flexibility in
arranging custom superclasses and mixins which make use of
``__init_subclass__()`` keyword arguments. Pull request courtesy Michael
Oliver.


.. change::
:tags: bug, tests
:tickets: 10747

Improvements to the test suite to further harden its ability to run
when Python ``greenlet`` is not installed. There is now a tox
target that includes the token "nogreenlet" that will run the suite
with greenlet not installed (note that it still temporarily installs
greenlet as part of the tox config, however).

.. change::
:tags: bug, sql
:tickets: 10753

Fixed issue in stringify for SQL elements, where a specific dialect is not
passed, where a dialect-specific element such as the PostgreSQL "on
conflict do update" construct is encountered and then fails to provide for
a stringify dialect with the appropriate state to render the construct,
leading to internal errors.

.. change::
:tags: bug, sql

Fixed issue where stringifying or compiling a :class:`.CTE` that was
against a DML construct such as an :func:`_sql.insert` construct would fail
to stringify, due to a mis-detection that the statement overall is an
INSERT, leading to internal errors.

.. change::
:tags: bug, orm
:tickets: 10776

Ensured the use case of :class:`.Bundle` objects used in the
``returning()`` portion of ORM-enabled INSERT, UPDATE and DELETE statements
is tested and works fully. This was never explicitly implemented or
tested previously and did not work correctly in the 1.4 series; in the 2.0
series, ORM UPDATE/DELETE with WHERE criteria was missing an implementation
method preventing :class:`.Bundle` objects from working.

.. change::
:tags: bug, orm
:tickets: 10784

Fixed 2.0 regression in :class:`.MutableList` where a routine that detects
sequences would not correctly filter out string or bytes instances, making
it impossible to assign a string value to a specific index (while
non-sequence values would work fine).

.. change::
:tags: change, asyncio

The ``async_fallback`` dialect argument is now deprecated, and will be
removed in SQLAlchemy 2.1. This flag has not been used for SQLAlchemy's
test suite for some time. asyncio dialects can still run in a synchronous
style by running code within a greenlet using :func:`_util.greenlet_spawn`.

.. change::
:tags: bug, typing
:tickets: 6810

Completed pep-484 typing for the ``sqlalchemy.sql.functions`` module.
:func:`_sql.select` constructs made against ``func`` elements should now
have filled-in return types.

.. changelog::
:version: 2.0.23
Expand Down
10 changes: 0 additions & 10 deletions doc/build/changelog/unreleased_20/10597.rst

This file was deleted.

8 changes: 0 additions & 8 deletions doc/build/changelog/unreleased_20/10654.rst

This file was deleted.

11 changes: 0 additions & 11 deletions doc/build/changelog/unreleased_20/10662.rst

This file was deleted.

9 changes: 0 additions & 9 deletions doc/build/changelog/unreleased_20/10668.rst

This file was deleted.

11 changes: 0 additions & 11 deletions doc/build/changelog/unreleased_20/10717.rst

This file was deleted.

12 changes: 0 additions & 12 deletions doc/build/changelog/unreleased_20/10732.rst

This file was deleted.

9 changes: 0 additions & 9 deletions doc/build/changelog/unreleased_20/10747.rst

This file was deleted.

17 changes: 0 additions & 17 deletions doc/build/changelog/unreleased_20/10753.rst

This file was deleted.

10 changes: 0 additions & 10 deletions doc/build/changelog/unreleased_20/10776.rst

This file was deleted.

8 changes: 0 additions & 8 deletions doc/build/changelog/unreleased_20/10784.rst

This file was deleted.

7 changes: 0 additions & 7 deletions doc/build/changelog/unreleased_20/async_fallback.rst

This file was deleted.

7 changes: 0 additions & 7 deletions doc/build/changelog/unreleased_20/sql_func_typing.rst

This file was deleted.

4 changes: 2 additions & 2 deletions doc/build/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -244,9 +244,9 @@
# The short X.Y version.
version = "2.0"
# The full version, including alpha/beta/rc tags.
release = "2.0.23"
release = "2.0.24"

release_date = "November 2, 2023"
release_date = "December 28, 2023"

site_base = os.environ.get("RTD_SITE_BASE", "https://www.sqlalchemy.org")
site_adapter_template = "docs_adapter.mako"
Expand Down

0 comments on commit aab08b7

Please sign in to comment.