跳转到主要内容

SQLAlchemy 0.4和0.5 Oracle驱动程序的修复

项目描述

collective.saoraclefixes

修复SQLAlchemy 0.4和0.5 Oracle引号和偏移/限制问题。

此包使用从SQLAlchemy 0.6分支的回溯对SQLAlchemy Oracle驱动程序进行猴子补丁。包括的修复有

  • 保留字。在0.6之前,没有包含Oracle特定的保留字,需要您重命名列和标签,这使得以数据库无关的方式编程变得困难。

    请注意,此包中的Oracle保留字列表是SQLAlchemy 0.6中列表的超集(至少直到SQLAlchemy branches/rel_0_6 r6245)。此包包括Oracle V$RESERVED_WORDS视图中定义的半保留标识符(请点击此处查看)

  • 绑定参数引号。使用保留字作为绑定参数需要引号。参数在生成的SQL代码中被引号引用,并且在执行过程中所有使用参数的操作都正确地使用了引号版本。

  • 限制/偏移处理。0.6引入了一种更好的方法来实现Oracle中的查询限制和偏移,遵循推荐的Oracle实践。0.4/0.5的方法可能导致排序不正确,或者当对别名列进行排序时完全失败。

    此回滚版本包括对 optimize_limits=False 语法标志的支持。有关更改的更多信息,请参阅 SQLAlchemy工单#536

使用方法:只需将此包导入即可

import collective.saoraclefixes # apply oracle fixes

请注意,只有在使用 SQLAlchemy 0.4 和 0.5 版本时,这些补丁才会生效。所有补丁活动将通过 Python 的 logger 模块以 DEBUG 级别记录。

许可证

collective.saoraclefixes 在 MIT 许可证下分发,就像 SQLAlchemy 一样。MIT 许可证链接

鸣谢

回滚工作

Martijn PietersJarn

变更日志

1.2 - 2009-08-20

  • 在 0.4 中禁用 FromClause.default_order_by;0.5 完全移除了此功能,因为它不再需要,并且会干扰 Oracle 中 rowid 的引用。

1.1 - 2009-08-12

  • 添加来自 0.6 的改进的 LIMIT/OFFSET 处理。

1.0 - 2009-08-05

  • 初始发布

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源代码分发

collective.saoraclefixes-1.2.zip (12.1 kB 查看散列)

上传时间 源代码

由以下支持