皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Sqlalchemy 2.0.46发布

Sqlalchemy 2.0.46发布

typing

  • [typing] [bug] 

    修复了 ORM 映射类和别名实体在结果行映射中不能用作键或在 SELECT 语句中不能用作连接目标的问题。诸如 row._mapping[User] 、 row._mapping[aliased(User)] 、 row._mapping[with_polymorphic(...)] (被 mypy 和 Pylance 拒绝)、 .join(aliased(User)) (被 Pylance 拒绝)的模式在运行时被记录并完全支持,但之前被类型检查器拒绝。 _KeyType 和 _FromClauseArgument 的类型定义已更新,以接受这些 ORM 实体类型。

    References: #13075  参考资料:#13075

postgresql

  • [postgresql] [bug] 

    修复了在使用较新的 PostgreSQL 驱动(如 psycopg)时,PostgreSQL JSONB 运算符 Comparator.path_match() 和 Comparator.path_exists() 在右侧操作数上应用不正确的 VARCHAR 类型转换的问题。现在这些运算符会指示右侧的类型为 JSONPATH ,目前这会导致不进行任何类型转换,但也兼容后续可能需要的显式类型转换。

    References: #13059  参考资料:#13059

  • [postgresql] [bug] 

    修复了 PostgreSQL 方言中的回归问题,其中 JSONB 订阅语法在处理返回 JSONB 的 cast() 表达式时会生成不正确的 SQL,导致语法错误。现在该方言在使用 [] 订阅语法时,会正确地将类型转换表达式括起来,生成 (CAST(...))[index] 而不是 CAST(...)[index] 以符合 PostgreSQL 的语法要求。这扩展了#12778 中的修复,该修复解决了函数调用中的相同问题。

    References: #13067  参考文献:#13067

  • [postgresql] [bug] 

    改进了 PostgreSQL 方言使用的外键反射正则表达式模式,使其在匹配标识符字符时更加宽松,允许它正确处理表名和列名中的 Unicode 字符。此更改提高了与可能在其标识符中使用不同引号模式的 PostgreSQL 变体(如 CockroachDB)的兼容性。此拉取请求由 Gord Thompson 提供。

mariadb

  • [mariadb] [bug] 

    修复了在 Sequence 上将 Sequence.cycle # 设置为 False 时,mariadb 序列“NOCYCLE”关键字应发出的 SQL 编译问题。此修复由 Diego Dupin 提供的拉取请求。

    References: #13070  参考资料:#13070

sqlite

  • [sqlite] [bug] 

    解决了在 aiosqlite 驱动器中的一个问题:由于 aiosqlite 架构在版本 0.22.0 中移动了工作线程的位置,SQLAlchemy 将 aiosqlite 的工作线程设置为“daemon”停止工作。这个“daemon”标志是必要的,以便程序能够在 SQLite 连接本身没有被显式关闭的情况下退出,这在 SQLAlchemy 中尤其可能发生,因为 SQLAlchemy 在连接池中维护 SQLite 连接。虽然调用 AsyncEngine.dispose() 在程序退出前是完全可以的,但这在历史上或技术上对任何已知后端的任何驱动器都不是必要的,因为关系数据库的主要特性是持久性。该更改还实现了在使用版本 0.22.1 或更高版本时对 aiosqlite 的“terminate”支持,该支持实现了同步 .stop() 方法。

    References: #13039  参考文献:#13039

mssql

  • [mssql] [usecase] 

    在 SQL Server 2016 (13.x) 及更高版本上删除索引时,增加了对 IF EXISTS 子句的支持。SQL Server 方言现在会尊重 DropIndex.if_exists 参数,允许在索引不存在时不会引发错误的条件性索引删除。此更改由 Edgar Ramírez Mondragón 的拉取请求提供。

    References: #13045  参考资料:#13045

转自  2.0 Changelog — SQLAlchemy 2.1 Documentation