E.55. 版本 9.1.21 #
发行日期:. 2016-03-31
本次发布包含对 9.1.20 的多方面修复。有关 9.1 大版本中新特性的信息,请参见第 E.76 节。.
E.55.2. 变更
修复索引化
ROW()比较中对 NULL 索引条目处理不正确的问题(Tom Lane)使用诸如
ROW(a, b) > ROW('x', 'y')的行比较进行索引搜索时,会在到达b列的 NULL 条目时停止,忽略了b列可能有与更靠后的a值关联的非 NULL 值这一事实。避免因重命名文件前后未充分调用
fsync()而导致的不太可能的数据丢失场景(Michael Paquier、Tomas Vondra、Andres Freund)正确处理服务器启动期间
pg_subtrans接近 XID 回卷的情况(Jeff Janes)修复因多次尝试释放
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 的 Tab 补全逻辑,使其正确处理多字节字符(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)在 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 版,涉及阿塞拜疆、智利、海地、巴勒斯坦和俄罗斯(阿尔泰、阿斯特拉罕、基洛夫、萨哈林、乌里扬诺夫斯克地区)的夏令时法规变更,以及立陶宛、摩尔多瓦和俄罗斯(加里宁格勒、萨马拉、伏尔加格勒)的历史数据修正。