E.9. 版本 9.4.7
发布日期: 2016-03-31
这个版本包含各种自9.4.6以来的修复。关于9.4主版本的新特性信息, 请查看第 E.16 节。
E.9.1. 迁移到版本9.4.7
对于运行9.4.X的用户,不需要转储/恢复。
不过,如果你是从一个早于9.4.6的版本升级而来,请查看第 E.10 节。
E.9.2. 修改列表
-
修复索引的ROW()比较中NULL索引项的不正确处理 (Tom Lane)
使用行比较的索引搜索比如ROW(a, b) > ROW('x', 'y')将在到达b列中的NULL条目时停止, 忽略可能存在与a的稍后值相关联的非NULL b值的事实。
避免由于重命名文件之前或之后没有适当的
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 wraparound的情况 (Jeff Janes)
-
修复逻辑解码中的各种错误 (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派生平台上的可移植性问题(包括 OS X)。
-
避免在具有支持AVX2 CPU的旧版Windows版本(在7SP1/2008R2SP1之前)上崩溃, 并使用Visual Studio 2013完成Postgres构建 (Christian Ullrich)
这是Visual Studio 2013运行库中的一个错误的解决方法, Microsoft已经声明他们不会在该版本中修复。
修复psql的tab完成逻辑,以正确处理多字节字符 (Kyotaro Horiguchi, Robert Haas)
-
为SECURITY LABEL修复psql的tab完成 (Tom Lane)
在SECURITY LABEL之后键入TAB可能会导致崩溃或提供不适当的关键字。
-
如果在命令行中没有指定,则让pg_ctl从PGCTLTIMEOUT 环境变量中接受一个等待超时 (Noah Misch)
通过允许他们对postmaster启动和关闭全局指定一个长于正常的超时, 可以方便测试较慢的buildfarm成员。
-
修复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 release 2016c, 因为阿塞拜疆、智利、海地、巴勒斯坦和俄罗斯(Altai, Astrakhan, Kirov, Sakhalin, Ulyanovsk 区域)的DST法律变更,加上立陶宛、 摩尔多瓦和俄罗斯(Kaliningrad, Samara, Volgograd)的历史更正。