E.5. 版本 8.4.18 #
发行日期
2013-10-10
本次发布包含对 8.4.17 的多方面修复。有关 8.4 大版本中新特性的信息,请参见第 E.23 节。
E.5.2. 变更
防止尝试对标识符做大小写折叠时损坏多字节字符(Andrew Dunstan)
PostgreSQL 只在使用单字节服务器编码时才对非 ASCII 字符做大小写折叠。
修复由
lo_open()失败导致的内存泄漏(Heikki Linnakangas)修复
work_mem使用超过 24GB 内存时的内存过度提交缺陷(Stephen Frost)修复使用 SSL 时 libpq 中的死锁缺陷(Stephen Frost)
正确计算包含大量 NULL 值的布尔列的行数估计(Andrew Gierth)
此前,
col IS NOT TRUE和col IS NOT FALSE这类测试在估计计划代价时没有正确考虑 NULL 值。防止把
WHERE子句下推到不安全的UNION/INTERSECT子查询中(Tom Lane)SELECT列表中包含集合返回函数或易变函数的UNION或INTERSECT子查询可能被不当优化,导致运行时错误或错误的查询结果。修复罕见的 “failed to locate grouping columns” 规划器失败情况(Tom Lane)
改进视图转储代码对被引用表中已删除列的处理(Tom Lane)
修复并发执行
CREATE INDEX CONCURRENTLY操作时可能出现的死锁(Tom Lane)修复
regexp_matches()对零长度匹配的处理(Jeevan Chalke)此前,像 '^' 这样的零长度匹配可能返回过多的匹配。
修复过于复杂的正则表达式导致崩溃的问题(Heikki Linnakangas)
修复反向引用与非贪婪量词组合时正则表达式匹配失败的问题(Jeevan Chalke)
除非启用了函数体检查,否则防止
CREATE FUNCTION检查SET变量(Tom Lane)修复
pgp_pub_decrypt(),使其可用于带口令的密钥(Marko Kreen)移除无索引表清理期间罕见的不准确警告(Heikki Linnakangas)
避免在预备查询中执行事务控制命令(例如
ROLLBACK)时可能出现的失败(Tom Lane)确保浮点数据输入在所有平台上都接受标准的“infinity”(无穷大)写法(Tom Lane)
C99 标准规定允许的写法为
inf、+inf、-inf、infinity、+infinity和-infinity。即使平台的strtod函数不支持,也确保我们能识别这些写法。扩展行与记录和数组比较的能力(Rafal Rzepecki、Tom Lane)
把时区数据文件更新为 tzdata 版本 2013d(以色列、摩洛哥、巴勒斯坦和巴拉圭的夏令时法规变更)。另外,还修正了麦格理岛的历史时区数据。