pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
发布日期:. 2016-05-12
此版本包含自 9.5.2 以来的多种修复。 有关 9.5 大版本中新特性的信息,参见 第 E.26 节。
在调用 OpenSSL 之前清空 OpenSSL 错误队列,而不是假设它已经为空;并确保调用之后也让它保持为空(Peter Geoghegan、Dave Vitek、Peter Eisentraut)
此变更可防止在单个进程内存在多条使用 OpenSSL 的连接、且相关代码并非全部遵循相同的错误队列清空规则时出现问题。特别是当客户端应用并发使用 libpq 的 SSL 连接和 PHP、Python 或 Ruby 的 OpenSSL 封装库的 SSL 连接时,已有失败报告。如果扩展模块建立外向 SSL 连接,服务器内部也可能出现类似问题。
修复左连接右侧包含全连接时规划器出现“failed to build any N-way joins”错误的问题(Tom Lane)
修复多层级 nestloop 计划中等价类测试的处理不正确的问题(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)
这些代码可能越过输入字符串末尾,导致后续格式代码读取垃圾数据。
修复对这样的规则和视图的转储: 结构的 value operator ANY (array)array 参数是子 SELECT(Tom Lane)
禁止 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 运行产生在恢复时引发(无害)错误的输出。
修复新集群 TOAST 规则与旧集群不同时 pg_upgrade 失败的问题(Tom Lane)
pg_upgrade 原有专门代码处理新 PostgreSQL 版本认为表应有 TOAST 表而旧版本认为没有的情况。该代码有问题,因此将其移除,在这种情况下改为不做任何处理;没有理由认为,如果按照旧版本的规则没有 TOAST 表也没问题,我们就无法在没有 TOAST 表的情况下正常运作。
修复使用 IBM XLC 编译器时 PPC 上的原子操作(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 版,涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 Europe/Kirov 和 Asia/Tomsk,以反映这些地区现在与相邻地区有不同的时区历史。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。