From: Mike Bayer Date: Thu, 27 Apr 2023 01:37:20 +0000 (-0400) Subject: changelog updates X-Git-Tag: rel_2_0_11~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=deb810c56530298817e4081de59273c7f76a8b45;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git changelog updates Additionally add mssql DOUBLE_PRECISION to mssql.__all__ Change-Id: I93f2db85feeff116278c5c6d0678e20d039a3e1f --- diff --git a/doc/build/changelog/changelog_20.rst b/doc/build/changelog/changelog_20.rst index f6ec81c15c..f97af2cb50 100644 --- a/doc/build/changelog/changelog_20.rst +++ b/doc/build/changelog/changelog_20.rst @@ -3532,7 +3532,8 @@ :tags: feature, sql :tickets: 5465 - Added :class:`.Double`, :class:`.DOUBLE`, :class:`.DOUBLE_PRECISION` + Added :class:`.Double`, :class:`.DOUBLE`, + :class:`_sqltypes.DOUBLE_PRECISION` datatypes to the base ``sqlalchemy.`` module namespace, for explicit use of double/double precision as well as generic "double" datatypes. Use :class:`.Double` for generic support that will resolve to DOUBLE/DOUBLE diff --git a/doc/build/changelog/unreleased_20/9583.rst b/doc/build/changelog/unreleased_20/9583.rst index 81555f4125..f087969b40 100644 --- a/doc/build/changelog/unreleased_20/9583.rst +++ b/doc/build/changelog/unreleased_20/9583.rst @@ -5,11 +5,16 @@ Fixed 2.0 regression where use of :func:`_sql.bindparam()` inside of :meth:`_dml.Insert.values` would fail to be interpreted correctly when executing the :class:`_dml.Insert` statement using the ORM - :class:`_orm.Session`, due to the new ORM-enabled insert feature not + :class:`_orm.Session`, due to the new + :ref:`ORM-enabled insert feature ` not implementing this use case. - In addition, the bulk INSERT and UPDATE features now add these - capabilities: +.. change:: + :tags: usecase, orm + :tickets: 9583, 9595 + + The :ref:`ORM bulk INSERT and UPDATE ` + features now add these capabilities: * The requirement that extra parameters aren't passed when using ORM INSERT using the "orm" dml_strategy setting is lifted. diff --git a/doc/build/changelog/unreleased_20/9644.rst b/doc/build/changelog/unreleased_20/9644.rst index f40c779174..0be4146f26 100644 --- a/doc/build/changelog/unreleased_20/9644.rst +++ b/doc/build/changelog/unreleased_20/9644.rst @@ -4,5 +4,4 @@ Improved typing of :class:`_engine.RowMapping` to indicate that it support also :class:`_schema.Column` as index objects, not only - string names. - Pull request curtesy or Andy Freeland. + string names. Pull request courtesy Andy Freeland. diff --git a/doc/build/changelog/unreleased_20/9678.rst b/doc/build/changelog/unreleased_20/9678.rst index 6ea1525b34..d90140292c 100644 --- a/doc/build/changelog/unreleased_20/9678.rst +++ b/doc/build/changelog/unreleased_20/9678.rst @@ -1,10 +1,26 @@ .. change:: :tags: engine, performance - :tickets: 9678 - - Improved :class:`_engine.Row` implementation to optimize - ``__getattr__`` performance. - The serialization of a :class:`_engine.Row` to pickle has changed with - this change. Pickle saved by older SQLAlchemy versions can still be loaded, - but new pickle saved by this version cannot be loaded by older ones. - Pull request curtesy of J. Nick Koston. + :tickets: 9678, 9680 + + A series of performance enhancements to :class:`_engine.Row`: + + * ``__getattr__`` performance of the row's "named tuple" interface has + been improved; within this change, the :class:`_engine.Row` + implementation has been streamlined, removing constructs and logic + that were specific to the 1.4 and prior series of SQLAlchemy. + As part of this change, the serialization format of :class:`_engine.Row` + has been modified slightly, however rows which were pickled with previous + SQLAlchemy 2.0 releases will be recognized within the new format. + Pull request courtesy J. Nick Koston. + + * Improved row processing performance for "binary" datatypes by making the + "bytes" handler conditional on a per driver basis. As a result, the + "bytes" result handler has been removed for nearly all drivers other than + psycopg2, all of which in modern forms support returning Python "bytes" + directly. Pull request courtesy J. Nick Koston. + + * Additional refactorings inside of :class:`_engine.Row` to improve + performance by Federico Caselli. + + + diff --git a/doc/build/changelog/unreleased_20/9680.rst b/doc/build/changelog/unreleased_20/9680.rst deleted file mode 100644 index e64d649db3..0000000000 --- a/doc/build/changelog/unreleased_20/9680.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: performance, sql - :tickets: 9680 - - Improved row processing performance for "binary" datatypes by making the - "bytes" handler conditional on a per driver basis. As a result, the - "bytes" result handler has been disabled for nearly all drivers other than - psycopg2, all of which in modern forms support returning Python "bytes" - directly. Pull request courtesy J. Nick Koston. diff --git a/doc/build/changelog/unreleased_20/9682.rst b/doc/build/changelog/unreleased_20/9682.rst index bfd4b06640..83dd1ea702 100644 --- a/doc/build/changelog/unreleased_20/9682.rst +++ b/doc/build/changelog/unreleased_20/9682.rst @@ -1,6 +1,6 @@ .. change:: - :tags: bug, engine + :tags: bug, engine, regression :tickets: 9682 - Fixed a bug that prevented use of :attr:`_engine.URL.normalized_query` in - SQLAlchemy v2. + Fixed regression which prevented the :attr:`_engine.URL.normalized_query` + attribute of :class:`_engine.URL` from functioning. diff --git a/doc/build/changelog/unreleased_20/9701.rst b/doc/build/changelog/unreleased_20/9701.rst index 6c363404d1..8ab9790779 100644 --- a/doc/build/changelog/unreleased_20/9701.rst +++ b/doc/build/changelog/unreleased_20/9701.rst @@ -2,17 +2,20 @@ :tags: bug, postgresql, regression :tickets: 9701 - Fixed regression caused by the fix for :ticket:`9618` where floating point - values would lose precision being inserted in bulk, using either the - psycopg2 or psycopg drivers. + Fixed critical regression caused by :ticket:`9618`, which modified the + architecture of the :term:`insertmanyvalues` feature for 2.0.10, which + caused floating point values to lose all decimal places when being inserted + using the insertmanyvalues feature with either the psycopg2 or psycopg + drivers. .. change:: :tags: bug, mssql - Implemented the :class:`_sqltypes.Double` type for SQL Server, having it - resolve to ``DOUBLE PRECISION``, or :class:`_mssql.DOUBLE_PRECISION`, - at DDL rendering time. + Implemented the :class:`_sqltypes.Double` type for SQL Server, where it + will render ``DOUBLE PRECISION`` at DDL time. This is implemented using + a new MSSQL datatype :class:`_mssql.DOUBLE_PRECISION` which also may + be used directly. .. change:: diff --git a/doc/build/changelog/unreleased_20/c_slice.rst b/doc/build/changelog/unreleased_20/c_slice.rst index c3e2e4bcc8..94f3e20e62 100644 --- a/doc/build/changelog/unreleased_20/c_slice.rst +++ b/doc/build/changelog/unreleased_20/c_slice.rst @@ -6,4 +6,5 @@ ``table.c[0:5]``, ``subquery.c[:-1]`` etc. Slice access returns a sub :class:`.ColumnCollection` in the same way as passing a tuple of keys. This is a natural continuation of the key-tuple access added for :ticket:`8285`, - which it appears to be an oversight that this usage was omitted. + where it appears to be an oversight that the slice access use case was + omitted. diff --git a/lib/sqlalchemy/dialects/mssql/__init__.py b/lib/sqlalchemy/dialects/mssql/__init__.py index e6ad5e120a..3bbfad344c 100644 --- a/lib/sqlalchemy/dialects/mssql/__init__.py +++ b/lib/sqlalchemy/dialects/mssql/__init__.py @@ -68,6 +68,7 @@ __all__ = ( "DATETIME2", "DATETIMEOFFSET", "DATE", + "DOUBLE_PRECISION", "TIME", "SMALLDATETIME", "BINARY",