发布日期. 2016-05-12
这个版本包含各种自9.5.2以来的修复。关于9.5主版本的新特性信息, 请查看第 E.20 节。
在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很长时间都没检测出来。
修复打开operator_precedence_warning 时发生的极端解析器故障 (Tom Lane)
一个示例是SELECT (ARRAY[])::text[]
给出一个错误,
虽然它没有括号工作。
修复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)
修复在对齐选择平台上的逻辑解码崩溃 (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表我们就不能运行的很好。
修复使用IBM XLC编译器时PPE的原子操作 (Noah Misch)
减少使用--disable-spinlocks
配置的构建使用的SysV信号量数
(Tom Lane)
将内部函数strtoi()
重命名为strtoint()
,
以避免与NetBSD库函数冲突 (Thomas Munro)
修复来自Windows上bind()
和listen()
系统调用的报告错误 (Tom Lane)
减少用Microsoft Visual Studio构建时编译器的冗长输出 (Christian Ullrich)
支持使用Visual Studio 2015构建 (Michael Paquier, Petr Jelínek)
请注意,使用VS2015所做的构建将不能在Windows Vista之前的Windows版本上运行。
修复putenv()
,使其能与Visual Studio 2013正常工作
(Michael Paquier)
避免Windows的FormatMessage()
函数可能的不安全使用
(Christian Ullrich)
适当时使用FORMAT_MESSAGE_IGNORE_INSERTS
标识。
已知没有bug存在于这里,但是小心总是没错的。
将时区数据文件更新为tzdata版本2016d,
用于俄罗斯和委内瑞拉的DST法律变更。有新的区域名称
Europe/Kirov
和Asia/Tomsk
,
反映这些区域现在具有与相邻区域有不同的时区历史的事实。