rel_2_0_32
版本发布时间: 2024-08-06 03:08:48
sqlalchemy/sqlalchemy最新发布版本:rel_2_0_36(2024-10-16 03:41:54)
2.0.32
Released: August 5, 2024
general
-
[general] [bug] [regression] Restored legacy class names removed from
sqlalalchemy.orm.collections.*
, including_orm.MappedCollection
,_orm.mapped_collection()
,_orm.column_mapped_collection()
,_orm.attribute_mapped_collection()
. Pull request courtesy Takashi Kajinami.References: #11435
orm
-
[orm] [usecase] The
_orm.aliased.name
parameter to_orm.aliased()
may now be combined with the_orm.aliased.flat
parameter, producing per-table names based on a name-prefixed naming convention. Pull request courtesy Eric Atkin.References: #11575
-
[orm] [bug] [regression] Fixed regression going back to 1.4 where accessing a collection using the "dynamic" strategy on a transient object and attempting to query would raise an internal error rather than the expected
NoResultFound
that occurred in 1.3.This change is also backported to: 1.4.53
References: #11562
-
[orm] [bug] Fixed issue where using the
_orm.Query.enable_eagerloads()
and_orm.Query.yield_per()
methods at the same time, in order to disable eager loading that's configured on the mapper directly, would be silently ignored, leading to errors or unexpected eager population of attributes.References: #10834
-
[orm] [bug] [regression] Fixed regression appearing in 2.0.21 caused by #10279 where using a
_sql.delete()
or_sql.update()
against an ORM class that is the base of an inheritance hierarchy, while also specifying that subclasses should be loaded polymorphically, would leak the polymorphic joins into the UPDATE or DELETE statement as well creating incorrect SQL.References: #11625
-
[orm] [bug] [regression] Fixed regression from version 1.4 in
_orm.Session.bulk_insert_mappings()
where using the_orm.Session.bulk_insert_mappings.return_defaults
parameter would not populate the passed in dictionaries with newly generated primary key values.References: #11661
-
[orm] Added a warning noting when an
_engine.ConnectionEvents.engine_connect()
event may be leaving a transaction open, which can alter the behavior of a_orm.Session
using such an engine as bind. On SQLAlchemy 2.1_orm.Session.join_transaction_mode
will instead be ignored in all cases when the session bind is an_engine.Engine
.References: #11163
examples
-
[examples] [bug] Fixed issue in history_meta example where the "version" column in the versioned table needs to default to the most recent version number in the history table on INSERT, to suit the use case of a table where rows are deleted, and can then be replaced by new rows that re-use the same primary key identity. This fix adds an additonal SELECT query per INSERT in the main table, which may be inefficient; for cases where primary keys are not re-used, the default function may be omitted. Patch courtesy Philipp H. v. Loewenfeld.
References: #10267
engine
-
[engine] [bug] Fixed issue in "insertmanyvalues" feature where a particular call to
cursor.fetchall()
were not wrapped in SQLAlchemy's exception wrapper, which apparently can raise a database exception during fetch when using pyodbc.References: #11532
sql
-
[sql] [bug] Follow up of #11471 to fix caching issue where using the
CompoundSelectState.add_cte()
method of theCompoundSelectState
construct would not set a correct cache key which distinguished between different CTE expressions. Also added tests that would detect issues similar to the one fixed in #11544.References: #11471
-
[sql] [bug] Fixed bug where the
Operators.nulls_first()
andOperators.nulls_last()
modifiers would not be treated the same way asOperators.desc()
andOperators.asc()
when determining if an ORDER BY should be against a label name already in the statement. All four modifiers are now treated the same within ORDER BY.References: #11592
schema
-
[schema] [bug] Fixed additional issues in the event system triggered by unpickling of a
Enum
datatype, continuing from #11365 and #11360, where dynamically generated elements of the event structure would not be present when unpickling in a new process.References: #11530
typing
- [typing] [bug] Fixed internal typing issues to establish compatibility with mypy 1.11.0. Note that this does not include issues which have arisen with the deprecated mypy plugin used by SQLAlchemy 1.4-style code; see the addiional change note for this plugin indicating revised compatibility.
mypy
-
[mypy] [bug] The deprecated mypy plugin is no longer fully functional with the latest series of mypy 1.11.0, as changes in the mypy interpreter are no longer compatible with the approach used by the plugin. If code is dependent on the mypy plugin with sqlalchemy2-stubs, it's recommended to pin mypy to be below the 1.11.0 series. Seek upgrading to the 2.0 series of SQLAlchemy and migrating to the modern type annotations.
This change is also backported to: 1.4.53
postgresql
-
[postgresql] [bug] It is now considered a pool-invalidating disconnect event when psycopg2 throws an "SSL SYSCALL error: Success" error message, which can occur when the SSL connection to Postgres is terminated abnormally.
References: #11522
-
[postgresql] [bug] Fixed issue where the
_sql.collate()
construct, which explicitly sets a collation for a given expression, would maintain collation settings for the underlying type object from the expression, causing SQL expressions to have both collations stated at once when used in further expressions for specific dialects that render explicit type casts, such as that of asyncpg. The_sql.collate()
construct now assigns its own type to explicitly include the new collation, assuming it's a string type.References: #11576
mysql
-
[mysql] [bug] Fixed issue in MySQL dialect where ENUM values that contained percent signs were not properly escaped for the driver.
References: #11479
sqlite
-
[sqlite] [bug] [reflection] Fixed reflection of computed column in SQLite to properly account for complex expressions.
This change is also backported to: 1.4.53
References: #11582
mssql
-
[mssql] [bug] Fixed issue where SQL Server drivers don't support bound parameters when rendering the "frame specification" for a window function, e.g. "ROWS BETWEEN", etc.
This change is also backported to: 1.4.53
References: #11514
oracle
-
[oracle] [usecase] Added API support for server-side cursors for the oracledb async dialect, allowing use of the
_asyncio.AsyncConnection.stream()
and similar stream methods.References: #10820
-
[oracle] [usecase] Implemented two-phase transactions for the oracledb dialect. Historically, this feature never worked with the cx_Oracle dialect, however recent improvements to the oracledb successor now allow this to be possible. The two phase transaction API is available at the Core level via the
_engine.Connection.begin_twophase()
method.References: #11480
-
[oracle] [bug] [sqlite] Implemented bitwise operators for Oracle which was previously non-functional due to a non-standard syntax used by this database. Oracle's support for bitwise "or" and "xor" starts with server version 21. Additionally repaired the implementation of "xor" for SQLite.
As part of this change, the dialect compliance test suite has been enhanced to include support for server-side bitwise tests; third party dialect authors should refer to new "supports_bitwise" methods in the requirements.py file to enable these tests.
References: #11663
-
[oracle] [bug] Fixed table reflection on Oracle 10.2 and older where compression options are not supported.
References: #11557
1、 SQLAlchemy-2.0.32-cp310-cp310-macosx_10_9_x86_64.whl 1.99MB
2、 SQLAlchemy-2.0.32-cp310-cp310-macosx_11_0_arm64.whl 1.98MB
3、 SQLAlchemy-2.0.32-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 2.92MB
4、 SQLAlchemy-2.0.32-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 2.93MB
5、 SQLAlchemy-2.0.32-cp310-cp310-musllinux_1_2_aarch64.whl 2.89MB
6、 SQLAlchemy-2.0.32-cp310-cp310-musllinux_1_2_x86_64.whl 2.91MB
7、 SQLAlchemy-2.0.32-cp310-cp310-win32.whl 1.96MB
8、 SQLAlchemy-2.0.32-cp310-cp310-win_amd64.whl 1.99MB
9、 SQLAlchemy-2.0.32-cp311-cp311-macosx_10_9_x86_64.whl 1.99MB
10、 SQLAlchemy-2.0.32-cp311-cp311-macosx_11_0_arm64.whl 1.98MB
11、 SQLAlchemy-2.0.32-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 3.05MB
12、 SQLAlchemy-2.0.32-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 3.05MB
13、 SQLAlchemy-2.0.32-cp311-cp311-musllinux_1_2_aarch64.whl 2.99MB
14、 SQLAlchemy-2.0.32-cp311-cp311-musllinux_1_2_x86_64.whl 3.01MB
15、 SQLAlchemy-2.0.32-cp311-cp311-win32.whl 1.96MB
16、 SQLAlchemy-2.0.32-cp311-cp311-win_amd64.whl 1.99MB
17、 SQLAlchemy-2.0.32-cp312-cp312-macosx_10_9_x86_64.whl 1.99MB
18、 SQLAlchemy-2.0.32-cp312-cp312-macosx_11_0_arm64.whl 1.98MB
19、 SQLAlchemy-2.0.32-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 3.08MB
20、 SQLAlchemy-2.0.32-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 3.09MB
21、 SQLAlchemy-2.0.32-cp312-cp312-musllinux_1_2_aarch64.whl 3.03MB
22、 SQLAlchemy-2.0.32-cp312-cp312-musllinux_1_2_x86_64.whl 3.05MB
23、 SQLAlchemy-2.0.32-cp312-cp312-win32.whl 1.96MB
24、 SQLAlchemy-2.0.32-cp312-cp312-win_amd64.whl 1.99MB
25、 SQLAlchemy-2.0.32-cp37-cp37m-macosx_10_9_x86_64.whl 1.99MB
26、 SQLAlchemy-2.0.32-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 2.84MB
27、 SQLAlchemy-2.0.32-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 2.85MB
28、 SQLAlchemy-2.0.32-cp37-cp37m-musllinux_1_2_aarch64.whl 2.8MB
29、 SQLAlchemy-2.0.32-cp37-cp37m-musllinux_1_2_x86_64.whl 2.82MB
30、 SQLAlchemy-2.0.32-cp37-cp37m-win32.whl 1.97MB
31、 SQLAlchemy-2.0.32-cp37-cp37m-win_amd64.whl 1.99MB
32、 SQLAlchemy-2.0.32-cp38-cp38-macosx_10_9_x86_64.whl 2MB
33、 SQLAlchemy-2.0.32-cp38-cp38-macosx_11_0_arm64.whl 1.99MB
34、 SQLAlchemy-2.0.32-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 2.94MB
35、 SQLAlchemy-2.0.32-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 2.95MB
36、 SQLAlchemy-2.0.32-cp38-cp38-musllinux_1_2_aarch64.whl 2.9MB
37、 SQLAlchemy-2.0.32-cp38-cp38-musllinux_1_2_x86_64.whl 2.92MB
38、 SQLAlchemy-2.0.32-cp38-cp38-win32.whl 1.97MB
39、 SQLAlchemy-2.0.32-cp38-cp38-win_amd64.whl 1.99MB
40、 SQLAlchemy-2.0.32-cp39-cp39-macosx_10_9_x86_64.whl 1.99MB
41、 SQLAlchemy-2.0.32-cp39-cp39-macosx_11_0_arm64.whl 1.99MB
42、 SQLAlchemy-2.0.32-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 2.93MB
43、 SQLAlchemy-2.0.32-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 2.94MB
44、 SQLAlchemy-2.0.32-cp39-cp39-musllinux_1_2_aarch64.whl 2.9MB
45、 SQLAlchemy-2.0.32-cp39-cp39-musllinux_1_2_x86_64.whl 2.93MB
46、 SQLAlchemy-2.0.32-cp39-cp39-win32.whl 1.97MB
47、 SQLAlchemy-2.0.32-cp39-cp39-win_amd64.whl 1.99MB
48、 SQLAlchemy-2.0.32-py3-none-any.whl 1.79MB