E.102. 版本 8.1.23
发布日期: 2010-12-16
这个版本包含各种自8.1.22以来的修复。关于8.1主版本的新特性信息, 请查看Section E.125。
这预计是8.1.X系列的最后一个PostgreSQL版本。 推荐用户尽快更新到一个新的版本分支。
E.102.1. 迁移到版本 8.1.23
运行8.1.X的用户不需要转储/恢复。不过,如果你是从一个早于8.1.18的版本升级而来, 那么请查看8.1.18的版本声明。
E.102.2. 修改列表
强制Linux上
wal_sync_method
的缺省为fdatasync
(Tom Lane, Marti Raudsepp)Linux上的缺省实际上是
fdatasync
已经很多年了,但是最近的内核改变导致PostgreSQL选择了open_datasync
。这个选择不会导致任何性能提升,并且在某些文件系统上引起了彻底的失败,尤其是ext4
和data=journal
挂载选项。当起始检查点WAL记录和它的重做点不在同一个WAL段时,修复来自基础备份的恢复 (Jeff Davis)
添加在
IA64
上检测注册堆栈溢出的支持 (Tom Lane)IA64
体系结构有两个硬件堆栈。全面预防堆栈溢出失败需要两个都检查。添加对
copyObject()
中堆栈溢出的检查 (Tom Lane)某些的代码路径可能会由于堆栈溢出给出一个足够复杂的查询而崩溃。
修复临时GiST索引中的页分裂检测 (Heikki Linnakangas)
在一个临时索引上有一个"并发的"页分裂是可能的,如果例如当完成一个插入时正好有一个开放的游标扫描索引。GiST未能检测这种情况,并且因此导致游标的执行继续时给出错误的结果。
当正在
ANALYZE
复杂索引表达式时,避免内存泄露 (Tom Lane)确保使用整行变量的索引仍然依赖于它的表 (Tom Lane)
像
create index i on t (foo(t.*))
这样的索引声明在它的表被删除时,将不会自动被删除。不要用多个
OUT
参数"内联"一个SQL函数 (Tom Lane)这避免了由于丢失预期的结果行类型的信息而引起的可能的崩溃。
修复
COALESCE()
表达式的常量合并 (Tom Lane)规划器有时尝试评估子表达式而实际上是不可能的,有可能导致意想不到的错误。
为
InhRelation
结点添加打印功能 (Tom Lane)这避免了启用
debug_print_parse
和执行某些类型的查询时的失败。修复点到水平线段间距离的不正确的计算 (Tom Lane)
这个错误影响几个不同的几何距离测量操作符。
修复PL/pgSQL处理"简单的"表达式,在递归或错误恢复的情况下不要失败 (Tom Lane)
修复
contrib/cube
的GiST picksplit算法中的错误 (Alexander Korotkov)这会导致
cube
字段上GiST索引中大量的低效,和不完全正确的答案。如果你有这样的一个索引,考虑安装这个更新之后REINDEX
它。不要在
contrib/dblink
中发出"标识符将被截断"的通知,除非是在创建新的连接 (Itagaki Takahiro)修复
contrib/pgcrypto
中丢失的公共键上潜在的内核转储 (Marti Raudsepp)修复
contrib/xml2
的XPath查询函数中的内存泄露 (Tom Lane)更新时区数据文件到tzdata版本2010o,因为DST规律在Fiji和Samoa发生了改变;还有对Hong Kong的历史纠正。