summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/build/changelog/changelog_14.rst204
-rw-r--r--doc/build/changelog/unreleased_14/7045.rst9
-rw-r--r--doc/build/changelog/unreleased_14/7518.rst10
-rw-r--r--doc/build/changelog/unreleased_14/7594.rst16
-rw-r--r--doc/build/changelog/unreleased_14/7599.rst16
-rw-r--r--doc/build/changelog/unreleased_14/7600.rst12
-rw-r--r--doc/build/changelog/unreleased_14/7612.rst11
-rw-r--r--doc/build/changelog/unreleased_14/7667.rst19
-rw-r--r--doc/build/changelog/unreleased_14/7676.rst8
-rw-r--r--doc/build/changelog/unreleased_14/7697.rst8
-rw-r--r--doc/build/changelog/unreleased_14/7720_7789.rst10
-rw-r--r--doc/build/changelog/unreleased_14/7721.rst7
-rw-r--r--doc/build/changelog/unreleased_14/7736.rst16
-rw-r--r--doc/build/changelog/unreleased_14/7738.rst9
-rw-r--r--doc/build/changelog/unreleased_14/7748.rst7
-rw-r--r--doc/build/changelog/unreleased_14/7760.rst9
-rw-r--r--doc/build/changelog/unreleased_14/async_no_event.rst6
-rw-r--r--doc/build/changelog/unreleased_14/enum_length_warning.rst12
-rw-r--r--doc/build/conf.py4
19 files changed, 205 insertions, 188 deletions
diff --git a/doc/build/changelog/changelog_14.rst b/doc/build/changelog/changelog_14.rst
index 79102dd3e..eacb83edf 100644
--- a/doc/build/changelog/changelog_14.rst
+++ b/doc/build/changelog/changelog_14.rst
@@ -15,7 +15,209 @@ This document details individual issue-level changes made throughout
.. changelog::
:version: 1.4.32
- :include_notes_from: unreleased_14
+ :released: March 6, 2022
+
+ .. change::
+ :tags: bug, sql
+ :tickets: 7721
+
+ Fixed type-related error messages that would fail for values that were
+ tuples, due to string formatting syntax, including compile of unsupported
+ literal values and invalid boolean values.
+
+ .. change::
+ :tags: bug, sql, mysql
+ :tickets: 7720, 7789, 7598
+
+ Fixed issues in MySQL :class:`_mysql.SET` datatype as well as the generic
+ :class:`.Enum` datatype where the ``__repr__()`` method would not render
+ all optional parameters in the string output, impacting the use of these
+ types in Alembic autogenerate. Pull request for MySQL courtesy Yuki
+ Nishimine.
+
+
+ .. change::
+ :tags: bug, sqlite
+ :tickets: 7736
+
+ Fixed issue where SQLite unique constraint reflection would fail to detect
+ a column-inline UNIQUE constraint where the column name had an underscore
+ in its name.
+
+ .. change::
+ :tags: usecase, sqlite
+ :tickets: 7736
+
+ Added support for reflecting SQLite inline unique constraints where
+ the column names are formatted with SQLite "escape quotes" ``[]``
+ or `````, which are discarded by the database when producing the
+ column name.
+
+ .. change::
+ :tags: bug, oracle
+ :tickets: 7676
+
+ Fixed issue in Oracle dialect where using a column name that requires
+ quoting when written as a bound parameter, such as ``"_id"``, would not
+ correctly track a Python generated default value due to the bound-parameter
+ rewriting missing this value, causing an Oracle error to be raised.
+
+ .. change::
+ :tags: bug, tests
+ :tickets: 7599
+
+ Improvements to the test suite's integration with pytest such that the
+ "warnings" plugin, if manually enabled, will not interfere with the test
+ suite, such that third parties can enable the warnings plugin or make use
+ of the ``-W`` parameter and SQLAlchemy's test suite will continue to pass.
+ Additionally, modernized the detection of the "pytest-xdist" plugin so that
+ plugins can be globally disabled using PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ without breaking the test suite if xdist were still installed. Warning
+ filters that promote deprecation warnings to errors are now localized to
+ SQLAlchemy-specific warnings, or within SQLAlchemy-specific sources for
+ general Python deprecation warnings, so that non-SQLAlchemy deprecation
+ warnings emitted from pytest plugins should also not impact the test suite.
+
+
+ .. change::
+ :tags: bug, sql
+
+ The :class:`_sqltypes.Enum` datatype now emits a warning if the
+ :paramref:`_sqltypes.Enum.length` argument is specified without also
+ specifying :paramref:`_sqltypes.Enum.native_enum` as False, as the
+ parameter is otherwise silently ignored in this case, despite the fact that
+ the :class:`_sqltypes.Enum` datatype will still render VARCHAR DDL on
+ backends that don't have a native ENUM datatype such as SQLite. This
+ behavior may change in a future release so that "length" is honored for all
+ non-native "enum" types regardless of the "native_enum" setting.
+
+
+ .. change::
+ :tags: bug, mysql, regression
+ :tickets: 7518
+
+ Fixed regression caused by :ticket:`7518` where changing the syntax "SHOW
+ VARIABLES" to "SELECT @@" broke compatibility with MySQL versions older
+ than 5.6, including early 5.0 releases. While these are very old MySQL
+ versions, a change in compatibility was not planned, so version-specific
+ logic has been restored to fall back to "SHOW VARIABLES" for MySQL server
+ versions < 5.6.
+
+ .. change::
+ :tags: bug, asyncio
+
+ Fixed issues where a descriptive error message was not raised for some
+ classes of event listening with an async engine, which should instead be a
+ sync engine instance.
+
+ .. change::
+ :tags: bug, mariadb, regression
+ :tickets: 7738
+
+ Fixed regression in mariadbconnector dialect as of mariadb connector 1.0.10
+ where the DBAPI no longer pre-buffers cursor.lastrowid, leading to errors
+ when inserting objects with the ORM as well as causing non-availability of
+ the :attr:`_result.CursorResult.inserted_primary_key` attribute. The
+ dialect now fetches this value proactively for situations where it applies.
+
+ .. change::
+ :tags: usecase, postgresql
+ :tickets: 7600
+
+ Added compiler support for the PostgreSQL ``NOT VALID`` phrase when rendering
+ DDL for the :class:`.CheckConstraint`, :class:`.ForeignKeyConstraint`
+ and :class:`.ForeignKey` schema constructs. Pull request courtesy
+ Gilbert Gilb's.
+
+ .. seealso::
+
+ :ref:`postgresql_constraint_options`
+
+ .. change::
+ :tags: bug, orm, regression
+ :tickets: 7594
+
+ Fixed regression where the ORM exception that is to be raised when an
+ INSERT silently fails to actually insert a row (such as from a trigger)
+ would not be reached, due to a runtime exception raised ahead of time due
+ to the missing primary key value, thus raising an uninformative exception
+ rather than the correct one. For 1.4 and above, a new
+ :class:`_ormexc.FlushError` is added for this case that's raised earlier
+ than the previous "null identity" exception was for 1.3, as a situation
+ where the number of rows actually INSERTed does not match what was expected
+ is a more critical situation in 1.4 as it prevents batching of multiple
+ objects from working correctly. This is separate from the case where a
+ newly fetched primary key is fetched as NULL, which continues to raise the
+ existing "null identity" exception.
+
+ .. change::
+ :tags: bug, tests
+ :tickets: 7045
+
+ Made corrections to the default pytest configuration regarding how test
+ discovery is configured, to fix issue where the test suite would not
+ configure warnings correctly and also attempt to load example suites as
+ tests, in the specific case where the SQLAlchemy checkout were located in
+ an absolute path that had a super-directory named "test".
+
+ .. change::
+ :tags: bug, orm
+ :tickets: 7697
+
+ Fixed issue where using a fully qualified path for the classname in
+ :func:`_orm.relationship` that nonetheless contained an incorrect name for
+ path tokens that were not the first token, would fail to raise an
+ informative error and would instead fail randomly at a later step.
+
+ .. change::
+ :tags: bug, oracle, regression
+ :tickets: 7748
+
+ Added support to parse "DPI" error codes from cx_Oracle exception objects
+ such as ``DPI-1080`` and ``DPI-1010``, both of which now indicate a
+ disconnect scenario as of cx_Oracle 8.3.
+
+ .. change::
+ :tags: bug, sql
+ :tickets: 7760
+
+ Fixed issue where the :meth:`.HasCTE.add_cte` method as called upon a
+ :class:`.TextualSelect` instance was not being accommodated by the SQL
+ compiler. The fix additionally adds more "SELECT"-like compiler behavior to
+ :class:`.TextualSelect` including that DML CTEs such as UPDATE and INSERT
+ may be accommodated.
+
+ .. change::
+ :tags: bug, engine
+ :tickets: 7612
+
+ Adjusted the logging for key SQLAlchemy components including
+ :class:`_engine.Engine`, :class:`_engine.Connection` to establish an
+ appropriate stack level parameter, so that the Python logging tokens
+ ``funcName`` and ``lineno`` when used in custom logging formatters will
+ report the correct information, which can be useful when filtering log
+ output; supported on Python 3.8 and above. Pull request courtesy Markus
+ Gerstel.
+
+ .. change::
+ :tags: bug, asyncio
+ :tickets: 7667
+
+ Fixed issue where the :meth:`_asyncio.AsyncSession.execute` method failed
+ to raise an informative exception if the
+ :paramref:`_engine.Connection.execution_options.stream_results` execution
+ option were used, which is incompatible with a sync-style
+ :class:`_result.Result` object when using an asyncio calling style, as the
+ operation to fetch more rows would need to be awaited. An exception is now
+ raised in this scenario in the same way one was already raised when the
+ :paramref:`_engine.Connection.execution_options.stream_results` option
+ would be used with the :meth:`_asyncio.AsyncConnection.execute` method.
+
+ Additionally, for improved stability with state-sensitive database drivers
+ such as asyncmy, the cursor is now closed when this error condition is
+ raised; previously with the asyncmy dialect, the connection would go into
+ an invalid state with unconsumed server side results remaining.
+
.. changelog::
:version: 1.4.31
diff --git a/doc/build/changelog/unreleased_14/7045.rst b/doc/build/changelog/unreleased_14/7045.rst
deleted file mode 100644
index a3643a433..000000000
--- a/doc/build/changelog/unreleased_14/7045.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-.. change::
- :tags: bug, tests
- :tickets: 7045
-
- Made corrections to the default pytest configuration regarding how test
- discovery is configured, to fix issue where the test suite would not
- configure warnings correctly and also attempt to load example suites as
- tests, in the specific case where the SQLAlchemy checkout were located in
- an absolute path that had a super-directory named "test".
diff --git a/doc/build/changelog/unreleased_14/7518.rst b/doc/build/changelog/unreleased_14/7518.rst
deleted file mode 100644
index bb5a9bc21..000000000
--- a/doc/build/changelog/unreleased_14/7518.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-.. change::
- :tags: bug, mysql, regression
- :tickets: 7518
-
- Fixed regression caused by :ticket:`7518` where changing the syntax "SHOW
- VARIABLES" to "SELECT @@" broke compatibility with MySQL versions older
- than 5.6, including early 5.0 releases. While these are very old MySQL
- versions, a change in compatibility was not planned, so version-specific
- logic has been restored to fall back to "SHOW VARIABLES" for MySQL server
- versions < 5.6.
diff --git a/doc/build/changelog/unreleased_14/7594.rst b/doc/build/changelog/unreleased_14/7594.rst
deleted file mode 100644
index 08f22749e..000000000
--- a/doc/build/changelog/unreleased_14/7594.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-.. change::
- :tags: bug, orm, regression
- :tickets: 7594
-
- Fixed regression where the ORM exception that is to be raised when an
- INSERT silently fails to actually insert a row (such as from a trigger)
- would not be reached, due to a runtime exception raised ahead of time due
- to the missing primary key value, thus raising an uninformative exception
- rather than the correct one. For 1.4 and above, a new
- :class:`_ormexc.FlushError` is added for this case that's raised earlier
- than the previous "null identity" exception was for 1.3, as a situation
- where the number of rows actually INSERTed does not match what was expected
- is a more critical situation in 1.4 as it prevents batching of multiple
- objects from working correctly. This is separate from the case where a
- newly fetched primary key is fetched as NULL, which continues to raise the
- existing "null identity" exception. \ No newline at end of file
diff --git a/doc/build/changelog/unreleased_14/7599.rst b/doc/build/changelog/unreleased_14/7599.rst
deleted file mode 100644
index db69ace46..000000000
--- a/doc/build/changelog/unreleased_14/7599.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-.. change::
- :tags: bug, tests
- :tickets: 7599
-
- Improvements to the test suite's integration with pytest such that the
- "warnings" plugin, if manually enabled, will not interfere with the test
- suite, such that third parties can enable the warnings plugin or make use
- of the ``-W`` parameter and SQLAlchemy's test suite will continue to pass.
- Additionally, modernized the detection of the "pytest-xdist" plugin so that
- plugins can be globally disabled using PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- without breaking the test suite if xdist were still installed. Warning
- filters that promote deprecation warnings to errors are now localized to
- SQLAlchemy-specific warnings, or within SQLAlchemy-specific sources for
- general Python deprecation warnings, so that non-SQLAlchemy deprecation
- warnings emitted from pytest plugins should also not impact the test suite.
-
diff --git a/doc/build/changelog/unreleased_14/7600.rst b/doc/build/changelog/unreleased_14/7600.rst
deleted file mode 100644
index 2f843ea19..000000000
--- a/doc/build/changelog/unreleased_14/7600.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-.. change::
- :tags: usecase, postgresql
- :tickets: 7600
-
- Added compiler support for the PostgreSQL ``NOT VALID`` phrase when rendering
- DDL for the :class:`.CheckConstraint`, :class:`.ForeignKeyConstraint`
- and :class:`.ForeignKey` schema constructs. Pull request courtesy
- Gilbert Gilb's.
-
- .. seealso::
-
- :ref:`postgresql_constraint_options`
diff --git a/doc/build/changelog/unreleased_14/7612.rst b/doc/build/changelog/unreleased_14/7612.rst
deleted file mode 100644
index c8992045f..000000000
--- a/doc/build/changelog/unreleased_14/7612.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-.. change::
- :tags: bug, engine
- :tickets: 7612
-
- Adjusted the logging for key SQLAlchemy components including
- :class:`_engine.Engine`, :class:`_engine.Connection` to establish an
- appropriate stack level parameter, so that the Python logging tokens
- ``funcName`` and ``lineno`` when used in custom logging formatters will
- report the correct information, which can be useful when filtering log
- output; supported on Python 3.8 and above. Pull request courtesy Markus
- Gerstel.
diff --git a/doc/build/changelog/unreleased_14/7667.rst b/doc/build/changelog/unreleased_14/7667.rst
deleted file mode 100644
index a66bb1238..000000000
--- a/doc/build/changelog/unreleased_14/7667.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-.. change::
- :tags: bug, asyncio
- :tickets: 7667
-
- Fixed issue where the :meth:`_asyncio.AsyncSession.execute` method failed
- to raise an informative exception if the
- :paramref:`_engine.Connection.execution_options.stream_results` execution
- option were used, which is incompatible with a sync-style
- :class:`_result.Result` object when using an asyncio calling style, as the
- operation to fetch more rows would need to be awaited. An exception is now
- raised in this scenario in the same way one was already raised when the
- :paramref:`_engine.Connection.execution_options.stream_results` option
- would be used with the :meth:`_asyncio.AsyncConnection.execute` method.
-
- Additionally, for improved stability with state-sensitive database drivers
- such as asyncmy, the cursor is now closed when this error condition is
- raised; previously with the asyncmy dialect, the connection would go into
- an invalid state with unconsumed server side results remaining.
-
diff --git a/doc/build/changelog/unreleased_14/7676.rst b/doc/build/changelog/unreleased_14/7676.rst
deleted file mode 100644
index ec6275fb4..000000000
--- a/doc/build/changelog/unreleased_14/7676.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-.. change::
- :tags: bug, oracle
- :tickets: 7676
-
- Fixed issue in Oracle dialect where using a column name that requires
- quoting when written as a bound parameter, such as ``"_id"``, would not
- correctly track a Python generated default value due to the bound-parameter
- rewriting missing this value, causing an Oracle error to be raised.
diff --git a/doc/build/changelog/unreleased_14/7697.rst b/doc/build/changelog/unreleased_14/7697.rst
deleted file mode 100644
index 03b318cce..000000000
--- a/doc/build/changelog/unreleased_14/7697.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-.. change::
- :tags: bug, orm
- :tickets: 7697
-
- Fixed issue where using a fully qualified path for the classname in
- :func:`_orm.relationship` that nonetheless contained an incorrect name for
- path tokens that were not the first token, would fail to raise an
- informative error and would instead fail randomly at a later step.
diff --git a/doc/build/changelog/unreleased_14/7720_7789.rst b/doc/build/changelog/unreleased_14/7720_7789.rst
deleted file mode 100644
index ddbc327df..000000000
--- a/doc/build/changelog/unreleased_14/7720_7789.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-.. change::
- :tags: bug, sql, mysql
- :tickets: 7720, 7789, 7598
-
- Fixed issues in MySQL :class:`_mysql.SET` datatype as well as the generic
- :class:`.Enum` datatype where the ``__repr__()`` method would not render
- all optional parameters in the string output, impacting the use of these
- types in Alembic autogenerate. Pull request for MySQL courtesy Yuki
- Nishimine.
-
diff --git a/doc/build/changelog/unreleased_14/7721.rst b/doc/build/changelog/unreleased_14/7721.rst
deleted file mode 100644
index d719e2233..000000000
--- a/doc/build/changelog/unreleased_14/7721.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-.. change::
- :tags: bug, sql
- :tickets: 7721
-
- Fixed type-related error messages that would fail for values that were
- tuples, due to string formatting syntax, including compile of unsupported
- literal values and invalid boolean values.
diff --git a/doc/build/changelog/unreleased_14/7736.rst b/doc/build/changelog/unreleased_14/7736.rst
deleted file mode 100644
index 5071961d1..000000000
--- a/doc/build/changelog/unreleased_14/7736.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-.. change::
- :tags: bug, sqlite
- :tickets: 7736
-
- Fixed issue where SQLite unique constraint reflection would fail to detect
- a column-inline UNIQUE constraint where the column name had an underscore
- in its name.
-
-.. change::
- :tags: usecase, sqlite
- :tickets: 7736
-
- Added support for reflecting SQLite inline unique constraints where
- the column names are formatted with SQLite "escape quotes" ``[]``
- or `````, which are discarded by the database when producing the
- column name.
diff --git a/doc/build/changelog/unreleased_14/7738.rst b/doc/build/changelog/unreleased_14/7738.rst
deleted file mode 100644
index 322ddb458..000000000
--- a/doc/build/changelog/unreleased_14/7738.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-.. change::
- :tags: bug, mariadb, regression
- :tickets: 7738
-
- Fixed regression in mariadbconnector dialect as of mariadb connector 1.0.10
- where the DBAPI no longer pre-buffers cursor.lastrowid, leading to errors
- when inserting objects with the ORM as well as causing non-availability of
- the :attr:`_result.CursorResult.inserted_primary_key` attribute. The
- dialect now fetches this value proactively for situations where it applies.
diff --git a/doc/build/changelog/unreleased_14/7748.rst b/doc/build/changelog/unreleased_14/7748.rst
deleted file mode 100644
index d9d6bf236..000000000
--- a/doc/build/changelog/unreleased_14/7748.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-.. change::
- :tags: bug, oracle, regression
- :tickets: 7748
-
- Added support to parse "DPI" error codes from cx_Oracle exception objects
- such as ``DPI-1080`` and ``DPI-1010``, both of which now indicate a
- disconnect scenario as of cx_Oracle 8.3.
diff --git a/doc/build/changelog/unreleased_14/7760.rst b/doc/build/changelog/unreleased_14/7760.rst
deleted file mode 100644
index 2f0d403dd..000000000
--- a/doc/build/changelog/unreleased_14/7760.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-.. change::
- :tags: bug, sql
- :tickets: 7760
-
- Fixed issue where the :meth:`.HasCTE.add_cte` method as called upon a
- :class:`.TextualSelect` instance was not being accommodated by the SQL
- compiler. The fix additionally adds more "SELECT"-like compiler behavior to
- :class:`.TextualSelect` including that DML CTEs such as UPDATE and INSERT
- may be accommodated.
diff --git a/doc/build/changelog/unreleased_14/async_no_event.rst b/doc/build/changelog/unreleased_14/async_no_event.rst
deleted file mode 100644
index 8deda8945..000000000
--- a/doc/build/changelog/unreleased_14/async_no_event.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-.. change::
- :tags: bug, asyncio
-
- Fixed issues where a descriptive error message was not raised for some
- classes of event listening with an async engine, which should instead be a
- sync engine instance. \ No newline at end of file
diff --git a/doc/build/changelog/unreleased_14/enum_length_warning.rst b/doc/build/changelog/unreleased_14/enum_length_warning.rst
deleted file mode 100644
index f1dfab64c..000000000
--- a/doc/build/changelog/unreleased_14/enum_length_warning.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-.. change::
- :tags: bug, sql
-
- The :class:`_sqltypes.Enum` datatype now emits a warning if the
- :paramref:`_sqltypes.Enum.length` argument is specified without also
- specifying :paramref:`_sqltypes.Enum.native_enum` as False, as the
- parameter is otherwise silently ignored in this case, despite the fact that
- the :class:`_sqltypes.Enum` datatype will still render VARCHAR DDL on
- backends that don't have a native ENUM datatype such as SQLite. This
- behavior may change in a future release so that "length" is honored for all
- non-native "enum" types regardless of the "native_enum" setting.
-
diff --git a/doc/build/conf.py b/doc/build/conf.py
index e1e798286..f29349c79 100644
--- a/doc/build/conf.py
+++ b/doc/build/conf.py
@@ -206,9 +206,9 @@ copyright = u"2007-2022, the SQLAlchemy authors and contributors" # noqa
# The short X.Y version.
version = "1.4"
# The full version, including alpha/beta/rc tags.
-release = "1.4.31"
+release = "1.4.32"
-release_date = "January 20, 2022"
+release_date = "March 6, 2022"
site_base = os.environ.get("RTD_SITE_BASE", "https://www.sqlalchemy.org")
site_adapter_template = "docs_adapter.mako"