发布日期:. 2016-05-12
这个版本包含各种自9.4.7以来的修复。关于9.4主版本的新特性信息, 请查看第 E.36 节。
在OpenSSL调用之前清理OpenSSL错误队列,而不是假设它早已经清理了; 并且确保我们以后清除它 (Peter Geoghegan, Dave Vitek, Peter Eisentraut)
这个修改阻止了多个连接在一个进程中使用OpenSSL, 并且并非所有包含的代码都遵循何时清理错误序列的规则时的问题。 当一个客户端应用在libpq中使用了SSL连接并同时 SSL连接为OpenSSL使用了PHP、Python或Ruby封装器时, 明确的报告错误。如果一个扩展模块建立了一个外向SSL连接, 那么服务器也有可能出现相似的问题。
使用一个封闭在left join右侧的full join,修复
“failed to build any N
-way joins”
规划器错误 (Tom Lane)
修复等价类测试在多级嵌套循环规划中的错误处理 (Tom Lane)
给出三个或更多个等价类变量,比如X.X = Y.Y = Z.Z
,
规划器有可能忽略一些强制所有变量实际上相等所需的测试,
导致输出的连接行不满足WHERE
子句。由于各种原因,
实际上很少选择错误的规划,所以这个bug很长时间都没检测出来。
修复GIN索引扫描中的查询寿命内存泄露 (Julien Rouhaud)
修复GIN索引插入中的查询寿命内存泄露和潜在的索引损坏危险 (Tom Lane)
在简单查询中,内存泄露通常不会太多,但是在具有高
maintenance_work_mem
的大量GIN索引构建期间会有很多。
修复to_timestamp()
中TH
、th
和Y,YYY
格式代码可能的错误行为 (Tom Lane)
这些可能超出输入字符串的末尾,导致后续格式代码读取垃圾。
修复array
中规则和视图的转储,该array
参数是
构造中的子SELECT (Tom Lane)
value
operator
ANY (array
)
禁用ALTER SYSTEM
参数值中的新行
(Tom Lane)
配置文件解析器不支持在字符串文字中嵌入换行符,
因此我们不能让它们通过ALTER SYSTEM
插入值。
如果选择了OID上的索引,请修复ALTER TABLE ... REPLICA IDENTITY USING INDEX
以正常工作 (David Rowley)
修复在对齐选择平台上的逻辑解码崩溃 (Tom Lane, Andres Freund)
只有当事务大到足以溢出到磁盘并且该事务中发生主键更改时,才会发生故障。
在关闭walsender时,避免反复的请求接收器反馈 (Nick Cleaton)
使pg_regress使用来自PGCTLTIMEOUT
环境变量的启动超时,如果设置了的话 (Tom Lane)
这是为了与最近添加到pg_ctl的行为一致; 它简化了慢速机器上的自动测试。
修复pg_upgrade, 以正确恢复仅包含一个操作符类的操作符族的扩展成员 (Tom Lane)
在这样的情况下,操作符族被恢复到一个新的数据库, 但是它不再标记为该扩展的一部分。这没有立即的不良影响, 但是会导致稍后的pg_dump运行发出会导致恢复时(无害) 错误的输出。
修复pg_upgrade在新集群TOAST规则与旧规则不同时不会失败 (Tom Lane)
pg_upgrade有特殊情况代码来处理PostgreSQL 新版本认为一个表应该有一个TOAST表而旧版本没有的特殊情况。 该代码是破损的,所以删除它,而不是在这种情况下什么都不做; 似乎没有理由相信,如果根据旧版本的规则这是可以的, 没有TOAST表我们就不能运行的很好。
减少使用--disable-spinlocks
配置的构建使用的SysV信号量数
(Tom Lane)
将内部函数strtoi()
重命名为strtoint()
,
以避免与NetBSD库函数冲突 (Thomas Munro)
修复来自Windows上bind()
和listen()
系统调用的报告错误 (Tom Lane)
减少用Microsoft Visual Studio构建时编译器的冗长输出 (Christian Ullrich)
修复putenv()
,使其能与Visual Studio 2013正常工作
(Michael Paquier)
避免Windows的FormatMessage()
函数可能的不安全使用
(Christian Ullrich)
适当时使用FORMAT_MESSAGE_IGNORE_INSERTS
标识。
已知没有bug存在于这里,但是小心总是没错的。
将时区数据文件更新为tzdata版本2016d,
用于俄罗斯和委内瑞拉的DST法律变更。有新的区域名称
Europe/Kirov
和Asia/Tomsk
,
反映这些区域现在具有与相邻区域有不同的时区历史的事实。