rel_1_4_38
版本发布时间: 2022-06-24 00:26:38
sqlalchemy/sqlalchemy最新发布版本:rel_2_0_36(2024-10-16 03:41:54)
1.4.38
Released: June 23, 2022
orm
-
[orm] [bug] [regression] Fixed regression caused by #8064 where a particular check for column correspondence was made too liberal, resulting in incorrect rendering for some ORM subqueries such as those using
PropComparator.has()
orPropComparator.any()
in conjunction with joined-inheritance queries that also use legacy aliasing features.References: #8162
-
[orm] [bug] [sql] Fixed an issue where
_sql.GenerativeSelect.fetch()
would not be applied when executing a statement using the ORM.References: #8091
-
[orm] [bug] Fixed issue where a
_orm.with_loader_criteria()
option could not be pickled, as is necessary when it is carried along for propagation to lazy loaders in conjunction with a caching scheme. Currently, the only form that is supported as picklable is to pass the "where criteria" as a fixed module-level callable function that produces a SQL expression. An ad-hoc "lambda" can't be pickled, and a SQL expression object is usually not fully picklable directly.References: #8109
engine
-
[engine] [bug] Repaired a deprecation warning class decorator that was preventing key objects such as
_engine.Connection
from having a proper__weakref__
attribute, causing operations like Python standard libraryinspect.getmembers()
to fail.References: #8115
sql
-
[sql] [bug] Fixed multiple observed race conditions related to
lambda_stmt()
, including an initial "dogpile" issue when a new Python code object is initially analyzed among multiple simultaneous threads which created both a performance issue as well as some internal corruption of state. Additionally repaired observed race condition which could occur when "cloning" an expression construct that is also in the process of being compiled or otherwise accessed in a different thread due to memoized attributes altering the__dict__
while iterated, for Python versions prior to 3.10; in particular the lambda SQL construct is sensitive to this as it holds onto a single statement object persistently. The iteration has been refined to usedict.copy()
with or without an additional iteration instead.References: #8098
-
[sql] [bug] Enhanced the mechanism of
Cast
and other "wrapping" column constructs to more fully preserve a wrappedLabel
construct, including that the label name will be preserved in the.c
collection of aSubquery
. The label was already able to render in the SQL correctly on the outside of the construct which it was wrapped inside.References: #8084
-
[sql] [bug] Adjusted the fix made for #8056 which adjusted the escaping of bound parameter names with special characters such that the escaped names were translated after the SQL compilation step, which broke a published recipe on the FAQ illustrating how to merge parameter names into the string output of a compiled SQL string. The change restores the escaped names that come from
compiled.params
and adds a conditional parameter toSQLCompiler.construct_params()
namedescape_names
that defaults toTrue
, restoring the old behavior by default.References: #8113
schema
-
[schema] [bug] Fixed bugs involving the
Table.include_columns
and theTable.resolve_fks
parameters onTable
; these little-used parameters were apparently not working for columns that refer to foreign key constraints.In the first case, not-included columns that refer to foreign keys would still attempt to create a
ForeignKey
object, producing errors when attempting to resolve the columns for the foreign key constraint within reflection; foreign key constraints that refer to skipped columns are now omitted from the table reflection process in the same way as occurs forIndex
andUniqueConstraint
objects with the same conditions. No warning is produced however, as we likely want to remove the include_columns warnings for all constraints in 2.0.In the latter case, the production of table aliases or subqueries would fail on an FK related table not found despite the presence of
resolve_fks=False
; the logic has been repaired so that if a related table is not found, theForeignKey
object is still proxied to the aliased table or subquery (theseForeignKey
objects are normally used in the production of join conditions), but it is sent with a flag that it's not resolvable. The aliased table / subquery will then work normally, with the exception that it cannot be used to generate a join condition automatically, as the foreign key information is missing. This was already the behavior for such foreign key constraints produced using non-reflection methods, such as joiningTable
objects from differentMetaData
collections. -
[schema] [bug] [mssql] Fixed issue where
Table
objects that made use of IDENTITY columns with aNumeric
datatype would produce errors when attempting to reconcile the "autoincrement" column, preventing construction of theColumn
from using theColumn.autoincrement
parameter as well as emitting errors when attempting to invoke anInsert
construct.References: #8111
extensions
-
[extensions] [bug] Fixed bug in
Mutable
where pickling and unpickling of an ORM mapped instance would not correctly restore state for mappings that contained multipleMutable
-enabled attributes.References: #8133
1、 SQLAlchemy-1.4.38-cp27-cp27m-macosx_10_14_x86_64.whl 1.47MB
2、 SQLAlchemy-1.4.38-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl 1.51MB
3、 SQLAlchemy-1.4.38-cp27-cp27m-win_amd64.whl 1.48MB
4、 SQLAlchemy-1.4.38-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl 1.51MB
5、 SQLAlchemy-1.4.38-cp310-cp310-macosx_10_15_universal2.whl 1.49MB
6、 SQLAlchemy-1.4.38-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 1.52MB
9、 SQLAlchemy-1.4.38-cp310-cp310-win32.whl 1.49MB
10、 SQLAlchemy-1.4.38-cp310-cp310-win_amd64.whl 1.49MB
11、 SQLAlchemy-1.4.38-cp36-cp36m-macosx_10_14_x86_64.whl 1.47MB
12、 SQLAlchemy-1.4.38-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 1.52MB
15、 SQLAlchemy-1.4.38-cp36-cp36m-win32.whl 1.49MB
16、 SQLAlchemy-1.4.38-cp36-cp36m-win_amd64.whl 1.49MB
17、 SQLAlchemy-1.4.38-cp37-cp37m-macosx_10_15_x86_64.whl 1.47MB
18、 SQLAlchemy-1.4.38-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 1.52MB
21、 SQLAlchemy-1.4.38-cp37-cp37m-win32.whl 1.49MB
22、 SQLAlchemy-1.4.38-cp37-cp37m-win_amd64.whl 1.49MB
23、 SQLAlchemy-1.4.38-cp38-cp38-macosx_10_15_x86_64.whl 1.47MB
24、 SQLAlchemy-1.4.38-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 1.52MB
27、 SQLAlchemy-1.4.38-cp38-cp38-win32.whl 1.49MB
28、 SQLAlchemy-1.4.38-cp38-cp38-win_amd64.whl 1.49MB
29、 SQLAlchemy-1.4.38-cp39-cp39-macosx_10_15_x86_64.whl 1.47MB
30、 SQLAlchemy-1.4.38-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 1.52MB
33、 SQLAlchemy-1.4.38-cp39-cp39-win32.whl 1.49MB
34、 SQLAlchemy-1.4.38-cp39-cp39-win_amd64.whl 1.49MB