SQLAlchemy 1.4.40 发布,Python ORM 框架

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(),以便 MappingResultScalarResultAsyncResult 等结果实现能够访问该方法。

sql

  • [sql] [bug]

    调整了字符串包含函数 .contains(), .startswith(), .endswith() 的 SQL 编译,以强制使用字符串连接操作符,而不是依赖加法操作符的重载

mypy

  • [mypy] [bug]

    修正了 mypy 插件在默认使用 lambda 作为 Column 时的崩溃问题

asyncio

  • [asyncio] [bug]

    当使用 AsyncConnectionAsyncSession 作为上下文管理器时,特别是在 __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

猜你喜欢

转载自www.oschina.net/news/205960/sqlalchemy-1-4-40-released