ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# E.102\. 版本 8.1.23 > **发布日期:** 2010-12-16 这个版本包含各种自8.1.22以来的修复。关于8.1主版本的新特性信息, 请查看[Section E.125](#calibre_link-247)。 这预计是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`](#calibre_link-1432)的缺省为`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的历史纠正。