E.152. 版本 8.2.19 #
发行日期:. 2010-12-16
本次发布包含对 8.2.18 的多方面修复。有关 8.2 大版本中新特性的信息,请参见第 E.171 节。.
E.152.1. 迁移到版本 8.2.19
对于运行 8.2.X 的用户,不需要进行转储/恢复。不过,如果你是从早于 8.2.14 的版本升级,请参阅第 E.157 节。
E.152.2. 变更
强制 Linux 上的默认
wal_sync_method为fdatasync(Tom Lane、Marti Raudsepp)Linux 上的默认值实际上多年来一直是
fdatasync,但最近的内核变更导致 PostgreSQL 改选open_datasync。这一选择没有带来任何性能改进,反而在某些文件系统(特别是使用data=journal挂载选项的ext4)上导致彻底失败。修复 GIN 索引 WAL 重放逻辑中的若干缺陷(Tom Lane)
这可能导致复制期间的 “bad buffer id: 0” 失败或索引内容损坏。
修复当起始检查点 WAL 记录与其重做点不在同一 WAL 段时从基础备份恢复的问题(Jeff Davis)
新增在
IA64上检测寄存器栈溢出的支持(Tom Lane)IA64架构有两个硬件栈。要完全防止栈溢出失败需要同时检查两者。在
copyObject()中添加栈溢出检查(Tom Lane)给定足够复杂的查询,某些代码路径可能因栈溢出而崩溃。
修复临时 GiST 索引中页面分裂的检测(Heikki Linnakangas)
在临时索引中可能出现“并发”页面分裂,例如当插入时有打开的游标正在扫描该索引。GiST 未能检测到这种情况,因此当游标继续执行时可能给出错误结果。
避免在
ANALYZE复杂索引表达式时内存泄漏(Tom Lane)确保使用整行 Var 的索引仍依赖于其表(Tom Lane)
像
create index i on t (foo(t.*))这样声明的索引在删除其表时不会自动被删除。不要“内联”带多个
OUT参数的 SQL 函数(Tom Lane)这避免了因丢失预期结果行类型信息而可能出现的崩溃。
修复当
ORDER BY、LIMIT、FOR UPDATE或WITH附加到INSERT ... VALUES的VALUES部分时的正确行为(Tom Lane)修复
COALESCE()表达式的常量折叠(Tom Lane)规划器有时会尝试求值实际上永远不可达的子表达式,可能导致意外错误。
为
InhRelation节点添加打印功能(Tom Lane)这避免了启用
debug_print_parse且执行某些类型的查询时的失败。修复点到水平线段距离的错误计算(Tom Lane)
该缺陷影响多个不同的几何距离测量操作符。
修复 PL/pgSQL 对“简单”表达式的处理,使其在递归或错误恢复情况下不失败(Tom Lane)
修复 PL/Python 对集合返回函数的处理(Jan Urbanski)
在生成集合结果的迭代器内尝试调用 SPI 函数会失败。
修复
contrib/cube的 GiST picksplit 算法中的缺陷(Alexander Korotkov)这可能导致
cube列上的 GiST 索引相当低效,尽管答案并非真正错误。如果你有这样的索引,考虑在安装此更新后对其执行REINDEX。contrib/dblink除了在创建新连接时外不再发出“identifier will be truncated”通知(Itagaki Takahiro)修复
contrib/pgcrypto在缺少公钥时可能的核心转储(Marti Raudsepp)修复
contrib/xml2的 XPath 查询函数中的内存泄漏(Tom Lane)把时区数据文件更新为 tzdata 版本 2010o for DST law changes in Fiji and Samoa; also historical corrections for Hong Kong。