1.1换热器
1.1.18
Released: March 6, 2018postgresql
[postgresql] [bug] [py3k] ¶
修正了postgresql collate/array-adjustment中的错误,该错误在 #4006 其中,python 3.7正则表达式中的新行为导致修复失败。
References: #4208
mysql
[mysql] [bug] ¶
MySQL方言现在使用
SELECT @@version
明确地发送给服务器,以确保我们得到了正确的版本信息。像maxscale这样的代理服务器会干扰传递给dbapi的connection.server版本值的值,因此这不再可靠。References: #4205
1.1.17
Released: February 22, 2018[bug] [ext] ¶
修复了1.2.3和1.1.16中有关关联代理对象的回归,修订了 #4185 当计算关联代理的“拥有类”时,如果代理对象没有直接与映射类(如mixin)关联,则默认选择当前类。
References: #4185
1.1.16
Released: February 16, 2018orm
[orm] [bug] ¶
修复了“更新后”功能中的问题,即在父对象已被删除但依赖对象未被删除时发出更新。这个问题已经存在很长一段时间了,但是自从1.2声明了与post_更新匹配的行之后,这就产生了一个错误。
References: #4187
[orm] [bug] ¶
修复问题导致的修复回归 #4116 影响1.2.2版和1.1.15版,这会导致错误计算
AssociationProxy
作为NoneType
在某些声明性混合/继承情况下,以及如果从未映射的类访问关联代理,则为类。“找出所有者”逻辑已被一个深入的例程替换,该例程通过分配给类或子类的完整映射器层次结构进行搜索,以确定正确的(我们希望)匹配;如果找不到匹配,则不会分配所有者。如果代理用于未映射的实例,则现在会引发异常。References: #4185
[orm] [bug] ¶
修复了在嵌套或子事务回滚过程中删除的对象(该对象的主键也发生了变化)无法从会话中正确删除的错误,从而导致在使用会话时出现后续问题。
References: #4151
sql
[sql] [bug] ¶
补充
nullsfirst()
和nullslast()
作为顶级导入sqlalchemy.
和sqlalchemy.sql.
命名空间。拉取请求由Lele Gaifax提供。[sql] [bug] ¶
固定错误
Insert.values()
其中结合使用“多值”格式Column
对象作为键而不是字符串将失败。拉车请求由Aubrey Stark Toller提供。References: #4162
postgresql
[postgresql] [bug] ¶
将“ssl syscall error:operation timed out”添加到触发psycopg2驱动程序“disconnect”方案的消息列表中。拉车请求由Andr_Cruz提供。
[postgresql] [bug] ¶
在PostgreSQL方言接受的关键字列表中添加了“truncate”作为“autocommit”-触发关键字。拉扯请求由雅各布·海斯提供。
mysql
[mysql] [bug] ¶
修复了mysql“concat”和“match”操作符未能将kwarg传播到左右表达式,导致编译器选项(如“literal_binds”)失败的错误。
References: #4136
misc
[bug] [pool] ¶
修复了一个相当严重的连接池错误,其中用户定义的连接刷新后获得的连接
DisconnectionError
或者,由于1.2发布的“pre-pung”功能,如果通过weakref cleanup将连接返回到池中(例如,前向对象被垃圾收集),则无法正确重置;weakref仍将引用以前无效的dbapi连接,而该连接将错误地调用重置操作。这将导致日志中的堆栈跟踪和在不重置的情况下签入池的连接,这可能导致锁定问题。References: #4184
1.1.15
Released: November 3, 2017orm
[orm] [bug] [ext] ¶
修正了关联代理无意中链接到
AliasedClass
对象,如果首先使用AliasedClass
作为父级,在后续使用时导致错误。References: #4116
[orm] [bug] ¶
修复了ORM关系警告继承层次结构中的兄弟类发生冲突的同步目标(例如,两个关系都将写入同一列)的错误,因为这两个关系在写入期间实际上不会发生冲突。
References: #4078
[orm] [bug] ¶
修复了针对单个表继承实体使用的相关select在外部查询中无法正确呈现的错误,因为对单个继承鉴别器条件的调整不适当地将条件重新应用到外部查询。
References: #4103
orm declarative
[orm] [declarative] [bug] ¶
修复了一个缺陷,其中描述符位于基于
AbstractConcreteBase
在刷新操作期间被引用,导致错误,因为属性未映射为映射器属性。对于其他属性(如由添加的“type”列),也可能出现类似的问题。AbstractConcreteBase
但是,如果类未能在其映射器中包含“concrete=true”,则此处的检查也应防止该场景导致问题。References: #4124
sql
[sql] [bug] ¶
固定错误在哪里
__repr__
属于ColumnDefault
如果参数是元组,则会失败。拉车请求,由Nicolas Caniart提供。References: #4126
[sql] [bug] ¶
修复了最近添加的错误
ColumnOperators.any_()
和ColumnOperators.all_()
方法作为方法调用时无法工作,而不是使用独立函数any_()
和all_()
. 还为这些相对非抽象的SQL运算符添加了文档示例。References: #4093
postgresql
[postgresql] [bug] ¶
对
ARRAY
与collate结合使用的类,如 #4006 无法容纳多维数组。References: #4006
[postgresql] [bug] ¶
固定错误
array_agg
传递已为类型的参数的函数ARRAY
如PostgreSQLarray
构造,将生成ValueError
,因为函数试图嵌套数组。References: #4107
[postgresql] [bug] ¶
修复了PostgreSQL中的错误
Insert.on_conflict_do_update()
这将阻止INSERT语句用作CTE,例如VIAInsert.cte()
在另一个语句中。References: #4074
mysql
[mysql] [bug] ¶
当检测到Mariadb 10.2.8或10.2系列中的更早版本时发出警告,因为在这些版本中存在检查约束的主要问题,这些问题已在10.2.9版本中解决。
请注意,此changelog消息不是用sqlacalchemy 1.2.0b3发布的,并且是逆向添加的。
References: #4097
[mysql] [bug] ¶
MySQL5.7.20现在警告使用@tx_隔离变量;现在执行版本检查并使用@transaction_隔离来防止此警告。
References: #4120
[mysql] [bug] ¶
修正了当前的时间戳在MariaDB 10.2系列中由于语法变化而不能正确反映的问题,其中函数现在表示为
current_timestamp()
.References: #4096
[mysql] [bug] ¶
MariaDB 10.2现在支持CHECK约束(警告:由于 #4097 ). 现在,当这些检查约束出现在
SHOW CREATE TABLE
输出。References: #4098
sqlite
mssql
[mssql] [bug] ¶
为SQL Server的pyodbc方言添加了完整的“连接关闭”异常代码,包括“08S01”、“01002”、“08003”、“08007”、“08S02”、“08001”、“hyt00”、“hy010”。以前,只涉及“08S01”。
References: #4095
1.1.14
Released: September 5, 2017orm
[orm] [bug] ¶
固定错误
Session.merge()
沿着类似于 #4030 ,如果在合并例程实际检索对象之前立即对目标对象进行垃圾收集,则对标识映射中的目标对象进行内部检查可能会导致错误。References: #4069
[orm] [bug] ¶
修复了一个
undefer_group()
如果该选项从使用联接的预加载进行加载的关系扩展,则无法识别该选项。此外,由于错误导致执行的工作量过大,在结果集列的初始计算中,python函数调用计数也提高了20%,补充了 #3915 .References: #4048
[orm] [bug] ¶
ORM标识映射中的固定争用条件,这将导致在加载操作期间不适当地删除对象,从而导致重复的对象标识发生,特别是在涉及对象重复数据消除的联合的热切加载下。这个问题专门针对弱引用的垃圾收集,并且只在Pypy解释器下观察到。
References: #4068
[orm] [bug] ¶
固定错误
Session.merge()
其中集合中主键属性设置为的对象None
对于通常是自动增量的密钥,将被视为内部重复数据消除过程的一部分的数据库持久化密钥,导致只有一个对象实际插入到数据库中。References: #4056
[orm] [bug] ¶
安
InvalidRequestError
当asynonym()
用于不针对MapperProperty
,例如关联代理。以前,如果试图定位不存在的属性,就会发生递归溢出。References: #4067
sql
[sql] [bug] ¶
修改了窗口函数的范围规范,允许范围左侧为正,右侧为负,例如(1,3)为“1 following and 3 following”,从而允许范围内的两个相同的前导或后导关键字。
References: #4053
1.1.13
Released: August 3, 2017oracle
[oracle] [bug] [performance] [py2k] ¶
修正导致的固定性能回归 #3937 其中,从5.3版开始的cx_Oracle删除了
.UNICODE
名称空间中的符号,该符号被解释为cx_oracle的“with_unicode”模式被无条件打开,它调用sqlAlchemy端的函数,该函数无条件地将所有字符串转换为unicode并造成性能影响。事实上,根据cx-oracle的作者,从5.1开始,“with-unicode”模式已经被完全删除,因此,如果在python 2下检测到cx-oracle 5.1或更高版本,则不再需要昂贵的unicode转换函数,并且禁用这些函数。在下删除的针对“with_unicode”模式的警告 #3937 也会恢复。This change is also backported to: 1.0.19
References: #4035
1.1.12
Released: July 24, 2017orm
[orm] [bug] ¶
修正了从1.1.11开始的回归,其中向包含具有子查询加载关系的实体的查询中添加额外的非实体列将失败,因为1.1.11中添加的检查是由于 #4011 .
References: #4033
[orm] [bug] ¶
修正了1.1中添加的JSON空评估逻辑作为 #3514 如果逻辑不支持与
Column
那是地图。References: #4031
[orm] [bug] ¶
补充
KeyError
检查中的所有方法WeakInstanceDict
哪里有支票key in dict
然后是对该键的索引访问,以防止垃圾收集争用,因为在加载时,在代码假定该键存在后,可以从dict中删除该键,从而导致非常罕见的KeyError
加薪。References: #4030
oracle
[oracle] [feature] [postgresql] ¶
添加新关键字
Sequence.cache
和Sequence.order
到Sequence
,以允许呈现Oracle和PostgreSQL理解的缓存参数,以及Oracle理解的顺序参数。拉车请求由David Moore提供。
misc
[bug] [py3k] [tests] ¶
修复了测试夹具中的问题,该问题与自python 3.6.2起涉及上下文管理器的更改不兼容。
This change is also backported to: 1.0.18
References: #4034
1.1.11
Released: Monday, June 19, 2017orm
[orm] [bug] ¶
修复了子查询抢先加载的问题,该问题从中修复的一系列问题继续进行。 #2699 , #3106 , #3893 包括“子查询”在从联接的继承子类开始时包含正确的FROM子句,然后子查询从基类预先加载到关系,而查询还包含针对子类的条件。以前的通知单中的修复不适用于从第一级更深入地加载的附加子查询加载操作,因此该修复已被进一步推广。
References: #4011
sql
[sql] [bug] ¶
修复了在
WithinGroup
在结构迭代期间构造。References: #4012
postgresql
[postgresql] [bug] ¶
继续修复1.1.8中发布的正确处理PostgreSQL版本字符串“10devel”,额外的regexp bump处理形式为“10beta1”的版本字符串。虽然PostgreSQL现在提供了更好的方法来获取这些信息,但是我们坚持使用regexp至少1.1.x,以尽可能减少与旧版或备用PostgreSQL数据库兼容的风险。
References: #4005
[postgresql] [bug] ¶
修复了使用中的错误
ARRAY
对于具有排序规则功能的字符串类型,排序规则将无法在创建表中生成正确的语法。References: #4006
mysql
[mysql] [bug] ¶
MySQL5.7已经为“show variables”命令引入了权限限制;现在,当show不返回行时,MySQL方言将处理,特别是对于SQL_模式的初始提取,并且将发出一条警告,提示用户权限应该修改,以允许该行出现。
References: #4007
mssql
[mssql] [bug] ¶
修复了使用Azure数据仓库时必须从其他视图提取SQL Server事务隔离的错误,现在对这两个视图都尝试查询,如果失败继续提供对新SQL Server版本中未来任意API更改的最佳恢复能力,则无条件地引发NotImplemented。
References: #3994
[mssql] [bug] ¶
添加了占位符类型
XML
到SQL Server方言,以便将包含此类型的反射表重新呈现为创建表。该类型没有特殊的往返行为,当前也不支持其他限定参数。References: #3973
oracle
[oracle] [bug] ¶
当使用6.0b1或更高版本的dbapi时,对两阶段事务的支持已完全删除。在任何情况下,两阶段功能在cx_Oracle 5.x下都不可用,cx_Oracle 6.x删除了此功能所依赖的连接级别“two phase”标志。
References: #3997
1.1.10
Released: Friday, May 19, 2017orm
[orm] [bug] ¶
修复了级联(如“删除孤立对象”(也包括其他对象)将无法定位链接到关系的对象,而该关系本身是继承关系中子类的本地关系,从而导致操作无法进行的错误。
References: #3986
schema
[schema] [bug] ¶
安
ArgumentError
如果一个ForeignKeyConstraint
对象是用不匹配的“本地”列和“远程”列创建的,否则会导致约束的内部状态不正确。注意,这也会影响方言的反射过程为外键约束生成一组不匹配的列的条件。References: #3949
postgresql
[postgresql] [bug] ¶
为grant、revoke关键字添加了“autocommit”支持。拉扯请求由雅各布·海斯提供。
mysql
[mysql] [bug] ¶
删除了一个古老且不必要的对UTC时间戳mysql函数的截取,这妨碍了它与参数一起使用。
References: #3966
[mysql] [bug] ¶
修复了MySQL方言中在呈现创建表时与分区选项一起呈现表选项的错误。与分区相关的选项需要遵循表选项,而以前没有强制执行此顺序。
References: #3961
oracle
[oracle] [bug] ¶
修正了cx_-oracle方言中的错误,cx_-oracle 6.0b1版的版本字符串解析将因“b”字符而失败。版本字符串解析现在通过regexp而不是简单的拆分。
References: #3975
misc
[bug] [ext] ¶
在声明性类被垃圾收集并且新的automap prepare()操作同时进行的情况下,防止将“none”作为类进行测试,很少碰到在GC之后没有完全执行的weakref。
References: #3980
1.1.9
Released: April 4, 2017sql
[sql] [bug] ¶
由于 #3859 其中对表达式的“右侧”评估的调整基于
Variant
为了遵守底层类型的“右侧”规则,导致Variant
在这种情况下,当我们 do 希望将左侧类型直接传输到右侧,以便可以将绑定级别规则应用于表达式的参数。References: #3952
[sql] [bug] [postgresql] ¶
改变了
ResultProxy
无条件地延迟“自动关闭”步骤,直到Connection
对对象执行;如果postgresql on conflict with returning不返回任何行,则在以前不存在的用例中会发生autoclose,导致插入/更新/删除时无条件发生的常规autocommit行为失败。References: #3955
misc
[bug] [ext] ¶
由于 #3950 在“模式类型”或
TypeDecorator
如果映射还包含column_property
.References: #3956
1.1.8
Released: March 31, 2017postgresql
[postgresql] [bug] ¶
增加了对“PostgreSQL 10devel”等开发版本的PostgreSQL版本字符串解析的支持。请示肖恩·麦卡利。
misc
[bug] [ext] ¶
固定错误
sqlalchemy.ext.mutable
何处Mutable.as_mutable()
方法不会跟踪已使用TypeEngine.copy()
. 与1.0相比,这在1.1中更像是回归,因为TypeDecorator
类现在是的子类SchemaEventTarget
其中一件事向父母表明Column
当Column
是。在混合类或抽象类中使用声明性时,这些副本很常见。References: #3950
[bug] [ext] ¶
增加了对绑定参数的支持,例如通常通过
Query.params()
,到Result.count()
方法。以前,对参数的支持被省略了。拉请求由帕特·迪根提供。
1.1.7
Released: March 27, 2017orm
[orm] [feature] ¶
安
aliased()
现在可以将构造传递给Query.select_entity_from()
方法。实体将从由aliased()
构建。这允许特殊选项aliased()
如aliased.adapt_on_names
配合使用Query.select_entity_from()
.References: #3933
[orm] [bug] ¶
修正了由于通过 #3915 . 内部集合
Column
对象可以在别名对象上不适当地重新生成,当它试图呈现SQL和收集结果并导致属性错误时,会混淆连接的热切加载程序。现在,在别名对象被缓存并在线程之间共享之前,将预先生成集合。References: #3947
engine
[engine] [bug] ¶
添加了一个异常处理程序,当的“autorollback”功能
Connection
它本身引发了一个异常。在py3k中,解释器自然会报告这两个异常,一个发生在处理另一个异常的过程中。这将继续回滚失败处理的一系列更改,这些更改是作为 #2696 1.0.12。References: #3946
sql
[sql] [bug] [postgresql] ¶
增加了对
Variant
以及SchemaType
相互兼容的对象。也就是说,可以针对类似Enum
,以及创建约束和/或数据库特定类型对象的说明将根据变量的方言映射正确传播。References: #2892
[sql] [bug] ¶
修复了编译器中的错误,其中保存点的字符串标识符将缓存在标识符引用字典中;由于这些标识符是任意的,因此如果单个标识符
Connection
使用了无限数量的保存点,以及如果savepoint子句构造直接与无限数量的保存点名称一起使用。内存泄漏会 not 影响绝大多数案例,通常Connection
它以一个以“1”开头的简单计数器呈现保存点名称,在被丢弃之前,在每个事务或每个固定事务数的基础上使用。References: #3931
[sql] [bug] ¶
修复了新的“模式转换”功能中的错误,在该功能中,转换后的模式名称将在与列表达式一起呈现时以别名的形式调用;仅当源转换名称为“无”时才发生。“模式转换”功能现在只对
SchemaItem
和SchemaType
子类,即对应于数据库中DDL可创建结构的对象。References: #3924
oracle
[oracle] [bug] ¶
cx_oracle 5.3现在似乎在构建中硬编码此标志,这一事实揭示了cx_oracle使用unicode模式对cx_oracle的修复;使用此模式的内部方法没有使用正确的签名。
This change is also backported to: 1.0.18
References: #3937
1.1.6
Released: February 28, 2017orm
[orm] [bug] ¶
解决了自早期版本以来,由于抽象的增加而积累起来的联合的热切装载器查询构造系统中的一些长期无人值守的性能问题。特设的使用
AliasedClass
每个查询的对象每次都会产生大量的列查找开销,已被缓存方法所取代,该方法利用AliasedClass
在联接的预加载调用之间重用的对象。并对一些涉及到急连路径构造的力学问题进行了优化。端到端查询构造+具有最坏情况的联合加载器方案的单行提取测试的调用计数已减少约60%,与0.8.6相比减少了1.1.5%和42%。References: #3915
[orm] [bug] ¶
修正了“急用默认值”功能中的一个主要低效性,即当ORM显式地插入了空值的列值(对应于对象上未设置但未指定任何服务器默认值的属性)以及更新时过期的属性(尽管没有服务器ONUP),将发出不必要的选择。设置日期。由于这些列不是热心的默认值尝试使用的返回的一部分,因此它们也不应该被后置选择。
References: #3909
[orm] [bug] ¶
修复了两个密切相关的bug,包括映射器的eager-eager-defaults标志和单表继承;一个bug中的eager-defaults逻辑会无意中尝试访问映射器的“exclude-properties”列表(由eager-defaults获取期间的单表继承声明性使用)的一部分的列,另一个bug如果为了获取默认值而完全加载行,将无法使用正确的继承映射器。
References: #3908
[orm] [bug] ¶
修正了0.9.7中由于 #3106 这将导致在某些形式的多级子查询中针对别名实体加载不正确的查询,在最里面的子查询中包含不必要的额外FROM实体。
References: #3893
orm declarative
[orm] [declarative] [bug] ¶
修复了声明性的“自动排除”功能(确保单个表继承子类的局部列不作为基的其他派生上的属性出现)在基的多个子类中不会生效的错误。
References: #3895
sql
[sql] [bug] ¶
修正了
DDLEvents.column_reflect()
事件不允许将非文本表达式作为新列的“默认”值传递,例如FetchedValue
对象以指示一般触发的默认值或text()
构建。澄清了这方面的文件。References: #3905
postgresql
[postgresql] [bug] ¶
为“import foreign schema”、“refresh materialized view”postgresql语句添加了正则表达式,以便它们在通过连接或引擎调用时自动提交,而不需要显式事务。拉请求由Frazer McLean和Pawe_Stiasny提供。
References: #3804
[postgresql] [bug] ¶
修复了PostgreSQL中的错误
ExcludeConstraint
其中“whereclause”和“using”参数在以下操作期间不会被复制Table.tometadata()
.References: #3900
mysql
[mysql] [bug] ¶
在mysql方言中添加了新的mysql 8.0保留字,以便正确引用。拉车请求由汉诺施利钦提供。
mssql
[mssql] [bug] ¶
向“get-isolation-level”功能添加了版本检查,该功能在第一次连接时调用,以便跳过SQL Server 2000版,因为在SQL Server 2005之前所需的系统视图不可用。
References: #3898
misc
[feature] [ext] ¶
补充
Result.scalar()
和Result.count()
到“烘焙”查询系统。References: #3896
[bug] [ext] ¶
修正了新的错误
sqlalchemy.ext.indexable
属性本身引用另一个属性的设置将失败的扩展。References: #3901
1.1.5
Released: January 17, 2017orm
[orm] [bug] ¶
修复了在使用多态继承时,涉及对多个实体进行联合的热切加载的错误,这将引发“nonetype”对象没有属性“isa”。该问题由修复程序引入 #3611 .
This change is also backported to: 1.0.17
References: #3884
[orm] [bug] ¶
修复了在子查询加载中遇到的作为“现有”行的对象(例如,已从同一查询中的其他路径加载)的错误,不会为指定此加载的已卸载属性调用子查询加载程序。这个问题与 #3431 , #3811 这涉及到类似的问题与联合加载。
References: #3854
[orm] [bug] ¶
这个
Session.no_autoflush
上下文管理器现在确保在“finally”块中重置autoflush标志,这样,如果在块中引发异常,状态仍然会适当地重置。拉请求,由Emin Arakelian提供。[orm] [bug] ¶
修复了单表继承查询条件在
Bundle
结构被用作选择标准。References: #3874
[orm] [bug] ¶
修复了与 #3177 ,其中由
Query
将对联合外部应用“单一继承”条件(也引用错误的可选项),即使现在预期该条件已存在于内部子查询中。一旦对union()或另一个set操作调用,则现在将忽略单个继承条件。Query
以同样的方式Query.from_self()
.References: #3856
examples
[examples] [bug] ¶
修复了版本化的_history示例的两个问题,一个问题是history表现在获得autoincrement=false,以避免1.1中有关具有autoincrement的复合主键的新错误;另一个问题是sqlite_autoincrement标志现在用于确保在sqlite上,即使某些行删除。拉车请求由卡洛斯·加克·蒙托罗提供。
References: #3872
engine
[engine] [bug] ¶
“扩展现有”选项
Table
如果参数被用于MetaData.reflect()
(正如automap扩展所做的那样),因为表既反映在外键路径中,也直接反映在外键路径中。在MetaData.reflect()
以这种方式防止双重反射。References: #3861
sql
[sql] [bug] ¶
修正了0.9中最初引入的错误,通过 #1068 其中order_by(<some label()>)将仅基于名称按标签名称排序,也就是说,即使标签表达式与可选表达式中的其他表达式完全不同,也会隐式或显式地存在。按标签排序的逻辑现在确保了标签表达式与在按标签名称排序之前解析为该名称的表达式相关;此外,该名称必须解析为其他表达式中显式的实际标签,而不仅仅是列名称。这个逻辑被小心地与ORDERBY(文本名称)功能分开,它的目的稍有不同。
References: #3882
[sql] [bug] ¶
修正了1.1回归,其中由于拼写错误,“import*”不能用于sqlacalchemy.sql.expression
any_
和all_
功能。References: #3878
[sql] [bug] ¶
嵌入在中“无法反映”的异常中的引擎URL
MetaData.reflect()
现在隐藏密码;同时__repr__
对于TLEngine
现在表现得像Engine
,隐藏URL密码。拉请求礼遇瓦莱里云丁。[sql] [bug] ¶
固定问题
Variant
其中“右手胁迫”逻辑,继承自TypeDecorator
会迫使右手进入Variant
而不是Variant
会的。在情况下Variant
,我们希望类型的行为主要类似于基类型,因此TypeDecorator
现在被重写以返回到底层包装类型的逻辑。目前主要与JSON相关。References: #3859
[sql] [bg] ¶
修复了文本绑定编译器标志的错误。
Insert
构造“多值”功能;随后的值现在呈现为文本。References: #3880
postgresql
[postgresql] [bug] ¶
修复了新的“冲突时进行更新”功能中的错误,在该功能中,update子句的“set”值将不受类型级别处理的影响,因为通常会同时处理用户定义的类型级别转换和方言所需的转换,如JSON数据类型所需的转换。此外,还澄清了
set_
字典应匹配列的“key”,如果与列名称不同。对与列键不匹配的其余列名称发出警告;出于兼容性原因,这些列名称将像以前一样发出。References: #3888
[postgresql] [bug] ¶
这个
TIME
和TIMESTAMP
数据类型现在支持为“precision”设置零;以前的零将被忽略。拉请求由IONU CIOC RLAN提供。
mysql
[mysql] [feature] ¶
添加了一个新参数
mysql_prefix
支持Index
构造,允许指定特定于mysql的前缀,如“fulltext”。拉车请求,由Joseph Schorr提供。[mysql] [bug] ¶
当反射列上有一个“comment”关键字时,MySQL方言现在不会发出警告,但是请注意,注释还没有反映出来;这是未来版本的路线图。拉式请求,由Lele Long提供。
References: #3867
mssql
[mssql] [bug] ¶
修复了SQL Server方言试图从select中为insert选择最后一行标识的错误,在select没有行的情况下失败。对于这样的语句,inline标志设置为true,表示不应提取最后一个主键。
References: #3876
oracle
[oracle] [bug] [postgresql] ¶
修复了在源表包含自动递增序列的select中插入操作无法正确编译的错误。
References: #3877
[oracle] [bug] ¶
修正了Oracle9.2上所有表查询中使用“compression”关键字的错误;尽管9i中引入了Oracle Docs状态表压缩,但实际列直到10.1才出现。
References: #3875
firebird
[firebird] [bug] ¶
将Oracle引用的小写名称的修复移植到Firebird,以便能够正确反映以小写形式引用的表名,包括当表名来自get_table_names()inspection函数时。
References: #3548
misc
[bug] [py3k] ¶
修复了与转义字符串相关的、不带“r”修饰符的python 3.6拒绝警告,并为python 3.6增加了测试覆盖率。
This change is also backported to: 1.0.17
References: #3886
1.1.4
Released: November 15, 2016orm
[orm] [bug] ¶
固定错误
Session.bulk_update_mappings()
其中,备用的已命名主键属性无法正确跟踪到UPDATE语句中。This change is also backported to: 1.0.16
References: #3849
[orm] [bug] ¶
固定错误
Session.bulk_save()
如果更新无法与实现版本ID计数器的映射一起正常工作。This change is also backported to: 1.0.16
References: #3781
[orm] [bug] ¶
修正了错误
Mapper.attrs
,Mapper.all_orm_descriptors
当首次调用这些访问器后,将映射器属性或其他ORM构造添加到映射器/类中时,其他派生属性将无法刷新。This change is also backported to: 1.0.16
References: #3778
[orm] [bug] ¶
由于以下原因,集合中的固定回归 #3457 因此,在pickle或deepcopy期间反序列化将无法建立ORM集合的所有属性,从而导致进一步的突变操作失败。
References: #3852
[orm] [bug] ¶
修复了长期存在的错误,其中“无加载”关系加载策略将导致backrefs和/或back_填充选项被忽略。
References: #3845
engine
[engine] [bug] ¶
已从中删除长时间中断的“default_schema_name()”方法
Connection
. 这种方法是从一个非常旧的版本中遗留下来的,并且不起作用(例如会提高)。拉请求提供本杰明·多普林格。
sql
[sql] [bug] ¶
修复了插入时新添加的主键警告而不使用自动增量设置的错误(请参见 这个 .autoincrement 不再为复合主键列隐式启用指令 )在对小写进行调用时无法正确发出
table()
构造。References: #3842
postgresql
[postgresql] [bug] ¶
修正回归 #3807 (版本1.1.0),其中我们确保在postgresql's on conflict的do update部分的where子句中限定了tablename,但是 不能 将表名放在实际ON冲突本身的WHERE子句中。这是一个错误的假设,因此在 #3807 回滚。
mysql
[mysql] [feature] ¶
为mysqlclient和pymysql方言添加了对服务器端游标的支持。此功能可通过
Connection.execution_options.stream_results
标志以及server_side_cursors=True
方言论点与postgresql上psycopg2的相同。拉请求由罗马波多利亚卡提供。[mysql] [bug] ¶
MySQL的本机枚举类型支持发送的任何无效值,响应时将返回一个空字符串。在EnUM的MySQL实现中添加了一个硬编码规则来检查“返回空白字符串”,以便将该空白字符串返回给应用程序,而不是被拒绝为非有效值。请注意,如果MySQL枚举将值链接到对象,则仍会返回空白字符串。
References: #3841
sqlite
[sqlite] [bug] ¶
在pysqlcipher方言的pragma指令中添加引号,以适当地支持附加的密码参数。拉车请求由Kevin Jurczyk提供。
[sqlite] [bug] [py3k] ¶
使用pysqlcipher方言时,为pysqlcipher3 dbapi添加了可选导入。如果仅python-2的pysqlcipher dbapi不存在,则将尝试导入此包。拉车请求由Kevin Jurczyk提供。
mssql
[mssql] [bug] ¶
修正了pyodbc方言(以及大多数不工作的adodbapi方言)中的错误,即密码或用户名字段中存在的分号可以解释为另一个令牌的分隔符;当存在分号时,这些值现在被引用。
This change is also backported to: 1.0.16
References: #3762
1.1.3
Released: October 27, 2016orm
[orm] [bug] ¶
固定回归 #2677 据此调用
Session.delete()
对于在该会话中已刷新为已删除的对象,将无法在标识映射中设置该对象(或拒绝该对象),从而导致刷新错误,因为该对象处于工作单元不适应的状态。在这种情况下,已还原1.1之前的行为,即将对象放回标识映射中,以便再次尝试DELETE语句,这将发出警告,指出预期行数不匹配(除非在会话外部还原该行)。References: #3839
[orm] [bug] ¶
固定回归式
Query
方法如Query.update()
其他人会失败,如果Query
是针对一系列映射列,而不是整个映射实体。References: #3836
sql
[sql] [bug] ¶
修复了在
Enum
因此,在字符串串联中使用枚举对象将保持Enum
类型作为表达式的整体类型,生成缺少的查找。字符串连接到Enum
-类型化列现在使用String
作为表达式本身的数据类型。References: #3833
[sql] [bug] ¶
作为副作用的固定回归 #2919 在用户定义的较不典型的情况下,
TypeDecorator
这本身也是SchemaType
(而不是这样的实现)将导致跳过类型本身的列附件事件。References: #3832
postgresql
[postgresql] [bug] ¶
PostgreSQL表反射将确保
Column.autoincrement
当反射的主键列不是Integer
数据类型,即使默认值与整数生成序列相关。如果列被创建为序列并且数据类型被更改,则可能发生这种情况。只有当1.1系列中的数据类型具有整数相关性时,autoincrement标志才能为true。References: #3835
1.1.2
Released: October 17, 2016orm
[orm] [bug] ¶
修正了在一个多对一的懒惰加载程序的另一侧禁用一个联合集合的渴望加载程序的规则的错误,首先添加到 #1495 ,如果父对象具有与之关联的其他Lazyloader绑定查询选项,则规则将失败。
References: #3824
[orm] [bug] ¶
固定的自引用实体,延迟的列加载问题与 #3431 , #3811 如果一个实体由于自引用的预先加载而在行中的多个位置上存在;当延迟加载程序只应用于其中一个路径时,“当前”列加载程序现在将覆盖该实体的延迟非加载,而不考虑行顺序。
References: #3822
sql
[sql] [bug] ¶
修复了由执行SQL的“wrap callable”函数的新添加函数引起的回归
DefaultGenerator
对象,为引发属性错误__module__
当默认的可调用项是functools.partial
或其他没有__module__
属性。References: #3823
[sql] [bug] [postgresql] ¶
固定回归
Enum
在复制类型对象的情况下,由于作为 #3250 . 这种复制通常发生在复制列的情况下,例如在tometata()中,或者在对列使用声明性混合时。不存在的事件处理程序将影响为非本机枚举类型创建的约束,但更为关键的是PostgreSQL后端的枚举对象。References: #3827
postgresql
[postgresql] [bug] [sql] ¶
更改了为多值insert语句生成绑定参数时使用的命名约定,这样编号的参数名称就不会与where子句的匿名参数冲突,就像postgresql on conflict构造中常见的那样。
References: #3828
1.1.1
Released: October 7, 2016mssql
[mssql] [bug] ¶
添加的“select serverproperty”查询 #3810 和 #3814 在pyodbc和SQL Server的未知组合上失败。虽然预期此函数会失败,但异常捕获不够广泛,因此它现在捕获所有形式的pyodbc.error。
References: #3820
misc
[bug] [core] ¶
已将在检测到各种缺少主键的情况时引发的编译器错误更改为警告。语句将再次传递到数据库,在那里它将失败,DBAPI错误(通常是整合性错误)照常出现。
参见
这个 .autoincrement 不再为复合主键列隐式启用指令
References: #3216
1.1.0
Released: October 5, 2016orm
[orm] [feature] ¶
增强了新的“提升”懒惰加载程序策略,还包括“提升”SQL变体,可通过
relationship.lazy
以及raiseload()
. 此变量仅在惰性加载实际会发出SQL时引发,而在完全调用惰性加载机制时引发。References: #3812
[orm] [feature] ¶
这个
Query.group_by()
如果参数为None
以同样的方式通过Query.order_by()
已经工作很长时间了。拉取请求由Iuri Diniz提供。[orm] [change] ¶
将false传递给
Query.order_by()
为了取消所有ORDER BY,已弃用;用FALSE或NONE调用此方法之间不再存在任何差异。[orm] [bug] ¶
修正了对于一个多态加载的映射器来说,连接的预加载将失败,在这个映射器中,多态性被设置为一个未映射的表达式,如case表达式。
This change is also backported to: 1.0.16
References: #3800
[orm] [bug] ¶
修复了为通过发送到会话的无效绑定引发参数错误的错误。
Session.bind_mapper()
,Session.bind_table()
,否则将无法正确引发构造函数。This change is also backported to: 1.0.16
References: #3798
[orm] [bug] ¶
修复了子查询预加载中的错误,即“of_type()”对象的子查询加载链接到普通映射类的第二个子查询加载,或多个“of_type()”属性的较长链,将无法正确链接联接。
This change is also backported to: 1.0.15
[orm] [bug] ¶
现在可以为ORM属性分配任何具有
__clause_element__()
属性,这将导致内联SQLClauseElement
类是。这包括其他未被进一步表达式构造转换的映射属性。References: #3802
[orm] [bug] ¶
对年首次引入的错误修复进行了调整。 [门票:3431] 这涉及一个对象出现在单个结果集中的多个上下文中,这样一个将相关对象值设置为“无”的渴望加载程序仍将触发,从而满足该属性的负载。以前,调整只处理第二行中迫切加载的属性的非无值。
References: #3811
[orm] [bug] ¶
修正了新的错误
SessionEvents.persistent_to_deleted()
事件,在该事件被激发之前,可以对目标对象进行垃圾收集。References: #3808
[orm] [bug] ¶
一个
relationship()
构造现在可以包含bindparam()
包含可调用函数以生成值的对象。以前,lazy loader策略与此用法不兼容,另外,如果主键与绑定参数有关,则无法正确检测是否应使用“use-get”条件。References: #3767
[orm] [bug] ¶
如果目标数据库支持返回以提供新值,或者如果pk值设置为“自身”,以转发列上的其他触发器/onUpdate,则ORM刷新进程发出的更新现在可以为对象主键内的列提供SQL表达式元素。
References: #3801
[orm] [bug] ¶
修正了这样一个错误:如果关系的primaryjoin有多个子句,并且这些子句与每个子句中比较的主键列的顺序不同,那么允许从标识映射中使用get()的延迟加载的“简单多对一”条件将无法被调用。对于复合外键,如果引用端的表绑定列在.c集合中的顺序与被引用端的主键列的顺序不相同,则会出现这种顺序差异……如果使用声明性混合和/或声明的_Attr来设置列,则会出现很多这种情况。
References: #3788
[orm] [bug] ¶
当两个
@validates
映射上的装饰器使用相同的名称。一次只支持一个特定名称的验证器,没有将它们链接在一起的机制,因为函数修饰器级别的验证器的顺序不能确定。参见
References: #3776
[orm] [bug] ¶
在期间引发的映射器错误
configure_mappers()
现在在异常消息中显式地包含源映射器的名称,以帮助在包装的异常本身不包括源映射器的情况下。拉请求礼遇约翰·帕金斯。
orm declarative
[orm] [declarative] [change] ¶
构造从另一个类继承的声明性基类也将继承其docstring。这意味着
as_declarative()
更像一个普通的类修饰器。
sql
[sql] [bug] ¶
固定错误
Table
其中内部方法_reset_exported()
会损坏对象的状态。此方法适用于可选对象,在某些情况下由ORM调用;错误的映射器配置可能导致ORM在Table
对象。This change is also backported to: 1.0.15
References: #3755
[sql] [bug] ¶
执行选项现在可以在编译时从语句内传播到最外面的语句,这样,如果嵌入元素希望将“autocommit”设置为true,例如,它可以将其传播到封闭语句。目前,此功能是为嵌入在select语句中的面向DML的CTE启用的,例如,在select语句中插入/更新/删除。
References: #3805
[sql] [bug] ¶
作为列默认值通过
Column.server_default
参数现在被转义为引号。参见
References: #3809
[sql] [bug] [postgresql] ¶
PostgreSQL使用添加的编译器级标志来放置额外的括号,而不是通常由涉及JSON、hstore索引运算符的操作及其操作数的优先规则生成的,因为观察到PostgreSQL对hstore索引运算符的优先规则的匹配不一致9.4和9.5之间。
References: #3806
[sql] [bug] [mysql] ¶
这个
BaseException
异常类现在被Connection
,包括ConnectionEvents.handle_error()
事件。这个Connection
现在是 失效的 如果系统级异常不是Exception
包括KeyboardInterrupt
还有格林莱特GreenletExit
类,以防止在处于未知且可能已损坏状态的数据库连接上发生进一步的操作。mysql驱动程序是这个变更最主要的目标,但是这个变更跨越了所有dbapis。参见
引擎现在使连接失效,运行baseexception的错误处理程序
References: #3803
[sql] [bug] ¶
“eq”和“ne”操作符不再是“关联”操作符列表的一部分,而它们仍然被认为是“交换的”。这允许类似
(x == y) == z
在SQL级别用括号维护。拉请求由约翰·帕萨罗提供。References: #3799
[sql] [bug] ¶
用未命名的表达式字符串化
Column
对象(在许多情况下,包括ORM错误报告)现在将字符串上下文中的名称呈现为“<name unknown>”,而不是引发编译错误。References: #3789
[sql] [bug] ¶
当错误地将非“可执行”的ClauseElement或非SqlAlchemy对象传递给
.execute()
;在所有情况下都会一致地引发新的异常ObjectNoteXExecutableError。References: #3786
[sql] [bug] [mysql] [postgresql] ¶
修复了JSON数据类型中的回归,其中不会调用JSON索引值的“文字处理器”。现在可以从jsonIndexType和jsonPathType中调用本机字符串和整数数据类型。这适用于generic、postgresql和mysql json类型,并且还依赖于 #3766 .
References: #3765
[sql] [bug] ¶
固定错误在哪里
Index
如果这些SQL表达式包装在ORM样式中,则无法从复合SQL表达式中提取列__clause_element__()
构建。这个bug也存在于1.0.x中,但是在1.1中更为明显,因为混合属性@expression现在返回一个包装的元素。References: #3763
postgresql
[postgresql] [bug] ¶
对冲突的一种调整,使“插入的主关键字”逻辑能够适应没有插入或更新且没有净变化的情况。在这种情况下,该值将显示为无,而不是在异常上失败。
References: #3813
[postgresql] [bug] ¶
修复了新pg“on conflict”构造中的问题,其中包含“excluded”命名空间的列在语句的WHERE子句中不符合表限定。
References: #3807
mysql
[mysql] [bug] ¶
添加了对在url查询字符串中分析mysql/connector布尔和整数参数的支持:connection_timeout、connect_timeout、pool_size、get_warnings、raise_on_warnings、raw、consume_results、ssl_verify_cert、force_ipv6、pool_reset_session、compress、allow_local_infile、use_pure。
This change is also backported to: 1.0.15
References: #3787
[mysql] [bug] ¶
修复了“literal_binding”标志不会传播到mysql下的强制转换表达式的错误。
References: #3766
mssql
[mssql] [bug] ¶
更改了用于获取“默认架构名称”的查询,从查询数据库主体表的查询改为使用“schema_name()”函数,因为已报告问题:以前的系统在Azure数据仓库版本上不可用。希望这最终能够在所有SQL Server版本和身份验证样式中工作。
This change is also backported to: 1.0.16
References: #3810
[mssql] [bug] ¶
更新了pyodbc的服务器版本信息方案,以使用SQL Server ServerProperty(),而不是依赖pyodbc.sql_dbms-ver,后者仍然不可靠,特别是在freetds中。
This change is also backported to: 1.0.16
References: #3814
[mssql] [bug] ¶
在导致连接池重置的断开连接异常列表中添加了错误代码20017“来自服务器的意外eof”。请示肯·罗宾斯。
This change is also backported to: 1.0.16
References: #3791
misc
[bug] [orm.declarative] ¶
修复了在包含额外列的联接表子类的子类中设置单个表会损坏映射表的外键集合,从而干扰关系的初始化的错误。
This change is also backported to: 1.0.16
References: #3797
1.1.0b3
Released: July 26, 2016orm
[orm] [change] ¶
删除了一个可追溯到0.4的警告,当通过联接或单表继承将同一命名关系放置在两个继承器上时,将发出该警告。该警告不适用于当前工作执行单位。
参见
References: #3749
sql
[sql] [bug] ¶
修正了在封闭语句(通常是select)中作为CTE声明的update/insert/delete的新CTE功能中的错误,在这种情况下,不会为嵌入语句调用OnInsert和OnUpdate值。
References: #3745
[sql] [bug] ¶
修复了更新/插入/删除的新CTE功能中的错误,其中匿名(例如,未传递名称)
CTE
围绕语句构造将失败。References: #3744
postgresql
[postgresql] [bug] ¶
修正了错误
TypeDecorator
和Variant
PostgreSQL方言对类型的检查不够深入,无法确定是否需要呈现smallserial或bigserial而不是serial。This change is also backported to: 1.0.14
References: #3739
oracle
[oracle] [bug] ¶
固定错误
Select.with_for_update.of
如果Oracle的“rownum”限制/偏移方法无法适应“of”子句中的表达式,则必须在引用子查询中表达式的最顶层声明该表达式。如果需要,表达式现在被添加到子查询中。This change is also backported to: 1.0.14
References: #3741
misc
[feature] [ext] ¶
向新的sqlachemy.ext.indexable扩展添加了“default”参数。
[bug] [ext] ¶
固定错误
sqlalchemy.ext.baked
当涉及多个子查询加载程序时,由于变量作用域问题,子查询预加载程序查询的取消绑定将失败。拉请求由马克·哈恩伯格提供。This change is also backported to: 1.0.15
References: #3743
[bug] [ext] ¶
sqlAlchemy.ext.indexable在作为attributeError引发时将截获indexError和keyError。
1.1.0b2
Released: July 1, 2016sql
[sql] [bug] ¶
修复了SQL Math Negation运算符中表达式类型不再是原始表达式的数值类型的问题。这将导致类型决定结果集行为的问题。
This change is also backported to: 1.0.14
References: #3735
[sql] [bug] ¶
修正了
__getstate__
/__setstate__
由于1.0系列转换为__slots__
. 该问题可能会影响某些第三方应用程序。拉式请求,由Pieter Mulder提供。This change is also backported to: 1.0.14
References: #3728
[sql] [bug] ¶
由执行的处理
Boolean
纯python和C扩展版本之间只具有整数类型的后端数据类型保持一致,因为C扩展版本将接受数据库中的任何整数值作为布尔值,而不仅仅是零和一;此外,将发送到数据库的非布尔整数值强制为零或一。而不是作为原始整数值传递。参见
References: #3730
[sql] [bug] ¶
稍微回滚验证规则
Enum
允许未知字符串值通过,除非标志validate_string=True
传递给枚举;当然,任何其他类型的对象仍然被拒绝。虽然当前的用途是允许对具有like的枚举进行比较,但这种用法的存在表明可能存在比我们预期的更多的未知字符串比较用例,这意味着可能也存在一些未知的字符串插入用例。References: #3725
postgresql
[postgresql] [bug] [ext] ¶
在
sqlalchemy.ext.compiler
扩展,如果一个已建立的构造本身没有自己的专用构造,那么该构造的现有编译方案将被删除。__visit_name__
. 这在1.0中是罕见的,但在1.1中是罕见的。ARRAY
子类ARRAY
有这种行为。因此,为另一种方言(如sqlite)设置编译处理程序将呈现ARRAY
对象不再可编译。References: #3732
mysql
[mysql] [bug] ¶
拨回中描述的“按自动增量排序主键列” 不再为复合主键生成隐式键w/auto_increment 有点,所以如果
PrimaryKeyConstraint
如果是显式定义的,则精确地维护列的顺序,允许在必要时控制此行为。References: #3726
1.1.0b1
Released: June 16, 2016orm
[orm] [feature] [ext] ¶
新的ORM扩展 可转位的 它允许构建引用“索引”结构的特定元素(如数组和JSON字段)的python属性。拉车请求礼遇郑云元。
参见
[orm] [feature] ¶
增加新标志
Session.bulk_insert_mappings.render_nulls
它允许在呈现空值的情况下进行ORM大容量插入;这将绕过服务器端的默认值,但是允许使用相同的列集来形成所有语句,从而允许对它们进行批处理。拉取请求,由Tobias Sauerwein提供。[orm] [feature] ¶
新增事件
AttributeEvents.init_scalar()
以及说明其用途的新示例套件。此事件可用于在持久化对象之前向python-side属性提供核心生成的默认值。参见
new init_scalar()事件在ORM级别截取默认值
References: #1311
[orm] [feature] ¶
补充
AutomapBase.prepare.schema
到AutomapBase.prepare()
方法,以指示如果不是默认架构,应从中反映哪些架构表。请示Josh Marlow。[orm] [feature] ¶
添加了新参数
mapper.passive_deletes
到可用的映射器选项。这允许删除只针对基表进行联接表继承映射,同时允许在删除时层叠处理从子类表中删除行。参见
References: #2349
[orm] [feature] ¶
当构造包含非标准的SQL元素(如返回、数组索引操作、方言特定或自定义数据类型)时,对核心SQL构造调用str()变得更加“友好”。在这些情况下,返回的字符串将呈现构造的近似值(通常是其PostgreSQL样式的版本),而不是引发错误。
参见
References: #3631
[orm] [feature] ¶
这个
str()
需要Query
现在将考虑Engine
其中Session
在生成SQL的字符串形式时绑定,以便在可能的情况下显示将发送到数据库的实际SQL。以前,只有与MetaData
如果存在,将使用与之关联的映射。如果在Session
或在MetaData
映射与之关联,然后使用“默认”方言来呈现SQL,就像前面的情况一样。参见
References: #3081
[orm] [feature] ¶
这个
SessionEvents
套件现在包含事件,允许根据Session
自身,例如挂起、短暂、持续、分离。还定义了每个事件中对象的状态。参见
References: #2677
[orm] [feature] ¶
添加了新的会话生命周期状态 deleted . 此新状态表示已从 persistent 并将移动到 detached 提交事务后状态。这解决了长期存在的问题,即删除的对象存在于持久和分离之间的灰色区域。这个
InstanceState.persistent
访问者意志 不再 将已删除对象报告为持久对象;该InstanceState.deleted
对于这些对象,访问器将改为true,直到它们分离为止。参见
References: #2677
[orm] [feature] ¶
添加了对将映射类或映射实例传递到解释为SQL绑定参数的上下文中的常见错误情况的新检查;为此引发了新的异常。
参见
References: #3321
[orm] [feature] ¶
新增关系加载策略
raiseload()
(也可通过lazy='raise'
)这一策略的表现几乎像noload()
但不是返回None
它会引发InvalidRequestError。拉车请求由Adrian Moennich提供。参见
新的“RAISE”/“RAISE”on“SQL”加载程序策略
References: #3512
[orm] [change] ¶
这个
Mapper.order_by
参数已弃用。这是一个旧参数,一旦引入查询对象,它就不再与SQLAlchemy的工作方式相关。通过弃用它,我们确定我们不支持非工作的用例,并且我们鼓励应用程序不再使用这个参数。参见
References: #3394
[orm] [change] ¶
这个
Session.weak_identity_map
参数已弃用。新配方见 会话引用行为 对于一个基于事件的方法来维护强大的身份映射行为。参见
References: #2677
[orm] [bug] ¶
修复了一个问题,即当结合对外键属性的未刷新修改时,对象从一个父级到另一个父级的多对一更改可能工作不一致。属性move现在考虑外键的数据库提交值,以便定位要移动的对象的“上一个”父级。这允许事件正确触发,包括backref事件。以前,这些事件不会总是发生。可能依赖先前中断行为的应用程序可能会受到影响。
参见
References: #3708
[orm] [bug] ¶
修复了当对象合并到会话中时,在下一个对象范围内未爆炸时,将不小心为数据库加载设置延迟列的错误。
session.merge(obj, load=False)
.References: #3488
[orm] [bug] [mysql] ¶
继续讨论常见的mysql异常情况,即存储点被取消 #2696 ,故障模式
Session
当保存点在改进回滚之前消失时放置,以允许Session
在保存点之外仍能正常工作。假定保存点操作失败并被取消。参见
References: #3680
[orm] [bug] ¶
修复了一个新插入的回滚实例在下一个事务上仍可能导致持久性冲突的错误,因为不会检查该实例是否已过期。此修复将解决大量错误导致“具有标识X的新实例与持久实例Y冲突”错误的情况。
参见
错误的“new instance x conflicts with persistent instance y”刷新错误已修复
References: #3677
[orm] [bug] ¶
工作原理的改进
Query.correlate()
这样,当使用表示几个表的直接联接的“多态”实体时,该语句将确保联接中的所有表都是相关联的一部分。参见
References: #3662
[orm] [bug] ¶
修正了这样一个错误:如果连接的热切加载来自同一个实体多次出现的行,则会导致热切加载的多对一属性无法加载,有些请求迫切加载该属性,而另一些则不加载。这里的逻辑被修改为接受属性,即使不同的加载程序路径已经处理了父实体。
参见
References: #3431
[orm] [bug] ¶
对逻辑的改进,当
Query.distinct()
与Query.order_by()
这样,即使已经存在的列用不同的名称标记,也不会再次添加它们。无论这种更改如何,添加到SQL的额外列在最终结果中都不会返回,因此这种更改只影响语句的字符串形式以及在核心执行上下文中使用时的行为。此外,在使用distinct on格式时不再添加列,前提是该查询不会由于联接的热切加载而包装在子查询中。参见
References: #3641
[orm] [bug] ¶
修复了这样一个问题:如果使用“backref”设置了两个相同的命名关系(引用了一个基类和一个具体继承的子类),而使用relationship()而不是冲突的名称来设置相同的配置,则这两个相同的命名关系将导致错误,这在具体映射的情况下是允许的。
参见
相同名称的backrefs在应用于具体继承子类时不会引发错误。
References: #3630
[orm] [bug] ¶
这个
Session.merge()
方法现在在发出插入之前按主键跟踪挂起的对象,并在遇到重复的主键时将不同的对象合并在一起,这实际上是半确定性的。此行为与已发生的持久对象相匹配。参见
session.merge与persistent解决挂起的冲突
References: #3601
[orm] [bug] ¶
修复了在某些不适当的情况下,例如从单个继承子类的exists()查询时,将“单表继承”条件添加到查询末尾的错误。
参见
References: #3582
[orm] [bug] ¶
添加了新的类型级别修饰符
TypeEngine.evaluates_none()
它向ORM指示应将一个正的none集作为值NULL持久化,而不是从insert语句中省略该列。此功能同时作为实现的一部分用于 #3514 以及任何类型的独立功能。参见
References: #3250
[orm] [bug] ¶
内部调用“簿记”功能
Session.bulk_save_objects()
并且相关的批量方法已经缩小到当前未使用此功能的程度,例如,检查插入或更新语句后要提取的列默认值。References: #3526
[orm] [bug] [postgresql] ¶
关于
None
结合PostgreSQLJSON
类型。当JSON.none_as_null
标志的默认值为False
每当ORM对象上的值设置为该值时,ORM现在将正确地将JSON“'null”字符串插入列中。None
或者当价值None
用于Session.bulk_insert_mappings()
, 包括 如果列上有默认值或服务器默认值。参见
JSON“null”按预期与ORM操作一起插入,不存在时省略。
References: #3514
engine
[engine] [feature] ¶
添加的连接池事件
ConnectionEvents.close()
,ConnectionEvents.detach()
,ConnectionEvents.close_detached()
.[engine] [feature] ¶
用于记录、异常和的绑定参数集和结果行的所有字符串格式
repr()
现在,purposes截断每个集合中非常大的标量值,包括“n个字符被截断”的表示法,类似于大型多参数集的显示本身被截断的方式。参见
References: #2837
[engine] [feature] ¶
多租户架构转换
Table
对象被添加。这支持使用同一组Table
许多模式中的对象,例如每个用户的模式。新的执行选项Connection.execution_options.schema_translate_map
添加。参见
References: #2685
[engine] [feature] ¶
向引擎添加了一个新的入口点系统,允许在URL的查询字符串中声明“插件”。可以编写自定义插件,这些插件将有机会预先更改和/或使用引擎的URL和关键字参数,然后在引擎创建时将为引擎本身提供额外的修改或事件注册。插件被编写为
CreateEnginePlugin
;有关详细信息,请参见该类。References: #3536
sql
[sql] [feature] ¶
通过新的
FromClause.tablesample()
方法和独立函数。拉请求由Ilja Everil_。参见
References: #3718
[sql] [feature] ¶
添加了对窗口函数范围的支持,使用
over.range_
和over.rows
参数。参见
References: #3049
[sql] [feature] ¶
实现了对sqlite和postgresql的检查约束的反射。这可通过新的检查方法获得。
Inspector.get_check_constraints()
以及反射时Table
对象的形式CheckConstraint
约束集合中存在的对象。拉车请求由Alex Gr_nholm提供。[sql] [feature] ¶
新的
ColumnOperators.is_distinct_from()
和ColumnOperators.isnot_distinct_from()
接线员;由塞巴斯蒂安银行提供请求。参见
[sql] [feature] ¶
增加了一个钩子
DDLCompiler.visit_create_table()
打电话DDLCompiler.create_table_suffix()
允许自定义方言在“create table”子句后添加关键字。拉动请求门控标记Sandan。[sql] [feature] ¶
负整数索引现在由从
ResultProxy
. 拉请求由Emanuele Gaifas提供。参见
[sql] [feature] ¶
补充
Select.lateral()
以及相关的构造,以允许SQL标准的横向关键字,目前只有PostgreSQL支持。参见
References: #2857
[sql] [feature] ¶
增加了对核心和ORM呈现“完全外部连接”的支持。拉车请求由Stefan Urbanek提供。
参见
References: #1957
[sql] [feature] ¶
CTE功能已经扩展到支持所有DML,允许INSERT、UPDATE和DELETE语句都指定自己的WITH子句,并且当这些语句包含返回子句时,它们本身也是CTE表达式。
参见
References: #2551
[sql] [feature] ¶
增加了对PEP-435样式枚举类(即python 3)的支持
enum.Enum
类,但也包括兼容的枚举库,Enum
数据类型。这个Enum
数据类型现在还可以在python中验证传入值,并添加一个选项来放弃创建check约束。Enum.create_constraint
. 拉车请求由Alex Gr_nholm提供。参见
[sql] [feature] ¶
对最近增加的
TextClause.columns()
方法及其与结果行处理的交互现在允许传递给方法的列与语句中的结果列位置匹配,而不是仅在名称上匹配。这样做的好处包括,当将文本SQL语句链接到ORM或核心表模型时,不需要进行公共列名称的标记或重复数据消除系统,这也意味着不需要担心标签名称如何与ORM列匹配等等。此外,ResultProxy
在某些情况下,进一步增强了将列键和字符串键映射到精度更高的行的功能。参见
结果集列匹配增强功能;文本SQL的位置列设置 -功能概述
当按位置传递时,textclause.columns()将按位置而不是按名称匹配列 -向后兼容性备注
References: #3501
[sql] [feature] ¶
向核心添加了新类型
JSON
. 这是PostgreSQL的基础JSON
类型和新的类型一样JSON
类型,以便可以使用pg/mysql不可知JSON列。该类型具有基本索引和路径搜索支持。参见
References: #3619
[sql] [feature] ¶
添加了对窗体的“set aggregate”函数的支持
<function> WITHIN GROUP (ORDER BY <criteria>)
,使用方法FunctionElement.within_group()
. 添加了一系列从集合派生的返回类型的公共集合聚合函数。这包括以下功能percentile_cont
,dense_rank
以及其他。参见
References: #1370
[sql] [feature] [postgresql] ¶
添加了对SQL标准函数的支持
array_agg
,它自动返回ARRAY
类型正确,支持索引/切片操作,以及array_agg()
,返回ARRAY
具有其他比较功能。由于目前只有PostgreSQL支持数组,所以只能在PostgreSQL上工作。还添加了一个新结构aggregate_order_by
支持PG的“按订单”扩展。参见
References: #3132
[sql] [feature] ¶
向核心添加了新类型
ARRAY
. 这是PostgreSQL的基础ARRAY
输入,现在是核心的一部分,开始支持各种SQL标准阵列支持功能,包括一些功能,以及对其他具有“阵列”概念的数据库(如DB2或Oracle)上的本机阵列的最终支持。此外,新的运营商any_()
和all_()
已添加。这些不仅支持PostgreSQL上的数组构造,还支持在MySQL上可用的子查询(但遗憾的是,PostgreSQL上不可用)。参见
References: #3516
[sql] [change] [mysql] ¶
一个系统,通过它
Column
将自身视为“自动增量”列已更改,因此自动增量不再隐式启用Table
它有一个复合主键。为了能够为复合pk成员列启用自动增量,同时保持sqlAlchemy为单个整数主键启用隐式自动增量的长期行为,已经向Column.autoincrement
参数"auto"
,现在是默认值。参见
这个 .autoincrement 不再为复合主键列隐式启用指令
References: #3216
[sql] [bug] ¶
FromClause.count()
已弃用。此函数使用表中的任意列,不可靠;对于核心使用,func.count()
应优先考虑。References: #3724
[sql] [bug] ¶
修正了如果
Index
与Column
与小写字母T相关TableClause
;为了将索引与Table
.References: #3616
[sql] [bug] ¶
这个
type_coerce()
构造现在是一个成熟的核心表达式元素,在编译时进行了后期计算。以前,该函数只是一个转换函数,通过返回Label
列定向表达式或给定的BindParameter
对象,尤其是当ORM级别的表达式转换将列转换为绑定参数(例如用于延迟加载)时,该对象会阻止逻辑维护操作。参见
References: #3531
[sql] [bug] ¶
这个
TypeDecorator
类型扩展程序现在将与SchemaType
实施,通常Enum
或Boolean
关于确保每个表事件从实现类型传播到外部类型。这些事件用于确保约束或PostgreSQL类型(例如枚举)与父表一起正确创建(并且可能删除)。参见
typedecorator现在可以自动处理枚举、布尔值、“架构”类型。
References: #2919
[sql] [bug] ¶
的行为
union()
构造和相关构造,如Query.union()
现在处理这样的情况:由于嵌入的select语句包含limit、offset和/或order by,因此需要用括号括起来。这些查询 不在sqlite上工作 ,并将在该后端上失败,就像以前一样,但现在应该在所有其他后端上工作。参见
带有限制/偏移/顺序的选择的并集或类似项现在用括号括起嵌入的选择
References: #2528
schema
[schema] [enhancement] ¶
传递到的默认生成函数
Column
对象现在通过“update_wrapper”运行,如果传递了一个可调用的非函数,则通过一个等效函数运行,这样自省工具就保留了被包装函数的名称和docstring。拉请求门控hsum。
postgresql
[postgresql] [feature] ¶
添加了对postgresql的insert的支持..关于使用新的postgresql特定的冲突
Insert
对象。罗宾·托马斯的请求和广泛的努力。参见
References: #3529
[postgresql] [feature] ¶
如果
postgresql_concurrently
标志设置在Index
如果使用中的数据库被检测为PostgreSQL 9.2或更高版本。对于创建索引,还添加了数据库版本检测,如果pg版本小于8.2,则省略该子句。拉取请求由Iuri de Silvio提供。[postgresql] [feature] ¶
添加了新参数
PGInspector.get_view_names.include
,允许指定应返回的视图类型。目前包括“普通”和“物化”视图。拉请求由Sebastian银行提供。References: #3588
[postgresql] [feature] ¶
补充
postgresql_tablespace
作为一个论点Index
允许在PostgreSQL中为索引指定表空间。对上的同一命名参数进行补充Table
. 拉请求由本杰明·伯特兰提供。References: #3720
[postgresql] [feature] ¶
添加了新参数
GenerativeSelect.with_for_update.key_share
,这将使FOR NO KEY UPDATE
版本FOR UPDATE
和FOR KEY SHARE
而不是FOR SHARE
在PostgreSQL后端。拉请求由谢尔盖·斯科宾提供。[postgresql] [feature] [oracle] ¶
添加了新参数
GenerativeSelect.with_for_update.skip_locked
,这将使SKIP LOCKED
短语FOR UPDATE
或FOR SHARE
锁定PostgreSQL和Oracle后端。拉请求由周杰客提供。[postgresql] [feature] ¶
为PygreSQL PostgreSQL方言添加了新方言。感谢Christoph Zwerschke和高岭土Imago的努力。
[postgresql] [feature] ¶
添加了一个新常量
JSON.NULL
指示JSON空值应用于某个值,而不考虑其他设置。参见
References: #3514
[postgresql] [change] ¶
这个
sqlalchemy.dialects.postgres
长期以来不推荐使用的模块已被删除;这已经发出了多年的警告,项目应该被调用。sqlalchemy.dialects.postgresql
. 表单的引擎URLpostgres://
但仍将继续发挥作用。[postgresql] [bug] ¶
为将物化视图的源代码反映到PostgreSQL版本的
Inspector.get_view_definition()
方法。References: #3587
[postgresql] [bug] ¶
A的使用
ARRAY
对象引用Enum
或ENUM
当类型在“创建表”或“删除表”中使用时,子类型现在将发出预期的“创建类型”和“删除类型”DDL。参见
References: #2729
[postgresql] [bug] ¶
特殊数据类型上的“hashable”标志,如
ARRAY
,JSON
和HSTORE
现在设置为false,这样可以在包含行内实体的ORM查询中获取这些类型。参见
References: #3499
[postgresql] [bug] ¶
邮报
ARRAY
类型现在支持多维索引访问,例如表达式,例如somecol[5][6]
不需要显式强制转换或类型强制,前提是ARRAY.dimensions
参数设置为所需的维度数。参见
通过对array、json、hstore的索引访问建立正确的SQL类型
References: #3487
[postgresql] [bug] ¶
的返回类型
JSON
和JSONB
当使用indexed access时,它的工作方式与postgresql本身相同,并返回一个本身属于类型的表达式。JSON
或JSONB
. 以前,访问器将返回NullType
它不允许使用后续类似JSON的运算符。参见
通过对array、json、hstore的索引访问建立正确的SQL类型
References: #3503
[postgresql] [bug] ¶
这个
JSON
,JSONB
和HSTORE
数据类型现在允许从索引文本访问操作完全控制返回类型,或者column[someindex].astext
对于JSON类型或column[someindex]
对于hstore类型,通过JSON.astext_type
和HSTORE.text_type
参数。参见
通过对array、json、hstore的索引访问建立正确的SQL类型
References: #3503
[postgresql] [bug] ¶
这个
Comparator.astext
修饰符不再调用ColumnElement.cast()
隐式地,因为pg的json/jsonb类型也允许相互交叉转换。使用的代码ColumnElement.cast()
在JSON索引访问上,例如col[someindex].cast(Integer)
,将需要更改为呼叫Comparator.astext
明确地。参见
json cast()操作现在需要 .astext 被显式调用
References: #3503
mysql
[mysql] [feature] ¶
通过autocommit隔离级别设置,增加了对mysql驱动程序“autocommit”的支持。拉请求由罗马波多利亚卡提供。
参见
References: #3332
[mysql] [feature] ¶
补充
JSON
对于MySQL5.7。JSON类型提供了MySQL中JSON值的持久性,以及“getitem”和“getpath”的基本运算符支持,利用JSON_EXTRACT
函数以引用JSON结构中的各个路径。参见
References: #3547
[mysql] [change] ¶
当使用innodb为表生成create table ddl时,mysql方言不再生成额外的“key”指令,该表的复合主键在非第一列的列上自动递增;为了克服innodb在这里的限制,现在生成primary key约束时,自动递增列放在列表的第一位。列的。
参见
这个 .autoincrement 不再为复合主键列隐式启用指令
References: #3216
sqlite
[sqlite] [feature] ¶
sqlite方言现在反映在外键约束中的更新和删除短语上。拉请求由Michal Petrucha提供。
[sqlite] [feature] ¶
sqlite方言现在反映了主键约束的名称。拉车请求,黛安娜·克拉克。
参见
References: #3629
[sqlite] [change] ¶
为的sqlite方言添加了支持
Inspector.get_schema_names()
使用sqlite的方法;拉请求由brian van klaveren提供。还修复了对使用模式创建索引的支持,以及对模式绑定表中外键约束的反射。参见
[sqlite] [bug] ¶
当检测到sqlite版本3.7.16或更高版本时,将取消sqlite上右侧嵌套联接的解决方案,其中它们被重写为子查询,以解决sqlite不支持此语法的问题。
参见
References: #3634
[sqlite] [bug] ¶
针对sqlite意外传递列名称的解决方案为
tablename.columnname
对于某些类型的查询,当检测到sqlite 3.10.0或更高版本时,将禁用查询。参见
References: #3633
mssql
[mssql] [feature] ¶
这个
mssql_clustered
标志在上可用UniqueConstraint
,PrimaryKeyConstraint
,Index
现在默认为None
,并且可以设置为false,这将呈现非聚集关键字,尤其是对于主键,允许将不同的索引用作“聚集的”。拉取请求由Saulius_emaitaitis提供。[mssql] [feature] ¶
通过向SQL Server方言添加基本隔离级别支持
create_engine.isolation_level
和Connection.execution_options.isolation_level
参数。参见
References: #3534
[mssql] [change] ¶
这个
legacy_schema_aliasing
在1.0.5版中作为 #3424 要允许禁用MSSQL方言创建模式限定表别名的尝试,现在默认为false;除非显式打开,否则现在禁用旧行为。参见
References: #3434
[mssql] [bug] ¶
调整MXODBC方言以使用
BinaryNull
符号与VARBINARY
数据类型。拉请求由Sheila Allen提供。[mssql] [bug] ¶
修复了SQL Server方言通过分配标记来反映具有无边界长度的字符串或其他可变长度列类型的问题。
"max"
字符串的长度属性。使用时"max"
SQL Server方言显式支持令牌,它不是基字符串类型的正常约定的一部分,而是长度应保留为无。方言现在根据类型的反射将长度指定为“无”,以便类型在其他上下文中正常工作。参见
字符串/varlength类型在反射时不再显式表示“max”
References: #3504
misc
[feature] [ext] ¶
补充
MutableSet
和MutableList
帮助程序类 突变跟踪 延伸。拉车请求礼遇郑云元。References: #3297
[bug] [ext] ¶
在混合属性或方法上指定的docstring现在在类级别上得到认可,允许它使用类似sphinx autodoc的工具。这里的机制必然涉及到一些混合属性的表达式包装,这可能会导致它们在使用内省时出现不同的外观。
参见
References: #3653
[bug] [sybase] ¶
不支持的Sybase方言现在引发
NotImplementedError
当试图编译包含“offset”的查询时,Sybase没有直接的“offset”特性。References: #2278