From: Mike Bayer Date: Thu, 25 Jun 2020 19:00:49 +0000 (-0400) Subject: cherry-pick changelog from 1.3.18 X-Git-Tag: rel_1_4_0b1~258 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c5856abb35e73c9a46b87f16029e9810c7bda55a;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git cherry-pick changelog from 1.3.18 --- diff --git a/doc/build/changelog/changelog_13.rst b/doc/build/changelog/changelog_13.rst index 0b58c24c3d..d3fab10dc0 100644 --- a/doc/build/changelog/changelog_13.rst +++ b/doc/build/changelog/changelog_13.rst @@ -12,7 +12,188 @@ .. changelog:: :version: 1.3.18 - :include_notes_from: unreleased_13 + :released: June 25, 2020 + + .. change:: + :tags: bug, sqlite + :tickets: 5395 + + Added "exists" to the list of reserved words for SQLite so that this word + will be quoted when used as a label or column name. Pull request courtesy + Thodoris Sotiropoulos. + + .. change:: + :tags: bug, mssql + :tickets: 5366, 5364 + + Refined the logic used by the SQL Server dialect to interpret multi-part + schema names that contain many dots, to not actually lose any dots if the + name does not have bracking or quoting used, and additionally to support a + "dbname" token that has many parts including that it may have multiple, + independently-bracketed sections. + + + + .. change:: + :tags: bug, mssql, pyodbc + :tickets: 5346 + + Fixed an issue in the pyodbc connector such that a warning about pyodbc + "drivername" would be emitted when using a totally empty URL. Empty URLs + are normal when producing a non-connected dialect object or when using the + "creator" argument to create_engine(). The warning now only emits if the + driver name is missing but other parameters are still present. + + .. change:: + :tags: bug, mssql + :tickets: 5373 + + Fixed issue with assembling the ODBC connection string for the pyodbc + DBAPI. Tokens containing semicolons and/or braces "{}" were not being + correctly escaped, causing the ODBC driver to misinterpret the + connection string attributes. + + .. change:: + :tags: usecase, orm + :tickets: 5326 + + Improve error message when using :meth:`_query.Query.filter_by` in + a query where the first entity is not a mapped class. + + .. change:: + :tags: sql, schema + :tickets: 5324 + + Introduce :class:`.IdentityOptions` to store common parameters for + sequences and identity columns. + + .. change:: + :tags: usecase, sql + :tickets: 5309 + + Added a ".schema" parameter to the :func:`_expression.table` construct, + allowing ad-hoc table expressions to also include a schema name. + Pull request courtesy Dylan Modesitt. + + .. change:: + :tags: bug, mssql + :tickets: 5339 + + Fixed issue where ``datetime.time`` parameters were being converted to + ``datetime.datetime``, making them incompatible with comparisons like + ``>=`` against an actual :class:`_mssql.TIME` column. + + .. change:: + :tags: bug, mssql + :tickets: 5359 + + Fixed an issue where the ``is_disconnect`` function in the SQL Server + pyodbc dialect was incorrectly reporting the disconnect state when the + exception messsage had a substring that matched a SQL Server ODBC error + code. + + .. change:: + :tags: bug, engine + :tickets: 5326 + + Further refinements to the fixes to the "reset" agent fixed in + :ticket:`5326`, which now emits a warning when it is not being correctly + invoked and corrects for the behavior. Additional scenarios have been + identified and fixed where this warning was being emitted. + + + .. change:: + :tags: usecase, sqlite + :tickets: 5297 + + SQLite 3.31 added support for computed column. This change + enables their support in SQLAlchemy when targeting SQLite. + + .. change:: + :tags: bug, schema + :tickets: 5276 + + Fixed issue where ``dialect_options`` were omitted when a + database object (e.g., :class:`.Table`) was copied using + :func:`.tometadata`. + + .. change:: + :tags: bug, sql + :tickets: 5344 + + Correctly apply self_group in type_coerce element. + + The type coerce element did not correctly apply grouping rules when using + in an expression + + .. change:: + :tags: bug, oracle, reflection + :tickets: 5421 + + Fixed bug in Oracle dialect where indexes that contain the full set of + primary key columns would be mistaken as the primary key index itself, + which is omitted, even if there were multiples. The check has been refined + to compare the name of the primary key constraint against the index name + itself, rather than trying to guess based on the columns present in the + index. + + .. change:: + :tags: change, sql, sybase + :tickets: 5294 + + Added ``.offset`` support to sybase dialect. + Pull request courtesy Alan D. Snow. + + .. change:: + :tags: bug, engine + :tickets: 5341 + + Fixed issue in :class:`.URL` object where stringifying the object + would not URL encode special characters, preventing the URL from being + re-consumable as a real URL. Pull request courtesy Miguel Grinberg. + + .. change:: + :tags: usecase, mysql + :tickets: 4860 + + Implemented row-level locking support for mysql. Pull request courtesy + Quentin Somerville. + + .. change:: + :tags: change, mssql + :tickets: 5321 + + Moved the ``supports_sane_rowcount_returning = False`` requirement from + the ``PyODBCConnector`` level to the ``MSDialect_pyodbc`` since pyodbc + does work properly in some circumstances. + + .. change:: + :tags: change, examples + + Added new option ``--raw`` to the examples.performance suite + which will dump the raw profile test for consumption by any + number of profiling visualizer tools. Removed the "runsnake" + option as runsnake is very hard to build at this point; + + .. change:: + :tags: bug, sql + :tickets: 5353 + + Added :meth:`.Select.with_hint` output to the generic SQL string that is + produced when calling ``str()`` on a statement. Previously, this clause + would be omitted under the assumption that it was dialect specific. + The hint text is presented within brackets to indicate the rendering + of such hints varies among backends. + + + .. change:: + :tags: usecase, orm + :tickets: 5198 + + Added a new parameter :paramref:`_orm.query_expression.default_expr` to the + :func:`_orm.query_expression` construct, which will be appled to queries + automatically if the :func:`_orm.with_expression` option is not used. Pull + request courtesy Haoyu Sun. .. changelog:: :version: 1.3.17 diff --git a/doc/build/changelog/unreleased_13/4860.rst b/doc/build/changelog/unreleased_13/4860.rst deleted file mode 100644 index b526ce31e4..0000000000 --- a/doc/build/changelog/unreleased_13/4860.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. change:: - :tags: usecase, mysql - :tickets: 4860 - - Implemented row-level locking support for mysql. Pull request courtesy - Quentin Somerville. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_13/5198.rst b/doc/build/changelog/unreleased_13/5198.rst deleted file mode 100644 index b19da1e08e..0000000000 --- a/doc/build/changelog/unreleased_13/5198.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: usecase, orm - :tickets: 5198 - - Added a new parameter :paramref:`_orm.query_expression.default_expr` to the - :func:`_orm.query_expression` construct, which will be appled to queries - automatically if the :func:`_orm.with_expression` option is not used. Pull - request courtesy Haoyu Sun. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_13/5260.rst b/doc/build/changelog/unreleased_13/5260.rst deleted file mode 100644 index 18e1ddeb01..0000000000 --- a/doc/build/changelog/unreleased_13/5260.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. change:: - :tags: usecase, orm - :tickets: 5326 - - Improve error message when using :meth:`_query.Query.filter_by` in - a query where the first entity is not a mapped class. diff --git a/doc/build/changelog/unreleased_13/5276.rst b/doc/build/changelog/unreleased_13/5276.rst deleted file mode 100644 index d7c05d7479..0000000000 --- a/doc/build/changelog/unreleased_13/5276.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: bug, schema - :tickets: 5276 - - Fixed issue where ``dialect_options`` were omitted when a - database object (e.g., :class:`.Table`) was copied using - :func:`.tometadata`. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_13/5294.rst b/doc/build/changelog/unreleased_13/5294.rst deleted file mode 100644 index b564dc10d1..0000000000 --- a/doc/build/changelog/unreleased_13/5294.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. change:: - :tags: change, sql, sybase - :tickets: 5294 - - Added ``.offset`` support to sybase dialect. - Pull request courtesy Alan D. Snow. diff --git a/doc/build/changelog/unreleased_13/5297.rst b/doc/build/changelog/unreleased_13/5297.rst deleted file mode 100644 index 1fb1508c5f..0000000000 --- a/doc/build/changelog/unreleased_13/5297.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. change:: - :tags: usecase, sqlite - :tickets: 5297 - - SQLite 3.31 added support for computed column. This change - enables their support in SQLAlchemy when targeting SQLite. diff --git a/doc/build/changelog/unreleased_13/5309.rst b/doc/build/changelog/unreleased_13/5309.rst deleted file mode 100644 index 89ab14b068..0000000000 --- a/doc/build/changelog/unreleased_13/5309.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: usecase, sql - :tickets: 5309 - - Added a ".schema" parameter to the :func:`_expression.table` construct, - allowing ad-hoc table expressions to also include a schema name. - Pull request courtesy Dylan Modesitt. diff --git a/doc/build/changelog/unreleased_13/5321.rst b/doc/build/changelog/unreleased_13/5321.rst deleted file mode 100644 index 485afad85e..0000000000 --- a/doc/build/changelog/unreleased_13/5321.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: change, mssql - :tickets: 5321 - - Moved the ``supports_sane_rowcount_returning = False`` requirement from - the ``PyODBCConnector`` level to the ``MSDialect_pyodbc`` since pyodbc - does work properly in some circumstances. diff --git a/doc/build/changelog/unreleased_13/5324_identity_options.rst b/doc/build/changelog/unreleased_13/5324_identity_options.rst deleted file mode 100644 index 44d78e06a4..0000000000 --- a/doc/build/changelog/unreleased_13/5324_identity_options.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. change:: - :tags: sql, schema - :tickets: 5324 - - Introduce :class:`.IdentityOptions` to store common parameters for - sequences and identity columns. diff --git a/doc/build/changelog/unreleased_13/5326.rst b/doc/build/changelog/unreleased_13/5326.rst deleted file mode 100644 index 801ff4a423..0000000000 --- a/doc/build/changelog/unreleased_13/5326.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, engine - :tickets: 5326 - - Further refinements to the fixes to the "reset" agent fixed in - :ticket:`5326`, which now emits a warning when it is not being correctly - invoked and corrects for the behavior. Additional scenarios have been - identified and fixed where this warning was being emitted. - diff --git a/doc/build/changelog/unreleased_13/5339.rst b/doc/build/changelog/unreleased_13/5339.rst deleted file mode 100644 index efff6b2055..0000000000 --- a/doc/build/changelog/unreleased_13/5339.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: bug, mssql - :tickets: 5339 - - Fixed issue where ``datetime.time`` parameters were being converted to - ``datetime.datetime``, making them incompatible with comparisons like - ``>=`` against an actual :class:`_mssql.TIME` column. diff --git a/doc/build/changelog/unreleased_13/5341.rst b/doc/build/changelog/unreleased_13/5341.rst deleted file mode 100644 index 28df9cb586..0000000000 --- a/doc/build/changelog/unreleased_13/5341.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: bug, engine - :tickets: 5341 - - Fixed issue in :class:`.URL` object where stringifying the object - would not URL encode special characters, preventing the URL from being - re-consumable as a real URL. Pull request courtesy Miguel Grinberg. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_13/5344.rst b/doc/build/changelog/unreleased_13/5344.rst deleted file mode 100644 index d2e598c7bd..0000000000 --- a/doc/build/changelog/unreleased_13/5344.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 5344 - - Correctly apply self_group in type_coerce element. - - The type coerce element did not correctly apply grouping rules when using - in an expression \ No newline at end of file diff --git a/doc/build/changelog/unreleased_13/5346.rst b/doc/build/changelog/unreleased_13/5346.rst deleted file mode 100644 index 7b4e0fb4e6..0000000000 --- a/doc/build/changelog/unreleased_13/5346.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, mssql, pyodbc - :tickets: 5346 - - Fixed an issue in the pyodbc connector such that a warning about pyodbc - "drivername" would be emitted when using a totally empty URL. Empty URLs - are normal when producing a non-connected dialect object or when using the - "creator" argument to create_engine(). The warning now only emits if the - driver name is missing but other parameters are still present. diff --git a/doc/build/changelog/unreleased_13/5353.rst b/doc/build/changelog/unreleased_13/5353.rst deleted file mode 100644 index 39a5ba490b..0000000000 --- a/doc/build/changelog/unreleased_13/5353.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, sql - :tickets: 5353 - - Added :meth:`.Select.with_hint` output to the generic SQL string that is - produced when calling ``str()`` on a statement. Previously, this clause - would be omitted under the assumption that it was dialect specific. - The hint text is presented within brackets to indicate the rendering - of such hints varies among backends. - diff --git a/doc/build/changelog/unreleased_13/5359.rst b/doc/build/changelog/unreleased_13/5359.rst deleted file mode 100644 index b5f690db8d..0000000000 --- a/doc/build/changelog/unreleased_13/5359.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, mssql - :tickets: 5359 - - Fixed an issue where the ``is_disconnect`` function in the SQL Server - pyodbc dialect was incorrectly reporting the disconnect state when the - exception messsage had a substring that matched a SQL Server ODBC error - code. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_13/5366.rst b/doc/build/changelog/unreleased_13/5366.rst deleted file mode 100644 index ff694397f1..0000000000 --- a/doc/build/changelog/unreleased_13/5366.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. change:: - :tags: bug, mssql - :tickets: 5366, 5364 - - Refined the logic used by the SQL Server dialect to interpret multi-part - schema names that contain many dots, to not actually lose any dots if the - name does not have bracking or quoting used, and additionally to support a - "dbname" token that has many parts including that it may have multiple, - independently-bracketed sections. - - diff --git a/doc/build/changelog/unreleased_13/5373.rst b/doc/build/changelog/unreleased_13/5373.rst deleted file mode 100644 index 4396fbde3d..0000000000 --- a/doc/build/changelog/unreleased_13/5373.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, mssql - :tickets: 5373 - - Fixed issue with assembling the ODBC connection string for the pyodbc - DBAPI. Tokens containing semicolons and/or braces "{}" were not being - correctly escaped, causing the ODBC driver to misinterpret the - connection string attributes. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_13/5395.rst b/doc/build/changelog/unreleased_13/5395.rst deleted file mode 100644 index 9e11cdcbaf..0000000000 --- a/doc/build/changelog/unreleased_13/5395.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: bug, sqlite - :tickets: 5395 - - Added "exists" to the list of reserved words for SQLite so that this word - will be quoted when used as a label or column name. Pull request courtesy - Thodoris Sotiropoulos. diff --git a/doc/build/changelog/unreleased_13/5421.rst b/doc/build/changelog/unreleased_13/5421.rst deleted file mode 100644 index d0e10dd1dd..0000000000 --- a/doc/build/changelog/unreleased_13/5421.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. change:: - :tags: bug, oracle, reflection - :tickets: 5421 - - Fixed bug in Oracle dialect where indexes that contain the full set of - primary key columns would be mistaken as the primary key index itself, - which is omitted, even if there were multiples. The check has been refined - to compare the name of the primary key constraint against the index name - itself, rather than trying to guess based on the columns present in the - index. \ No newline at end of file diff --git a/doc/build/changelog/unreleased_13/perf_suite.rst b/doc/build/changelog/unreleased_13/perf_suite.rst deleted file mode 100644 index f928cd3ed3..0000000000 --- a/doc/build/changelog/unreleased_13/perf_suite.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. change:: - :tags: change, examples - - Added new option ``--raw`` to the examples.performance suite - which will dump the raw profile test for consumption by any - number of profiling visualizer tools. Removed the "runsnake" - option as runsnake is very hard to build at this point;