rel_2_0_26
版本发布时间: 2024-02-11 23:14:48
sqlalchemy/sqlalchemy最新发布版本:rel_2_0_36(2024-10-16 03:41:54)
2.0.26
Released: February 11, 2024
orm
-
[orm] [bug] Replaced the "loader depth is excessively deep" warning with a shorter message added to the caching badge within SQL logging, for those statements where the ORM disabled the cache due to a too-deep chain of loader options. The condition which this warning highlights is difficult to resolve and is generally just a limitation in the ORM's application of SQL caching. A future feature may include the ability to tune the threshold where caching is disabled, but for now the warning will no longer be a nuisance.
References: #10896
-
[orm] [bug] Fixed issue where it was not possible to use a type (such as an enum) within a
_orm.Mapped
container type if that type were declared locally within the class body. The scope of locals used for the eval now includes that of the class body itself. In addition, the expression within_orm.Mapped
may also refer to the class name itself, if used as a string or with future annotations mode.References: #10899
-
[orm] [bug] Fixed issue where using
_orm.Session.delete()
along with the_orm.Mapper.version_id_col
feature would fail to use the correct version identifier in the case that an additional UPDATE were emitted against the target object as a result of the use of_orm.relationship.post_update
on the object. The issue is similar to #10800 just fixed in version 2.0.25 for the case of updates alone.References: #10967
-
[orm] [bug] Fixed issue where an assertion within the implementation for
_orm.with_expression()
would raise if a SQL expression that was not cacheable were used; this was a 2.0 regression since 1.4.References: #10990
examples
-
[examples] [bug] Fixed regression in history_meta example where the use of
_schema.MetaData.to_metadata()
to make a copy of the history table would also copy indexes (which is a good thing), but causing naming conflicts indexes regardless of naming scheme used for those indexes. A "_history" suffix is now added to these indexes in the same way as is achieved for the table name.References: #10920
-
[examples] [bug] Fixed the performance example scripts in examples/performance to mostly work with the Oracle database, by adding the
Identity
construct to all the tables and allowing primary generation to occur on this backend. A few of the "raw DBAPI" cases still are not compatible with Oracle.
sql
-
[sql] [bug] Fixed issues in
_sql.case()
where the logic for determining the type of the expression could result inNullType
if the last element in the "whens" had no type, or in other cases where the type could resolve toNone
. The logic has been updated to scan all given expressions so that the first non-null type is used, as well as to always ensure a type is present. Pull request courtesy David Evans.References: #10843
typing
-
[typing] [bug] Fixed the type signature for the
PoolEvents.checkin()
event to indicate that the givenDBAPIConnection
argument may beNone
in the case where the connection has been invalidated.
postgresql
-
[postgresql] [usecase] [reflection] Added support for reflection of PostgreSQL CHECK constraints marked with "NO INHERIT", setting the key
no_inherit=True
in the reflected data. Pull request courtesy Ellis Valentiner.References: #10777
-
[postgresql] [usecase] Support the
USING <method>
option for PostgreSQLCREATE TABLE
to specify the access method to use to store the contents for the new table. Pull request courtesy Edgar Ramírez-Mondragón.References: #10904
-
[postgresql] [usecase] Correctly type PostgreSQL RANGE and MULTIRANGE types as
Range[T]
andSequence[Range[T]]
. Introduced utility sequence_postgresql.MultiRange
to allow better interoperability of MULTIRANGE types.References: #9736
-
[postgresql] [usecase] Differentiate between INT4 and INT8 ranges and multi-ranges types when inferring the database type from a
_postgresql.Range
or_postgresql.MultiRange
instance, preferring INT4 if the values fit into it. -
[postgresql] [bug] [regression] Fixed regression in the asyncpg dialect caused by #10717 in release 2.0.24 where the change that now attempts to gracefully close the asyncpg connection before terminating would not fall back to
terminate()
for other potential connection-related exceptions other than a timeout error, not taking into account cases where the graceful.close()
attempt fails for other reasons such as connection errors.References: #10863
-
[postgresql] [bug] Fixed an issue regarding the use of the
Uuid
datatype with theUuid.as_uuid
parameter set to False, when using PostgreSQL dialects. ORM-optimized INSERT statements (e.g. the "insertmanyvalues" feature) would not correctly align primary key UUID values for bulk INSERT statements, resulting in errors. Similar issues were fixed for the pymssql driver as well.
mysql
-
[mysql] [bug] Fixed issue where NULL/NOT NULL would not be properly reflected from a MySQL column that also specified the VIRTUAL or STORED directives. Pull request courtesy Georg Wicke-Arndt.
References: #10850
-
[mysql] [bug] Fixed issue in asyncio dialects asyncmy and aiomysql, where their
.close()
method is apparently not a graceful close. replace with non-standard.ensure_closed()
method that's awaitable and move.close()
to the so-called "terminate" case.References: #10893
mssql
-
[mssql] [bug] Fixed an issue regarding the use of the
Uuid
datatype with theUuid.as_uuid
parameter set to False, when using the pymssql dialect. ORM-optimized INSERT statements (e.g. the "insertmanyvalues" feature) would not correctly align primary key UUID values for bulk INSERT statements, resulting in errors. Similar issues were fixed for the PostgreSQL drivers as well.
oracle
-
[oracle] [performance] [bug] Changed the default arraysize of the Oracle dialects so that the value set by the driver is used, that is 100 at the time of writing for both cx_oracle and oracledb. Previously the value was set to 50 by default. The setting of 50 could cause significant performance regressions compared to when using cx_oracle/oracledb alone to fetch many hundreds of rows over slower networks.
References: #10877
1、 SQLAlchemy-2.0.26-cp310-cp310-macosx_10_9_x86_64.whl 1.98MB
2、 SQLAlchemy-2.0.26-cp310-cp310-macosx_11_0_arm64.whl 1.97MB
3、 SQLAlchemy-2.0.26-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 2.91MB
4、 SQLAlchemy-2.0.26-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 2.92MB
5、 SQLAlchemy-2.0.26-cp310-cp310-musllinux_1_1_aarch64.whl 2.95MB
6、 SQLAlchemy-2.0.26-cp310-cp310-musllinux_1_1_x86_64.whl 2.95MB
7、 SQLAlchemy-2.0.26-cp310-cp310-win32.whl 1.95MB
8、 SQLAlchemy-2.0.26-cp310-cp310-win_amd64.whl 1.98MB
9、 SQLAlchemy-2.0.26-cp311-cp311-macosx_10_9_x86_64.whl 1.98MB
10、 SQLAlchemy-2.0.26-cp311-cp311-macosx_11_0_arm64.whl 1.98MB
11、 SQLAlchemy-2.0.26-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 3.04MB
12、 SQLAlchemy-2.0.26-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 3.04MB
13、 SQLAlchemy-2.0.26-cp311-cp311-musllinux_1_1_aarch64.whl 3.04MB
14、 SQLAlchemy-2.0.26-cp311-cp311-musllinux_1_1_x86_64.whl 3.04MB
15、 SQLAlchemy-2.0.26-cp311-cp311-win32.whl 1.95MB
16、 SQLAlchemy-2.0.26-cp311-cp311-win_amd64.whl 1.98MB
17、 SQLAlchemy-2.0.26-cp312-cp312-macosx_10_9_x86_64.whl 1.98MB
18、 SQLAlchemy-2.0.26-cp312-cp312-macosx_11_0_arm64.whl 1.97MB
19、 SQLAlchemy-2.0.26-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 3.07MB
20、 SQLAlchemy-2.0.26-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 3.08MB
21、 SQLAlchemy-2.0.26-cp312-cp312-musllinux_1_1_aarch64.whl 3.08MB
22、 SQLAlchemy-2.0.26-cp312-cp312-musllinux_1_1_x86_64.whl 3.08MB
23、 SQLAlchemy-2.0.26-cp312-cp312-win32.whl 1.95MB
24、 SQLAlchemy-2.0.26-cp312-cp312-win_amd64.whl 1.97MB
25、 SQLAlchemy-2.0.26-cp37-cp37m-macosx_10_9_x86_64.whl 1.98MB
26、 SQLAlchemy-2.0.26-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 2.83MB
27、 SQLAlchemy-2.0.26-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 2.84MB
28、 SQLAlchemy-2.0.26-cp37-cp37m-musllinux_1_1_aarch64.whl 2.85MB
29、 SQLAlchemy-2.0.26-cp37-cp37m-musllinux_1_1_x86_64.whl 2.85MB
30、 SQLAlchemy-2.0.26-cp37-cp37m-win32.whl 1.95MB
31、 SQLAlchemy-2.0.26-cp37-cp37m-win_amd64.whl 1.98MB
32、 SQLAlchemy-2.0.26-cp38-cp38-macosx_10_9_x86_64.whl 1.99MB
33、 SQLAlchemy-2.0.26-cp38-cp38-macosx_11_0_arm64.whl 1.98MB
34、 SQLAlchemy-2.0.26-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 2.93MB
35、 SQLAlchemy-2.0.26-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 2.94MB
36、 SQLAlchemy-2.0.26-cp38-cp38-musllinux_1_1_aarch64.whl 2.98MB
37、 SQLAlchemy-2.0.26-cp38-cp38-musllinux_1_1_x86_64.whl 2.98MB
38、 SQLAlchemy-2.0.26-cp38-cp38-win32.whl 1.95MB
39、 SQLAlchemy-2.0.26-cp38-cp38-win_amd64.whl 1.98MB
40、 SQLAlchemy-2.0.26-cp39-cp39-macosx_10_9_x86_64.whl 1.99MB
41、 SQLAlchemy-2.0.26-cp39-cp39-macosx_11_0_arm64.whl 1.98MB
42、 SQLAlchemy-2.0.26-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 2.92MB
43、 SQLAlchemy-2.0.26-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 2.93MB
44、 SQLAlchemy-2.0.26-cp39-cp39-musllinux_1_1_aarch64.whl 2.97MB
45、 SQLAlchemy-2.0.26-cp39-cp39-musllinux_1_1_x86_64.whl 2.97MB
46、 SQLAlchemy-2.0.26-cp39-cp39-win32.whl 1.95MB
47、 SQLAlchemy-2.0.26-cp39-cp39-win_amd64.whl 1.98MB
48、 SQLAlchemy-2.0.26-py3-none-any.whl 1.78MB