SQLAlchemy 是 Python SQL 工具箱和对象关系映射器,它为应用程序开发人员提供了 SQL 的全部功能和灵活性。它提供了一整套知名的企业级持久性模式,旨在高效、高性能地访问数据库,并被适配为一种简单的 Pythonic 域语言。
SQLAlchemy 1.4.40 版本的更新内容如下:
orm
-
[orm] [bug]
修正了在多态 SELECT 中多次引用 CTE 的问题,该问题可能导致同一 CTE 的多个 "克隆" 被构建,然后将这两个 CTE 触发为重复的。
engine
-
[engine] [usecase]
在 Core 中为
Connection实现了新的Connection.execution_options.yield_per执行选项,以反映 ORM 中可用的相同 yield_per 选项。 -
[engine] [bug]
修正了
Result中的错误,在使用Connection.execution_options.stream_results时,如果使用的 dialect 不支持明确的 "server side cursor" 设置,则不会使用缓冲的结果策略。 -
[engine] [bug]
添加了
FilterResult.yield_per(),以便MappingResult、ScalarResult和AsyncResult等结果实现能够访问该方法。
sql
-
[sql] [bug]
调整了字符串包含函数
.contains(),.startswith(),.endswith()的 SQL 编译,以强制使用字符串连接操作符,而不是依赖加法操作符的重载
mypy
-
[mypy] [bug]
修正了 mypy 插件在默认使用 lambda 作为 Column 时的崩溃问题
asyncio
-
[asyncio] [bug]
当使用
AsyncConnection或AsyncSession作为上下文管理器时,特别是在__aexit()__上下文管理器退出时,为连接和会话释放过程添加了asyncio.shield(),在上下文管理器完成后释放对象。
postgresql
-
[postgresql] [bug]
修正了 psycopg2 dialect 中的问题,即为 #4392 实现的 "多主机" 功能,可以在查询字符串中以
?host=host1:port1&host=host2:port2&host=host3:port3的形式传递多个host:port对,但没有正确实现。
misc
-
[bug] [types]
修正了在装饰
ARRAY数据类型时,TypeDecorator不能正确代理__getitem__()操作符的问题
更多详情可查看:https://docs.sqlalchemy.org/en/14/changelog/changelog_14.html#change-1.4.40