From: Mike Bayer Date: Tue, 15 Oct 2024 19:42:10 +0000 (-0400) Subject: cherry-pick changelog from 2.0.36 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4e1cb4b2de6194b6d76e5d2898be93860e12d142;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git cherry-pick changelog from 2.0.36 --- diff --git a/doc/build/changelog/changelog_20.rst b/doc/build/changelog/changelog_20.rst index 0270cee999..980cd4d61d 100644 --- a/doc/build/changelog/changelog_20.rst +++ b/doc/build/changelog/changelog_20.rst @@ -10,7 +10,129 @@ .. changelog:: :version: 2.0.36 - :include_notes_from: unreleased_20 + :released: October 15, 2024 + + .. change:: + :tags: bug, schema + :tickets: 11317 + + Fixed bug where SQL functions passed to + :paramref:`_schema.Column.server_default` would not be rendered with the + particular form of parenthesization now required by newer versions of MySQL + and MariaDB. Pull request courtesy of huuya. + + .. change:: + :tags: bug, orm + :tickets: 11912 + + Fixed bug in ORM bulk update/delete where using RETURNING with bulk + update/delete in combination with ``populate_existing`` would fail to + accommodate the ``populate_existing`` option. + + .. change:: + :tags: bug, orm + :tickets: 11917 + + Continuing from :ticket:`11912`, columns marked with + :paramref:`.mapped_column.onupdate`, + :paramref:`.mapped_column.server_onupdate`, or :class:`.Computed` are now + refreshed in ORM instances when running an ORM enabled UPDATE with WHERE + criteria, even if the statement does not use RETURNING or + ``populate_existing``. + + .. change:: + :tags: usecase, orm + :tickets: 11923 + + Added new parameter :paramref:`_orm.mapped_column.hash` to ORM constructs + such as :meth:`_orm.mapped_column`, :meth:`_orm.relationship`, etc., + which is interpreted for ORM Native Dataclasses in the same way as other + dataclass-specific field parameters. + + .. change:: + :tags: bug, postgresql, reflection + :tickets: 11961 + + Fixed bug in reflection of table comments where unrelated text would be + returned if an entry in the ``pg_description`` table happened to share the + same oid (objoid) as the table being reflected. + + .. change:: + :tags: bug, orm + :tickets: 11965 + + Fixed regression caused by fixes to joined eager loading in :ticket:`11449` + released in 2.0.31, where a particular joinedload case could not be + asserted correctly. We now have an example of that case so the assertion + has been repaired to allow for it. + + + .. change:: + :tags: orm, bug + :tickets: 11973 + + Improved the error message emitted when trying to map as dataclass a class + while also manually providing the ``__table__`` attribute. + This usage is currently not supported. + + .. change:: + :tags: mysql, performance + :tickets: 11975 + + Improved a query used for the MySQL 8 backend when reflecting foreign keys + to be better optimized. Previously, for a database that had millions of + columns across all tables, the query could be prohibitively slow; the query + has been reworked to take better advantage of existing indexes. + + .. change:: + :tags: usecase, sql + :tickets: 11978 + + Datatypes that are binary based such as :class:`.VARBINARY` will resolve to + :class:`.LargeBinary` when the :meth:`.TypeEngine.as_generic()` method is + called. + + .. change:: + :tags: postgresql, bug + :tickets: 11994 + + The :class:`.postgresql.JSON` and :class:`.postgresql.JSONB` datatypes will + now render a "bind cast" in all cases for all PostgreSQL backends, + including psycopg2, whereas previously it was only enabled for some + backends. This allows greater accuracy in allowing the database server to + recognize when a string value is to be interpreted as JSON. + + .. change:: + :tags: bug, orm + :tickets: 11995 + + Refined the check which the ORM lazy loader uses to detect "this would be + loading by primary key and the primary key is NULL, skip loading" to take + into account the current setting for the + :paramref:`.orm.Mapper.allow_partial_pks` parameter. If this parameter is + ``False``, then a composite PK value that has partial NULL elements should + also be skipped. This can apply to some composite overlapping foreign key + configurations. + + + .. change:: + :tags: bug, orm + :tickets: 11997 + + Fixed bug in ORM "update with WHERE clause" feature where an explicit + ``.returning()`` would interfere with the "fetch" synchronize strategy due + to an assumption that the ORM mapped class featured the primary key columns + in a specific position within the RETURNING. This has been fixed to use + appropriate ORM column targeting. + + .. change:: + :tags: bug, sql, regression + :tickets: 12002 + + Fixed regression from 1.4 where some datatypes such as those derived from + :class:`.TypeDecorator` could not be pickled when they were part of a + larger SQL expression composition due to internal supporting structures + themselves not being pickleable. .. changelog:: :version: 2.0.35 diff --git a/doc/build/changelog/unreleased_20/11317.rst b/doc/build/changelog/unreleased_20/11317.rst deleted file mode 100644 index 445012ea01..0000000000 --- a/doc/build/changelog/unreleased_20/11317.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, schema - :tickets: 11317 - - Fixed bug where SQL functions passed to - :paramref:`_schema.Column.server_default` would not be rendered with the - particular form of parenthesization now required by newer versions of MySQL - and MariaDB. Pull request courtesy of huuya. diff --git a/doc/build/changelog/unreleased_20/11912.rst b/doc/build/changelog/unreleased_20/11912.rst deleted file mode 100644 index a6bc1ae55d..0000000000 --- a/doc/build/changelog/unreleased_20/11912.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 11912 - - Fixed bug in ORM bulk update/delete where using RETURNING with bulk - update/delete in combination with ``populate_existing`` would fail to - accommodate the ``populate_existing`` option. diff --git a/doc/build/changelog/unreleased_20/11917.rst b/doc/build/changelog/unreleased_20/11917.rst deleted file mode 100644 index 91702f011d..0000000000 --- a/doc/build/changelog/unreleased_20/11917.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 11917 - - Continuing from :ticket:`11912`, columns marked with - :paramref:`.mapped_column.onupdate`, - :paramref:`.mapped_column.server_onupdate`, or :class:`.Computed` are now - refreshed in ORM instances when running an ORM enabled UPDATE with WHERE - criteria, even if the statement does not use RETURNING or - ``populate_existing``. diff --git a/doc/build/changelog/unreleased_20/11923.rst b/doc/build/changelog/unreleased_20/11923.rst deleted file mode 100644 index fdd2d6d3c1..0000000000 --- a/doc/build/changelog/unreleased_20/11923.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: usecase, orm - :tickets: 11923 - - Added new parameter :paramref:`_orm.mapped_column.hash` to ORM constructs - such as :meth:`_orm.mapped_column`, :meth:`_orm.relationship`, etc., - which is interpreted for ORM Native Dataclasses in the same way as other - dataclass-specific field parameters. diff --git a/doc/build/changelog/unreleased_20/11961.rst b/doc/build/changelog/unreleased_20/11961.rst deleted file mode 100644 index 8aa862d04f..0000000000 --- a/doc/build/changelog/unreleased_20/11961.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: bug, postgresql, reflection - :tickets: 11961 - - Fixed bug in reflection of table comments where unrelated text would be - returned if an entry in the ``pg_description`` table happened to share the - same oid (objoid) as the table being reflected. diff --git a/doc/build/changelog/unreleased_20/11965.rst b/doc/build/changelog/unreleased_20/11965.rst deleted file mode 100644 index f8e4ce0ad1..0000000000 --- a/doc/build/changelog/unreleased_20/11965.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 11965 - - Fixed regression caused by fixes to joined eager loading in :ticket:`11449` - released in 2.0.31, where a particular joinedload case could not be - asserted correctly. We now have an example of that case so the assertion - has been repaired to allow for it. - diff --git a/doc/build/changelog/unreleased_20/11973.rst b/doc/build/changelog/unreleased_20/11973.rst deleted file mode 100644 index bad0f22088..0000000000 --- a/doc/build/changelog/unreleased_20/11973.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: orm, bug - :tickets: 11973 - - Improved the error message emitted when trying to map as dataclass a class - while also manually providing the ``__table__`` attribute. - This usage is currently not supported. diff --git a/doc/build/changelog/unreleased_20/11975.rst b/doc/build/changelog/unreleased_20/11975.rst deleted file mode 100644 index 69e4bdc6b8..0000000000 --- a/doc/build/changelog/unreleased_20/11975.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: mysql, performance - :tickets: 11975 - - Improved a query used for the MySQL 8 backend when reflecting foreign keys - to be better optimized. Previously, for a database that had millions of - columns across all tables, the query could be prohibitively slow; the query - has been reworked to take better advantage of existing indexes. diff --git a/doc/build/changelog/unreleased_20/11978.rst b/doc/build/changelog/unreleased_20/11978.rst deleted file mode 100644 index a8a9cdaf57..0000000000 --- a/doc/build/changelog/unreleased_20/11978.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: usecase, sql - :tickets: 11978 - - Datatypes that are binary based such as :class:`.VARBINARY` will resolve to - :class:`.LargeBinary` when the :meth:`.TypeEngine.as_generic()` method is - called. diff --git a/doc/build/changelog/unreleased_20/11994.rst b/doc/build/changelog/unreleased_20/11994.rst deleted file mode 100644 index ca599148c5..0000000000 --- a/doc/build/changelog/unreleased_20/11994.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: postgresql, bug - :tickets: 11994 - - The :class:`.postgresql.JSON` and :class:`.postgresql.JSONB` datatypes will - now render a "bind cast" in all cases for all PostgreSQL backends, - including psycopg2, whereas previously it was only enabled for some - backends. This allows greater accuracy in allowing the database server to - recognize when a string value is to be interpreted as JSON. diff --git a/doc/build/changelog/unreleased_20/11995.rst b/doc/build/changelog/unreleased_20/11995.rst deleted file mode 100644 index 4387b9cf7e..0000000000 --- a/doc/build/changelog/unreleased_20/11995.rst +++ /dev/null @@ -1,12 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 11995 - - Refined the check which the ORM lazy loader uses to detect "this would be - loading by primary key and the primary key is NULL, skip loading" to take - into account the current setting for the - :paramref:`.orm.Mapper.allow_partial_pks` parameter. If this parameter is - ``False``, then a composite PK value that has partial NULL elements should - also be skipped. This can apply to some composite overlapping foreign key - configurations. - diff --git a/doc/build/changelog/unreleased_20/11997.rst b/doc/build/changelog/unreleased_20/11997.rst deleted file mode 100644 index b2390977e1..0000000000 --- a/doc/build/changelog/unreleased_20/11997.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, orm - :tickets: 11997 - - Fixed bug in ORM "update with WHERE clause" feature where an explicit - ``.returning()`` would interfere with the "fetch" synchronize strategy due - to an assumption that the ORM mapped class featured the primary key columns - in a specific position within the RETURNING. This has been fixed to use - appropriate ORM column targeting. diff --git a/doc/build/changelog/unreleased_20/12002.rst b/doc/build/changelog/unreleased_20/12002.rst deleted file mode 100644 index 49ac701759..0000000000 --- a/doc/build/changelog/unreleased_20/12002.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, sql, regression - :tickets: 12002 - - Fixed regression from 1.4 where some datatypes such as those derived from - :class:`.TypeDecorator` could not be pickled when they were part of a - larger SQL expression composition due to internal supporting structures - themselves not being pickleable.