rel_1_4_32
版本发布时间: 2022-03-07 06:43:14
sqlalchemy/sqlalchemy最新发布版本:rel_2_0_36(2024-10-16 03:41:54)
1.4.32
Released: March 6, 2022
orm
-
[orm] [bug] [regression] 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
_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.References: #7594
-
[orm] [bug] Fixed issue where using a fully qualified path for the classname in
_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.References: #7697
engine
-
[engine] [bug] Adjusted the logging for key SQLAlchemy components including
_engine.Engine
,_engine.Connection
to establish an appropriate stack level parameter, so that the Python logging tokensfuncName
andlineno
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.References: #7612
sql
-
[sql] [bug] 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.
References: #7721
-
[sql] [bug] [mysql] Fixed issues in MySQL
_mysql.SET
datatype as well as the genericEnum
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. -
[sql] [bug] The
_sqltypes.Enum
datatype now emits a warning if the_sqltypes.Enum.length
argument is specified without also specifying_sqltypes.Enum.native_enum
as False, as the parameter is otherwise silently ignored in this case, despite the fact that the_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. -
[sql] [bug] Fixed issue where the
HasCTE.add_cte()
method as called upon aTextualSelect
instance was not being accommodated by the SQL compiler. The fix additionally adds more "SELECT"-like compiler behavior toTextualSelect
including that DML CTEs such as UPDATE and INSERT may be accommodated.References: #7760
asyncio
-
[asyncio] [bug] 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.
-
[asyncio] [bug] Fixed issue where the
_asyncio.AsyncSession.execute()
method failed to raise an informative exception if the_engine.Connection.execution_options.stream_results
execution option were used, which is incompatible with a sync-style_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_engine.Connection.execution_options.stream_results
option would be used with the_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.
References: #7667
postgresql
-
[postgresql] [usecase] Added compiler support for the PostgreSQL
NOT VALID
phrase when rendering DDL for theCheckConstraint
,ForeignKeyConstraint
andForeignKey
schema constructs. Pull request courtesy Gilbert Gilb's.References: #7600
mysql
-
[mysql] [bug] [regression] Fixed regression caused by #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.
References: #7518
mariadb
-
[mariadb] [bug] [regression] 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
_result.CursorResult.inserted_primary_key
attribute. The dialect now fetches this value proactively for situations where it applies.References: #7738
sqlite
-
[sqlite] [usecase] 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.References: #7736
-
[sqlite] [bug] 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.
References: #7736
oracle
-
[oracle] [bug] 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.References: #7676
-
[oracle] [bug] [regression] Added support to parse "DPI" error codes from cx_Oracle exception objects such as
DPI-1080
andDPI-1010
, both of which now indicate a disconnect scenario as of cx_Oracle 8.3.References: #7748
tests
-
[tests] [bug] 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.References: #7599
-
[tests] [bug] 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".
References: #7045
1、 SQLAlchemy-1.4.32-cp27-cp27m-macosx_10_14_x86_64.whl 1.46MB
2、 SQLAlchemy-1.4.32-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl 1.51MB
3、 SQLAlchemy-1.4.32-cp27-cp27m-win_amd64.whl 1.48MB
4、 SQLAlchemy-1.4.32-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl 1.51MB
5、 SQLAlchemy-1.4.32-cp310-cp310-macosx_10_15_x86_64.whl 1.46MB
6、 SQLAlchemy-1.4.32-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 1.52MB
9、 SQLAlchemy-1.4.32-cp310-cp310-win32.whl 1.48MB
10、 SQLAlchemy-1.4.32-cp310-cp310-win_amd64.whl 1.48MB
11、 SQLAlchemy-1.4.32-cp36-cp36m-macosx_10_14_x86_64.whl 1.46MB
12、 SQLAlchemy-1.4.32-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 1.51MB
15、 SQLAlchemy-1.4.32-cp36-cp36m-win32.whl 1.48MB
16、 SQLAlchemy-1.4.32-cp36-cp36m-win_amd64.whl 1.48MB
17、 SQLAlchemy-1.4.32-cp37-cp37m-macosx_10_14_x86_64.whl 1.46MB
18、 SQLAlchemy-1.4.32-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 1.51MB
21、 SQLAlchemy-1.4.32-cp37-cp37m-win32.whl 1.48MB
22、 SQLAlchemy-1.4.32-cp37-cp37m-win_amd64.whl 1.48MB
23、 SQLAlchemy-1.4.32-cp38-cp38-macosx_10_14_x86_64.whl 1.46MB
24、 SQLAlchemy-1.4.32-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 1.52MB
27、 SQLAlchemy-1.4.32-cp38-cp38-win32.whl 1.48MB
28、 SQLAlchemy-1.4.32-cp38-cp38-win_amd64.whl 1.48MB
29、 SQLAlchemy-1.4.32-cp39-cp39-macosx_10_15_x86_64.whl 1.46MB
30、 SQLAlchemy-1.4.32-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 1.52MB
33、 SQLAlchemy-1.4.32-cp39-cp39-win32.whl 1.48MB
34、 SQLAlchemy-1.4.32-cp39-cp39-win_amd64.whl 1.48MB