E.122. 版本 8.4.1 #
发行日期:. 2009-09-09
本次发布包含对 8.4 的多方面修复。有关 8.4 大版本中新特性的信息,请参见第 E.123 节。.
E.122.1. 迁移到版本 8.4.1
对于运行 8.4.X 的用户,不需要进行转储/恢复。
E.122.2. 变更
修复归档恢复结束时的 WAL 页头初始化(Heikki)
这可能导致后续归档恢复中无法处理 WAL。
修复“恢复期间不能创建新的 WAL 条目”错误(Tom)
修复崩溃后可能使已过期行可见的问题(Tom)
此缺陷涉及页状态位在服务器崩溃后可能未被正确设置。
不允许在安全定义者函数内使用
RESET ROLE和RESET SESSION AUTHORIZATION(Tom、Heikki)这覆盖了先前禁止在安全定义者函数内使用
SET ROLE和SET SESSION AUTHORIZATION的补丁中遗漏的一种情形。(参见 CVE-2007-6600)把对已装载的可装载模块的
LOAD变为无操作(Tom)此前
LOAD会试图卸载并重新装载模块,但这不安全也不太有用。让窗口函数的
PARTITION BY和ORDER BY项总是被解释为简单表达式(Tom)在 8.4.0 中这些列表按照用于顶层
GROUP BY和ORDER BY列表的规则解析。但这不符合 SQL 标准,而且可能导致循环。修复半连接规划中的若干错误(Tom)
这导致某些
IN或EXISTS与另一个连接一起使用的情形下查询结果错误。修复对处于外连接之内的子查询的整行引用的处理(Tom)
例子是
SELECT COUNT(ss.*) FROM ... LEFT JOIN (SELECT ...) ss ON ...。这里,对于空扩展的连接行,ss.*会被当作ROW(NULL,NULL,...),这与简单 NULL 不同。现在它被当作简单 NULL。修复 Windows 共享内存分配代码(Tsutomu Yamada、Magnus)
此缺陷导致常被报告的“无法重新附加到共享内存”错误消息。
修复 plperl 的区域设置处理(Heikki)
此缺陷可能导致调用 plperl 函数时服务器的区域设置改变,进而导致数据损坏。
修复 reloptions 的处理,确保设置一个选项不会强制其他选项取默认值(Itagaki Takahiro)
确保“快速关闭”请求会强制终止打开的会话,即使“智能关闭”已在进行中(Fujii Masao)
避免
GROUP BY查询中array_agg()的内存泄漏(Tom)把
to_char(..., 'TH')在'HH'/'HH12'下当作大写序数后缀(Heikki)它以前被当作
'th'(小写)处理。对
time和time with time zone输入,在EXTRACT(second)和EXTRACT(milliseconds)的结果中包含小数部分(Tom)这在浮点日期时间配置下一直正常,但在整数日期时间代码中损坏了。
修复
x超过 200 万且使用整数日期时间时INTERVAL '的溢出(Alex Hunsaker)xms'改进索引扫描中处理 TOAST 值时的性能(Tom)
这对 PostGIS 特别有用。
修复一个使
commit_delay失效的笔误(Jeff Janes)如果服务器以安静模式启动,把早期启动消息输出到
postmaster.log(Tom)此前这类错误消息被丢弃,导致调试困难。
移除已翻译的 FAQ(Peter)
它们现在位于 wiki。主 FAQ 此前已被移到 wiki。
修复 pg_ctl,使其在
postgresql.conf为空时不进入无限循环(Jeff Davis)修复 pg_dump 的
--binary-upgrade模式中的若干错误(Bruce、Tom)pg_dump --binary-upgrade由 pg_migrator 使用。修复
contrib/xml2的xslt_process(),使其正确处理最大参数数量(二十个)(Tom)改进 libpq 从
COPY FROM STDIN期间错误中恢复的代码的健壮性(Tom)避免在两个库都安装时包含相互冲突的 readline 和 editline 头文件(Zdenek Kotala)
绕过 gcc 在某些平台上导致“浮点异常”而非“除以零”的缺陷(Tom)
把时区数据文件更新为 tzdata 版本 2009l for DST law changes in Bangladesh, Egypt, Mauritius。