:tags: bug, tests
:tickets: 7045
- Made corrections to the default pytest configuration so that test discovery
- runs correctly; previously, a configuration error had the effect of
- discovery locating the wrong files if a super-directory of the current
- directory were named "test".
+ 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".
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 ``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
+ 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
:tickets: 7667
Fixed issue where the :meth:`_asyncio.AsyncSession.execute` method failed
- to raise an informative exception if the ``stream_results`` execution
+ 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
- ``stream_results`` option would be used with the
- :meth:`_asyncio.AsyncConnection.execute` method.
+ :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
:tags: bug, sql, mysql
:tickets: 7720, 7789, 7598
- Fixed issues in :class:`_mysql.SET` datatype as well as :class:`.Enum`
- 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.
+ 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.
:tags: bug, sqlite
:tickets: 7736
- Fixed issue where SQLite unique constraint reflection would not work
- for an inline UNIQUE constraint where the column name had an underscore
+ 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::
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
+ or `````, which are discarded by the database when producing the
column name.
:tickets: 7738
Fixed regression in mariadbconnector dialect as of mariadb connector 1.0.10
- where the DBAPI no longer pre-buffers cursor.lastrowid. The dialect now
- fetches this value proactively for situations where it applies.
+ 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.