From: Mike Bayer Date: Thu, 16 Apr 2026 20:04:09 +0000 (-0400) Subject: - 2.1.0b2 X-Git-Tag: rel_2_1_0b2 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=5237d923ddb0415847cef9fd676f7ec9ed2293b7;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - 2.1.0b2 --- diff --git a/doc/build/changelog/changelog_21.rst b/doc/build/changelog/changelog_21.rst index 65ecb6b31a..33fc84d643 100644 --- a/doc/build/changelog/changelog_21.rst +++ b/doc/build/changelog/changelog_21.rst @@ -10,7 +10,136 @@ .. changelog:: :version: 2.1.0b2 - :include_notes_from: unreleased_21 + :released: April 16, 2026 + + .. change:: + :tags: feature, oracle + :tickets: 10375 + + Added support for the :class:`_sqltypes.JSON` datatype when using the + Oracle database with the oracledb dialect. JSON values are serialized and + deserialized using configurable strategies that accommodate Oracle's native + JSON type available as of Oracle 21c. Pull request courtesy Abdallah + Alhadad. + + .. seealso:: + + :class:`_oracle.JSON` - Oracle-specific JSON class that includes + implementation and platform notes. + + :ref:`oracledb_json` + + .. change:: + :tags: bug, schema + :tickets: 10604 + + Amended the ``repr()`` output for :class:`.Enum` so that the + :class:`.MetaData` is not shown in the output, as this interferes with + Alembic-autogenerated forms of this type which should be inheriting the + :class:`.MetaData` of the parent table in the migration script. + + + .. change:: + :tags: bug, sql + :tickets: 11526 + + A warning is emitted when using the standalone :func:`_sql.distinct` + function in a :func:`_sql.select` columns list outside of an aggregate + function; this function is not intended as a replacement for the use of + :meth:`.Select.distinct`. Pull request courtesy bekapono. + + .. change:: + :tags: usecase, sql + :tickets: 11671 + + Added new parameter :paramref:`_sql.over.exclude` to :func:`_sql.over` and + related methods, enabling SQL standard frame exclusion clauses ``EXCLUDE + CURRENT ROW``, ``EXCLUDE GROUP``, ``EXCLUDE TIES``, ``EXCLUDE NO OTHERS`` + in window functions. Pull request courtesy of Varun Chawla. + + .. change:: + :tags: feature, mssql + :tickets: 12869 + + Added support for the ``mssql-python`` driver, Microsoft's official Python + driver for SQL Server. + + .. seealso:: + + :ref:`mssql_python` - Documentation for the mssql-python dialect + + + .. change:: + :tags: schema, usecase + :tickets: 13085 + + Most :class:`_sql.FromClause` subclasses are now generic on + :class:`_schema.TypedColumns` subclasses, that can be used to type their + :attr:`_sql.FromClause.c` collection. + This applied to :class:`_schema.Table`, :class:`_sql.Join`, + :class:`_sql.Subquery`, :class:`_sql.CTE` and more. + + .. seealso:: + + :ref:`change_13085` + + .. change:: + :tags: bug, typing + :tickets: 13091 + + Fixed issue in new :pep:`646` support for result sets where an issue in the + mypy type checker prevented "scalar" methods including + :meth:`.Connection.scalar`, :meth:`.Result.scalar`, + :meth:`_orm.Session.scalar`, as well as async versions of these methods + from applying the correct type to the scalar result value, when the columns + in the originating :func:`_sql.select` were typed as ``Any``. Pull request + courtesy Yurii Karabas. + + + .. change:: + :tags: bug, typing + :tickets: 13131 + + Improved typing of :class:`_sqltypes.JSON` as well as dialect specific + variants like :class:`_postgresql.JSON` to include generic capabilities, so + that the types may be parameterized to indicate any specific type of + contents expected, e.g. ``JSONB[list[str]]()``. + + + .. change:: + :tags: bug, sql + :tickets: 13140 + + Improved the ability for :class:`.TypeDecorator` to produce a correct + ``repr()`` for "schema" types such as :class:`.Enum` and :class:`.Boolean`. + This is mostly to support the Alembic autogenerate use case so that custom + types render with relevant arguments present. Improved the architecture + used by :class:`.TypeEngine` to produce ``repr()`` strings to be more + modular for compound types like :class:`.TypeDecorator`. + + .. change:: + :tags: usecase, orm + :tickets: 13198 + + The ``metadata``, ``type_annotation_map``, or ``registry`` can now be + set up in a declarative base also via a mixin class, not only by + directly setting them on the subclass like before. + The declarative class setup now uses ``getattr()`` to look for these + attributes, instead of relying only on the class ``__dict__``. + + .. change:: + :tags: usecase, sql + + The :class:`.ColumnCollection` class hierarchy has been refactored to allow + column names such as ``add``, ``remove``, ``update``, ``extend``, and + ``clear`` to be used without conflicts. :class:`.ColumnCollection` is now + an abstract base class, with mutation operations moved to + :class:`.WriteableColumnCollection` and :class:`.DedupeColumnCollection` + subclasses. The :class:`.ReadOnlyColumnCollection` exposed as attributes + such as :attr:`.Table.c` no longer includes mutation methods that raised + :class:`.NotImplementedError`, allowing these common column names to be + accessed naturally, e.g. ``table.c.add``, ``table.c.remove``, + ``table.c.update``, etc. .. changelog:: :version: 2.1.0b1 diff --git a/doc/build/changelog/unreleased_21/10375.rst b/doc/build/changelog/unreleased_21/10375.rst deleted file mode 100644 index 0bd043bf7d..0000000000 --- a/doc/build/changelog/unreleased_21/10375.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. change:: - :tags: feature, oracle - :tickets: 10375 - - Added support for the :class:`_sqltypes.JSON` datatype when using the - Oracle database with the oracledb dialect. JSON values are serialized and - deserialized using configurable strategies that accommodate Oracle's native - JSON type available as of Oracle 21c. Pull request courtesy Abdallah - Alhadad. - - .. seealso:: - - :class:`_oracle.JSON` - Oracle-specific JSON class that includes - implementation and platform notes. - - :ref:`oracledb_json` diff --git a/doc/build/changelog/unreleased_21/10602_metadata.rst b/doc/build/changelog/unreleased_21/10602_metadata.rst deleted file mode 100644 index b24c3d3e74..0000000000 --- a/doc/build/changelog/unreleased_21/10602_metadata.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, schema - :tickets: 10604 - - Amended the ``repr()`` output for :class:`.Enum` so that the - :class:`.MetaData` is not shown in the output, as this interferes with - Alembic-autogenerated forms of this type which should be inheriting the - :class:`.MetaData` of the parent table in the migration script. - diff --git a/doc/build/changelog/unreleased_21/11526.rst b/doc/build/changelog/unreleased_21/11526.rst deleted file mode 100644 index bbff86fc72..0000000000 --- a/doc/build/changelog/unreleased_21/11526.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 11526 - - A warning is emitted when using the standalone :func:`_sql.distinct` - function in a :func:`_sql.select` columns list outside of an aggregate - function; this function is not intended as a replacement for the use of - :meth:`.Select.distinct`. Pull request courtesy bekapono. diff --git a/doc/build/changelog/unreleased_21/11671.rst b/doc/build/changelog/unreleased_21/11671.rst deleted file mode 100644 index cf3101f385..0000000000 --- a/doc/build/changelog/unreleased_21/11671.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: usecase, sql - :tickets: 11671 - - Added new parameter :paramref:`_sql.over.exclude` to :func:`_sql.over` and - related methods, enabling SQL standard frame exclusion clauses ``EXCLUDE - CURRENT ROW``, ``EXCLUDE GROUP``, ``EXCLUDE TIES``, ``EXCLUDE NO OTHERS`` - in window functions. Pull request courtesy of Varun Chawla. diff --git a/doc/build/changelog/unreleased_21/12869.rst b/doc/build/changelog/unreleased_21/12869.rst deleted file mode 100644 index 6c7858f436..0000000000 --- a/doc/build/changelog/unreleased_21/12869.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. change:: - :tags: feature, mssql - :tickets: 12869 - - Added support for the ``mssql-python`` driver, Microsoft's official Python - driver for SQL Server. - - .. seealso:: - - :ref:`mssql_python` - Documentation for the mssql-python dialect - diff --git a/doc/build/changelog/unreleased_21/13085.rst b/doc/build/changelog/unreleased_21/13085.rst deleted file mode 100644 index 6ab65ebd16..0000000000 --- a/doc/build/changelog/unreleased_21/13085.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. change:: - :tags: schema, usecase - :tickets: 13085 - - Most :class:`_sql.FromClause` subclasses are now generic on - :class:`_schema.TypedColumns` subclasses, that can be used to type their - :attr:`_sql.FromClause.c` collection. - This applied to :class:`_schema.Table`, :class:`_sql.Join`, - :class:`_sql.Subquery`, :class:`_sql.CTE` and more. - - .. seealso:: - - :ref:`change_13085` \ No newline at end of file diff --git a/doc/build/changelog/unreleased_21/13091.rst b/doc/build/changelog/unreleased_21/13091.rst deleted file mode 100644 index 0ce7cbb279..0000000000 --- a/doc/build/changelog/unreleased_21/13091.rst +++ /dev/null @@ -1,12 +0,0 @@ -.. change:: - :tags: bug, typing - :tickets: 13091 - - Fixed issue in new :pep:`646` support for result sets where an issue in the - mypy type checker prevented "scalar" methods including - :meth:`.Connection.scalar`, :meth:`.Result.scalar`, - :meth:`_orm.Session.scalar`, as well as async versions of these methods - from applying the correct type to the scalar result value, when the columns - in the originating :func:`_sql.select` were typed as ``Any``. Pull request - courtesy Yurii Karabas. - diff --git a/doc/build/changelog/unreleased_21/13131.rst b/doc/build/changelog/unreleased_21/13131.rst deleted file mode 100644 index 978bc06b0c..0000000000 --- a/doc/build/changelog/unreleased_21/13131.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, typing - :tickets: 13131 - - Improved typing of :class:`_sqltypes.JSON` as well as dialect specific - variants like :class:`_postgresql.JSON` to include generic capabilities, so - that the types may be parameterized to indicate any specific type of - contents expected, e.g. ``JSONB[list[str]]()``. - diff --git a/doc/build/changelog/unreleased_21/13140.rst b/doc/build/changelog/unreleased_21/13140.rst deleted file mode 100644 index 62a485d0b3..0000000000 --- a/doc/build/changelog/unreleased_21/13140.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 13140 - - Improved the ability for :class:`.TypeDecorator` to produce a correct - ``repr()`` for "schema" types such as :class:`.Enum` and :class:`.Boolean`. - This is mostly to support the Alembic autogenerate use case so that custom - types render with relevant arguments present. Improved the architecture - used by :class:`.TypeEngine` to produce ``repr()`` strings to be more - modular for compound types like :class:`.TypeDecorator`. diff --git a/doc/build/changelog/unreleased_21/13198.rst b/doc/build/changelog/unreleased_21/13198.rst deleted file mode 100644 index a69703a29f..0000000000 --- a/doc/build/changelog/unreleased_21/13198.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: usecase, orm - :tickets: 13198 - - The ``metadata``, ``type_annotation_map``, or ``registry`` can now be - set up in a declarative base also via a mixin class, not only by - directly setting them on the subclass like before. - The declarative class setup now uses ``getattr()`` to look for these - attributes, instead of relying only on the class ``__dict__``. diff --git a/doc/build/changelog/unreleased_21/colcollection.rst b/doc/build/changelog/unreleased_21/colcollection.rst deleted file mode 100644 index 3a74840121..0000000000 --- a/doc/build/changelog/unreleased_21/colcollection.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. change:: - :tags: usecase, sql - - The :class:`.ColumnCollection` class hierarchy has been refactored to allow - column names such as ``add``, ``remove``, ``update``, ``extend``, and - ``clear`` to be used without conflicts. :class:`.ColumnCollection` is now - an abstract base class, with mutation operations moved to - :class:`.WriteableColumnCollection` and :class:`.DedupeColumnCollection` - subclasses. The :class:`.ReadOnlyColumnCollection` exposed as attributes - such as :attr:`.Table.c` no longer includes mutation methods that raised - :class:`.NotImplementedError`, allowing these common column names to be - accessed naturally, e.g. ``table.c.add``, ``table.c.remove``, - ``table.c.update``, etc. diff --git a/doc/build/conf.py b/doc/build/conf.py index 6b58747b19..c5f8862e48 100644 --- a/doc/build/conf.py +++ b/doc/build/conf.py @@ -237,9 +237,9 @@ copyright = "2007-2026, the SQLAlchemy authors and contributors" # noqa # The short X.Y version. version = "2.1" # The full version, including alpha/beta/rc tags. -release = "2.1.0b1" +release = "2.1.0b2" -release_date = "January 21, 2026" +release_date = "April 16, 2026" site_base = os.environ.get("RTD_SITE_BASE", "https://www.sqlalchemy.org") site_adapter_template = "docs_adapter.mako"