From: Mike Bayer Date: Mon, 6 Mar 2023 00:55:20 +0000 (-0500) Subject: - 2.0.5 X-Git-Tag: rel_2_0_5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=85334e7f89c93b57c54db57ef76c60916966c574;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - 2.0.5 --- diff --git a/doc/build/changelog/changelog_20.rst b/doc/build/changelog/changelog_20.rst index 9c430bfe0e..8c246c8da5 100644 --- a/doc/build/changelog/changelog_20.rst +++ b/doc/build/changelog/changelog_20.rst @@ -10,7 +10,262 @@ .. changelog:: :version: 2.0.5 - :include_notes_from: unreleased_20 + :released: March 5, 2023 + + .. change:: + :tags: bug, orm + :tickets: 9418 + + Added constructor arguments to the built-in mapping collection types + including :class:`.KeyFuncDict`, :func:`_orm.attribute_keyed_dict`, + :func:`_orm.column_keyed_dict` so that these dictionary types may be + constructed in place given the data up front; this provides further + compatibility with tools such as Python dataclasses ``.asdict()`` which + relies upon invoking these classes directly as ordinary dictionary classes. + + .. change:: + :tags: bug, orm, regression + :tickets: 9424 + + Fixed multiple regressions due to :ticket:`8372`, involving + :func:`_orm.attribute_mapped_collection` (now called + :func:`_orm.attribute_keyed_dict`). + + First, the collection was no longer usable with "key" attributes that were + not themselves ordinary mapped attributes; attributes linked to descriptors + and/or association proxy attributes have been fixed. + + Second, if an event or other operation needed access to the "key" in order + to populate the dictionary from an mapped attribute that was not + loaded, this also would raise an error inappropriately, rather than + trying to load the attribute as was the behavior in 1.4. This is also + fixed. + + For both cases, the behavior of :ticket:`8372` has been expanded. + :ticket:`8372` introduced an error that raises when the derived key that + would be used as a mapped dictionary key is effectively unassigned. In this + change, a warning only is emitted if the effective value of the ".key" + attribute is ``None``, where it cannot be unambiguously determined if this + ``None`` was intentional or not. ``None`` will be not supported as mapped + collection dictionary keys going forward (as it typically refers to NULL + which means "unknown"). Setting + :paramref:`_orm.attribute_keyed_dict.ignore_unpopulated_attribute` will now + cause such ``None`` keys to be ignored as well. + + .. change:: + :tags: engine, performance + :tickets: 9343 + + A small optimization to the Cython implementation of :class:`.Result` + using a cdef for a particular int value to avoid Python overhead. Pull + request courtesy Matus Valo. + + + .. change:: + :tags: bug, mssql + :tickets: 9414 + + Fixed issue in the new :class:`.Uuid` datatype which prevented it from + working with the pymssql driver. As pymssql seems to be maintained again, + restored testing support for pymssql. + + .. change:: + :tags: bug, mssql + + Tweaked the pymssql dialect to take better advantage of + RETURNING for INSERT statements in order to retrieve last inserted primary + key values, in the same way as occurs for the mssql+pyodbc dialect right + now. + + .. change:: + :tags: bug, orm + + Identified that the ``sqlite`` and ``mssql+pyodbc`` dialects are now + compatible with the SQLAlchemy ORM's "versioned rows" feature, since + SQLAlchemy now computes rowcount for a RETURNING statement in this specific + case by counting the rows returned, rather than relying upon + ``cursor.rowcount``. In particular, the ORM versioned rows use case + (documented at :ref:`mapper_version_counter`) should now be fully + supported with the SQL Server pyodbc dialect. + + + .. change:: + :tags: bug, postgresql + :tickets: 9349 + + Fixed issue in PostgreSQL :class:`_postgresql.ExcludeConstraint` where + literal values were being compiled as bound parameters and not direct + inline values as is required for DDL. + + .. change:: + :tags: bug, typing + + Fixed bug where the :meth:`_engine.Connection.scalars` method was not typed + as allowing a multiple-parameters list, which is now supported using + insertmanyvalues operations. + + .. change:: + :tags: bug, typing + :tickets: 9376 + + Improved typing for the mapping passed to :meth:`.Insert.values` and + :meth:`.Update.values` to be more open-ended about collection type, by + indicating read-only ``Mapping`` instead of writeable ``Dict`` which would + error out on too limited of a key type. + + .. change:: + :tags: schema + + Validate that when provided the :paramref:`_schema.MetaData.schema` + argument of :class:`_schema.MetaData` is a string. + + .. change:: + :tags: typing, usecase + :tickets: 9338 + + Exported the type returned by + :meth:`_orm.scoped_session.query_property` using a new public type + :class:`.orm.QueryPropertyDescriptor`. + + .. change:: + :tags: bug, mysql, postgresql + :tickets: 5648 + + The support for pool ping listeners to receive exception events via the + :meth:`.DialectEvents.handle_error` event added in 2.0.0b1 for + :ticket:`5648` failed to take into account dialect-specific ping routines + such as that of MySQL and PostgreSQL. The dialect feature has been reworked + so that all dialects participate within event handling. Additionally, + a new boolean element :attr:`.ExceptionContext.is_pre_ping` is added + which identifies if this operation is occurring within the pre-ping + operation. + + For this release, third party dialects which implement a custom + :meth:`_engine.Dialect.do_ping` method can opt in to the newly improved + behavior by having their method no longer catch exceptions or check + exceptions for "is_disconnect", instead just propagating all exceptions + outwards. Checking the exception for "is_disconnect" is now done by an + enclosing method on the default dialect, which ensures that the event hook + is invoked for all exception scenarios before testing the exception as a + "disconnect" exception. If an existing ``do_ping()`` method continues to + catch exceptions and check "is_disconnect", it will continue to work as it + did previously, but ``handle_error`` hooks will not have access to the + exception if it isn't propagated outwards. + + .. change:: + :tags: bug, ext + :tickets: 9367 + + Fixed issue in automap where calling :meth:`_automap.AutomapBase.prepare` + from a specific mapped class, rather than from the + :class:`_automap.AutomapBase` directly, would not use the correct base + class when automap detected new tables, instead using the given class, + leading to mappers trying to configure inheritance. While one should + normally call :meth:`_automap.AutomapBase.prepare` from the base in any + case, it shouldn't misbehave that badly when called from a subclass. + + + .. change:: + :tags: bug, sqlite, regression + :tickets: 9379 + + Fixed regression for SQLite connections where use of the ``deterministic`` + parameter when establishing database functions would fail for older SQLite + versions, those prior to version 3.8.3. The version checking logic has been + improved to accommodate for this case. + + .. change:: + :tags: bug, typing + :tickets: 9391 + + Added missing init overload to the :class:`_types.Numeric` type object so + that pep-484 type checkers may properly resolve the complete type, deriving + from the :paramref:`_types.Numeric.asdecimal` parameter whether ``Decimal`` + or ``float`` objects will be represented. + + .. change:: + :tags: bug, typing + :tickets: 9398 + + Fixed typing bug where :meth:`_sql.Select.from_statement` would not accept + :func:`_sql.text` or :class:`.TextualSelect` objects as a valid type. + Additionally repaired the :class:`.TextClause.columns` method to have a + return type, which was missing. + + .. change:: + :tags: bug, orm declarative + :tickets: 9332 + + Fixed issue where new :paramref:`_orm.mapped_column.use_existing_column` + feature would not work if the two same-named columns were mapped under + attribute names that were differently-named from an explicit name given to + the column itself. The attribute names can now be differently named when + using this parameter. + + .. change:: + :tags: bug, orm + :tickets: 9373 + + Added support for the :paramref:`_orm.Mapper.polymorphic_load` parameter to + be applied to each mapper in an inheritance hierarchy more than one level + deep, allowing columns to load for all classes in the hierarchy that + indicate ``"selectin"`` using a single statement, rather than ignoring + elements on those intermediary classes that nonetheless indicate they also + would participate in ``"selectin"`` loading and were not part of the + base-most SELECT statement. + + .. change:: + :tags: bug, orm + :tickets: 8853, 9335 + + Continued the fix for :ticket:`8853`, allowing the :class:`_orm.Mapped` + name to be fully qualified regardless of whether or not + ``from __annotations__ import future`` were present. This issue first fixed + in 2.0.0b3 confirmed that this case worked via the test suite, however the + test suite apparently was not testing the behavior for the name + :class:`_orm.Mapped` not being locally present at all; string resolution + has been updated to ensure the :class:`_orm.Mapped` symbol is locatable as + applies to how the ORM uses these functions. + + .. change:: + :tags: bug, typing + :tickets: 9340 + + Fixed typing issue where :func:`_orm.with_polymorphic` would not + record the class type correctly. + + .. change:: + :tags: bug, ext, regression + :tickets: 9380 + + Fixed regression caused by typing added to ``sqlalchemy.ext.mutable`` for + :ticket:`8667`, where the semantics of the ``.pop()`` method changed such + that the method was non-working. Pull request courtesy Nils Philippsen. + + .. change:: + :tags: bug, sql, regression + :tickets: 9390 + + Restore the :func:`.nullslast` and :func:`.nullsfirst` legacy functions + into the ``sqlalchemy`` import namespace. Previously, the newer + :func:`.nulls_last` and :func:`.nulls_first` functions were available, but + the legacy ones were inadvertently removed. + + .. change:: + :tags: bug, postgresql + :tickets: 9401 + + Fixed issue where the PostgreSQL :class:`_postgresql.ExcludeConstraint` + construct would not be copyable within operations such as + :meth:`_schema.Table.to_metadata` as well as within some Alembic scenarios, + if the constraint contained textual expression elements. + + .. change:: + :tags: bug, engine + :tickets: 9423 + + Fixed bug where :class:`_engine.Row` objects could not be reliably unpickled + across processes due to an accidental reliance on an unstable hash value. .. changelog:: :version: 2.0.4 diff --git a/doc/build/changelog/unreleased_20/5648.rst b/doc/build/changelog/unreleased_20/5648.rst deleted file mode 100644 index 84539ecd30..0000000000 --- a/doc/build/changelog/unreleased_20/5648.rst +++ /dev/null @@ -1,24 +0,0 @@ -.. change:: - :tags: bug, mysql, postgresql - :tickets: 5648 - - The support for pool ping listeners to receive exception events via the - :meth:`.DialectEvents.handle_error` event added in 2.0.0b1 for - :ticket:`5648` failed to take into account dialect-specific ping routines - such as that of MySQL and PostgreSQL. The dialect feature has been reworked - so that all dialects participate within event handling. Additionally, - a new boolean element :attr:`.ExceptionContext.is_pre_ping` is added - which identifies if this operation is occurring within the pre-ping - operation. - - For this release, third party dialects which implement a custom - :meth:`_engine.Dialect.do_ping` method can opt in to the newly improved - behavior by having their method no longer catch exceptions or check - exceptions for "is_disconnect", instead just propagating all exceptions - outwards. Checking the exception for "is_disconnect" is now done by an - enclosing method on the default dialect, which ensures that the event hook - is invoked for all exception scenarios before testing the exception as a - "disconnect" exception. If an existing ``do_ping()`` method continues to - catch exceptions and check "is_disconnect", it will continue to work as it - did previously, but ``handle_error`` hooks will not have access to the - exception if it isn't propagated outwards. diff --git a/doc/build/changelog/unreleased_20/8853.rst b/doc/build/changelog/unreleased_20/8853.rst deleted file mode 100644 index fd07869737..0000000000 --- a/doc/build/changelog/unreleased_20/8853.rst +++ /dev/null @@ -1,12 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 8853, 9335 - - Continued the fix for :ticket:`8853`, allowing the :class:`_orm.Mapped` - name to be fully qualified regardless of whether or not - ``from __annotations__ import future`` were present. This issue first fixed - in 2.0.0b3 confirmed that this case worked via the test suite, however the - test suite apparently was not testing the behavior for the name - :class:`_orm.Mapped` not being locally present at all; string resolution - has been updated to ensure the :class:`_orm.Mapped` symbol is locatable as - applies to how the ORM uses these functions. diff --git a/doc/build/changelog/unreleased_20/9332.rst b/doc/build/changelog/unreleased_20/9332.rst deleted file mode 100644 index ce3cc9161d..0000000000 --- a/doc/build/changelog/unreleased_20/9332.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, orm declarative - :tickets: 9332 - - Fixed issue where new :paramref:`_orm.mapped_column.use_existing_column` - feature would not work if the two same-named columns were mapped under - attribute names that were differently-named from an explicit name given to - the column itself. The attribute names can now be differently named when - using this parameter. diff --git a/doc/build/changelog/unreleased_20/9338.rst b/doc/build/changelog/unreleased_20/9338.rst deleted file mode 100644 index 426fa85ac5..0000000000 --- a/doc/build/changelog/unreleased_20/9338.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: typing, usecase - :tickets: 9338 - - Exported the type returned by - :meth:`_orm.scoped_session.query_property` using a new public type - :class:`.orm.QueryPropertyDescriptor`. diff --git a/doc/build/changelog/unreleased_20/9340.rst b/doc/build/changelog/unreleased_20/9340.rst deleted file mode 100644 index 28cef6f648..0000000000 --- a/doc/build/changelog/unreleased_20/9340.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. change:: - :tags: bug, typing - :tickets: 9340 - - Fixed typing issue where :func:`_orm.with_polymorphic` would not - record the class type correctly. diff --git a/doc/build/changelog/unreleased_20/9343.rst b/doc/build/changelog/unreleased_20/9343.rst deleted file mode 100644 index 8c82ec1fa9..0000000000 --- a/doc/build/changelog/unreleased_20/9343.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: engine, performance - :tickets: 9343 - - A small optimization to the Cython implementation of :class:`.Result` - using a cdef for a particular int value to avoid Python overhead. Pull - request courtesy Matus Valo. - diff --git a/doc/build/changelog/unreleased_20/9349.rst b/doc/build/changelog/unreleased_20/9349.rst deleted file mode 100644 index 7e708f3798..0000000000 --- a/doc/build/changelog/unreleased_20/9349.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: bug, postgresql - :tickets: 9349 - - Fixed issue in PostgreSQL :class:`_postgresql.ExcludeConstraint` where - literal values were being compiled as bound parameters and not direct - inline values as is required for DDL. diff --git a/doc/build/changelog/unreleased_20/9367.rst b/doc/build/changelog/unreleased_20/9367.rst deleted file mode 100644 index 883e5a215d..0000000000 --- a/doc/build/changelog/unreleased_20/9367.rst +++ /dev/null @@ -1,12 +0,0 @@ -.. change:: - :tags: bug, ext - :tickets: 9367 - - Fixed issue in automap where calling :meth:`_automap.AutomapBase.prepare` - from a specific mapped class, rather than from the - :class:`_automap.AutomapBase` directly, would not use the correct base - class when automap detected new tables, instead using the given class, - leading to mappers trying to configure inheritance. While one should - normally call :meth:`_automap.AutomapBase.prepare` from the base in any - case, it shouldn't misbehave that badly when called from a subclass. - diff --git a/doc/build/changelog/unreleased_20/9373.rst b/doc/build/changelog/unreleased_20/9373.rst deleted file mode 100644 index fb726accbe..0000000000 --- a/doc/build/changelog/unreleased_20/9373.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 9373 - - Added support for the :paramref:`_orm.Mapper.polymorphic_load` parameter to - be applied to each mapper in an inheritance hierarchy more than one level - deep, allowing columns to load for all classes in the hierarchy that - indicate ``"selectin"`` using a single statement, rather than ignoring - elements on those intermediary classes that nonetheless indicate they also - would participate in ``"selectin"`` loading and were not part of the - base-most SELECT statement. diff --git a/doc/build/changelog/unreleased_20/9376.rst b/doc/build/changelog/unreleased_20/9376.rst deleted file mode 100644 index 1bec16485d..0000000000 --- a/doc/build/changelog/unreleased_20/9376.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, typing - :tickets: 9376 - - Improved typing for the mapping passed to :meth:`.Insert.values` and - :meth:`.Update.values` to be more open-ended about collection type, by - indicating read-only ``Mapping`` instead of writeable ``Dict`` which would - error out on too limited of a key type. diff --git a/doc/build/changelog/unreleased_20/9379.rst b/doc/build/changelog/unreleased_20/9379.rst deleted file mode 100644 index 9784639df9..0000000000 --- a/doc/build/changelog/unreleased_20/9379.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, sqlite, regression - :tickets: 9379 - - Fixed regression for SQLite connections where use of the ``deterministic`` - parameter when establishing database functions would fail for older SQLite - versions, those prior to version 3.8.3. The version checking logic has been - improved to accommodate for this case. diff --git a/doc/build/changelog/unreleased_20/9380.rst b/doc/build/changelog/unreleased_20/9380.rst deleted file mode 100644 index 6ac454e27c..0000000000 --- a/doc/build/changelog/unreleased_20/9380.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: bug, ext, regression - :tickets: 9380 - - Fixed regression caused by typing added to ``sqlalchemy.ext.mutable`` for - :ticket:`8667`, where the semantics of the ``.pop()`` method changed such - that the method was non-working. Pull request courtesy Nils Philippsen. diff --git a/doc/build/changelog/unreleased_20/9390.rst b/doc/build/changelog/unreleased_20/9390.rst deleted file mode 100644 index 763fbba307..0000000000 --- a/doc/build/changelog/unreleased_20/9390.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, sql, regression - :tickets: 9390 - - Restore the :func:`.nullslast` and :func:`.nullsfirst` legacy functions - into the ``sqlalchemy`` import namespace. Previously, the newer - :func:`.nulls_last` and :func:`.nulls_first` functions were available, but - the legacy ones were inadvertently removed. diff --git a/doc/build/changelog/unreleased_20/9391.rst b/doc/build/changelog/unreleased_20/9391.rst deleted file mode 100644 index 33c42f2654..0000000000 --- a/doc/build/changelog/unreleased_20/9391.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, typing - :tickets: 9391 - - Added missing init overload to the :class:`_types.Numeric` type object so - that pep-484 type checkers may properly resolve the complete type, deriving - from the :paramref:`_types.Numeric.asdecimal` parameter whether ``Decimal`` - or ``float`` objects will be represented. diff --git a/doc/build/changelog/unreleased_20/9398.rst b/doc/build/changelog/unreleased_20/9398.rst deleted file mode 100644 index 731695f244..0000000000 --- a/doc/build/changelog/unreleased_20/9398.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, typing - :tickets: 9398 - - Fixed typing bug where :meth:`_sql.Select.from_statement` would not accept - :func:`_sql.text` or :class:`.TextualSelect` objects as a valid type. - Additionally repaired the :class:`.TextClause.columns` method to have a - return type, which was missing. diff --git a/doc/build/changelog/unreleased_20/9401.rst b/doc/build/changelog/unreleased_20/9401.rst deleted file mode 100644 index 50232959b0..0000000000 --- a/doc/build/changelog/unreleased_20/9401.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, postgresql - :tickets: 9401 - - Fixed issue where the PostgreSQL :class:`_postgresql.ExcludeConstraint` - construct would not be copyable within operations such as - :meth:`_schema.Table.to_metadata` as well as within some Alembic scenarios, - if the constraint contained textual expression elements. diff --git a/doc/build/changelog/unreleased_20/9414.rst b/doc/build/changelog/unreleased_20/9414.rst deleted file mode 100644 index ab11eed003..0000000000 --- a/doc/build/changelog/unreleased_20/9414.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. change:: - :tags: bug, mssql - :tickets: 9414 - - Fixed issue in the new :class:`.Uuid` datatype which prevented it from - working with the pymssql driver. As pymssql seems to be maintained again, - restored testing support for pymssql. - -.. change:: - :tags: bug, mssql - - Tweaked the pymssql dialect to take better advantage of - RETURNING for INSERT statements in order to retrieve last inserted primary - key values, in the same way as occurs for the mssql+pyodbc dialect right - now. - -.. change:: - :tags: bug, orm - - Identified that the ``sqlite`` and ``mssql+pyodbc`` dialects are now - compatible with the SQLAlchemy ORM's "versioned rows" feature, since - SQLAlchemy now computes rowcount for a RETURNING statement in this specific - case by counting the rows returned, rather than relying upon - ``cursor.rowcount``. In particular, the ORM versioned rows use case - (documented at :ref:`mapper_version_counter`) should now be fully - supported with the SQL Server pyodbc dialect. - diff --git a/doc/build/changelog/unreleased_20/9418.rst b/doc/build/changelog/unreleased_20/9418.rst deleted file mode 100644 index 339e68d42e..0000000000 --- a/doc/build/changelog/unreleased_20/9418.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 9418 - - Added constructor arguments to the built-in mapping collection types - including :class:`.KeyFuncDict`, :func:`_orm.attribute_keyed_dict`, - :func:`_orm.column_keyed_dict` so that these dictionary types may be - constructed in place given the data up front; this provides further - compatibility with tools such as Python dataclasses ``.asdict()`` which - relies upon invoking these classes directly as ordinary dictionary classes. diff --git a/doc/build/changelog/unreleased_20/9423.rst b/doc/build/changelog/unreleased_20/9423.rst deleted file mode 100644 index 84dc5cb3d1..0000000000 --- a/doc/build/changelog/unreleased_20/9423.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. change:: - :tags: bug, engine - :tickets: 9423 - - Fixed bug where :class:`_engine.Row` objects could not be reliably unpickled - across processes due to an accidental reliance on an unstable hash value. diff --git a/doc/build/changelog/unreleased_20/9424.rst b/doc/build/changelog/unreleased_20/9424.rst deleted file mode 100644 index 8b32732e33..0000000000 --- a/doc/build/changelog/unreleased_20/9424.rst +++ /dev/null @@ -1,28 +0,0 @@ -.. change:: - :tags: bug, orm, regression - :tickets: 9424 - - Fixed multiple regressions due to :ticket:`8372`, involving - :func:`_orm.attribute_mapped_collection` (now called - :func:`_orm.attribute_keyed_dict`). - - First, the collection was no longer usable with "key" attributes that were - not themselves ordinary mapped attributes; attributes linked to descriptors - and/or association proxy attributes have been fixed. - - Second, if an event or other operation needed access to the "key" in order - to populate the dictionary from an mapped attribute that was not - loaded, this also would raise an error inappropriately, rather than - trying to load the attribute as was the behavior in 1.4. This is also - fixed. - - For both cases, the behavior of :ticket:`8372` has been expanded. - :ticket:`8372` introduced an error that raises when the derived key that - would be used as a mapped dictionary key is effectively unassigned. In this - change, a warning only is emitted if the effective value of the ".key" - attribute is ``None``, where it cannot be unambiguously determined if this - ``None`` was intentional or not. ``None`` will be not supported as mapped - collection dictionary keys going forward (as it typically refers to NULL - which means "unknown"). Setting - :paramref:`_orm.attribute_keyed_dict.ignore_unpopulated_attribute` will now - cause such ``None`` keys to be ignored as well. diff --git a/doc/build/changelog/unreleased_20/metadata_schema.rst b/doc/build/changelog/unreleased_20/metadata_schema.rst deleted file mode 100644 index fdb8409650..0000000000 --- a/doc/build/changelog/unreleased_20/metadata_schema.rst +++ /dev/null @@ -1,5 +0,0 @@ -.. change:: - :tags: schema - - Validate that when provided the :paramref:`_schema.MetaData.schema` - argument of :class:`_schema.MetaData` is a string. diff --git a/doc/build/changelog/unreleased_20/type_scalars.rst b/doc/build/changelog/unreleased_20/type_scalars.rst deleted file mode 100644 index d983e15805..0000000000 --- a/doc/build/changelog/unreleased_20/type_scalars.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. change:: - :tags: bug, typing - - Fixed bug where the :meth:`_engine.Connection.scalars` method was not typed - as allowing a multiple-parameters list, which is now supported using - insertmanyvalues operations. diff --git a/doc/build/conf.py b/doc/build/conf.py index 520d0029cd..679169c223 100644 --- a/doc/build/conf.py +++ b/doc/build/conf.py @@ -242,9 +242,9 @@ copyright = "2007-2023, the SQLAlchemy authors and contributors" # noqa # The short X.Y version. version = "2.0" # The full version, including alpha/beta/rc tags. -release = "2.0.4" +release = "2.0.5" -release_date = "February 17, 2023" +release_date = "March 5, 2023" site_base = os.environ.get("RTD_SITE_BASE", "https://www.sqlalchemy.org") site_adapter_template = "docs_adapter.mako"