E.20. 版本 9.4.7 #
发布日期:. 2016-03-31
本发行版包含对 9.4.6 的多项修复。有关 9.4 主版本中新功能的信息,请参见第 E.27 节。
E.20.2. 变更
修复索引化
ROW()比较中对 NULL 索引条目处理不正确的问题(Tom Lane)使用诸如
ROW(a, b) > ROW('x', 'y')的行比较进行索引搜索时,会在到达b列的 NULL 条目时停止,忽略了b列可能有与更靠后的a值关联的非 NULL 值这一事实。避免因重命名文件前后缺少充分的
fsync()调用而导致的罕见数据丢失场景(Michael Paquier、Tomas Vondra、Andres Freund)修复
json_to_record()在其输入对象的某个字段包含与所请求输出列名同名的子对象字段时的缺陷(Tom Lane)修复
to_char()的OF格式代码对负时区偏移的错误格式化(Thomas Munro、Tom Lane)在恢复达到一致状态之前忽略recovery_min_apply_delay参数(Michael Paquier)
以前,备库在重放使其数据库状态有效所需的初始 WAL 部分时,也会响应
recovery_min_apply_delay而延迟应用 WAL 记录。由于备库在达到一致数据库状态之前毫无用处,这被认为没有帮助。正确处理服务器启动期间
pg_subtrans接近 XID 回卷的情况(Jeff Janes)修复逻辑解码中的若干 bug(Andres Freund)
问题情形包括:副本标识为
FULL时超过一页的元组、在大到需要假脱机到磁盘的事务中更改主键的UPDATE、错误地报告“subxact logged without previous toplevel record”,以及事务提交时间的错误报告。修复外层视图的
WHERE子句包含相关子查询时嵌套安全屏障视图的规划器错误(Dean Rasheed)修复因多次尝试释放
localeconv()输出字符串而导致的极端情况崩溃(Tom Lane)修复
ispell词典词缀文件的解析(Tom Lane)如果词缀文件包含任何在大小写转换期间字节长度会变化的字符(例如土耳其语 UTF8 区域设置中的
I),代码就可能出错。避免使用
sscanf()解析ispell词典文件(Artur Zakirov)这规避了 FreeBSD 衍生平台(包括 macOS)上的一个可移植性问题。
避免在旧版 Windows(7SP1/2008R2SP1 之前)上配合支持 AVX2 的 CPU 和使用 Visual Studio 2013 构建的 Postgres 时崩溃(Christian Ullrich)
这是对 Visual Studio 2013 运行时库中一个 bug 的变通方案,微软已表示不会在该版本中修复它。
修复psql的制表符补全逻辑以正确处理多字节字符(Kyotaro Horiguchi、Robert Haas)
修复 psql 对
SECURITY LABEL的 Tab 补全(Tom Lane)在
SECURITY LABEL之后按 TAB 可能导致崩溃或提供不合适的关键字。使 pg_ctl 在命令行未指定时接受来自
PGCTLTIMEOUT环境变量的等待超时(Noah Misch)这方便了较慢的 buildfarm 成员的测试,允许它们全局指定比正常更长的 postmaster 启动和关闭超时。
修复 pg_ctl 中对 Windows 服务状态的不正确测试(Manuel Mathar)
上一轮小版本发布试图修复 pg_ctl,使其正确判断是否把日志消息发送到 Windows 事件日志,但把测试条件弄反了。
修复pgbench正确处理
-C与-M prepared选项组合的问题(Tom Lane)在 pg_upgrade 中,当新数据目录位于旧数据目录之内时跳过创建删除脚本(Bruce Momjian)
在这种情况下盲目执行该脚本会导致新数据目录丢失。
PL/Perl 中正确将空的 Postgres 数组转换为空的 Perl 数组(Alex Hunsaker)
使 PL/Python 能处理不是合法 Python 标识符的函数名(Jim Nasby)
修复
contrib/pgstattuple的pgstatindex()函数返回统计信息中的多处错误(Tom Lane)移除 MSVC 构建中对
psed的依赖,因为核心 Perl 已不再提供它(Michael Paquier、Andrew Dunstan)将时区数据文件更新到tzdata发行版 2016c,以反映阿塞拜疆、智利、海地、巴勒斯坦和俄罗斯(阿尔泰、阿斯特拉罕、基洛夫、萨哈林、乌里扬诺夫斯克地区)的夏令时法规变更,以及立陶宛、摩尔多瓦和俄罗斯(加里宁格勒、萨马拉、伏尔加格勒)的历史修正。