E.135. 版本 8.4.19

E.135.1. 迁移到版本 8.4.19
E.135.2. 修改列表

发布日期:. 2013-12-05

这个版本包含各种自8.4.18以来的修复。关于8.4主版本的新特性信息, 请查看第 E.154 节

E.135.1. 迁移到版本 8.4.19

运行8.4.X的用户不需要转储/恢复。

这个版本纠正了一个潜在的数据损坏问题。参阅下面的第一条修改日志项, 找出您的安装是否受到了影响,和如果受到了影响应该采取什么步骤。

另外,如果你是从早于8.4.17的版本升级而来,请参阅 第 E.137 节

E.135.2. 修改列表

  • 修复VACUUM的测试,查看它是否可以更新 relfrozenxid (Andres Freund)

    VACUUM(手动或自动)的某些情况下,会错误的增加一个表的 relfrozenxid值,允许元组逃离冻结,导致一旦过去2^31个事务, 这些行就变得不可见了。数据丢失的可能性要低的多,因为在数据真正的丢失之前, 需要多个不正确的进展,但也不是没有。从8.4.8或更早版本升级而来的用户没有受到影响, 但是所有随后的版本都包含了这个错误。

    这个问题可以通过升级、在vacuum_freeze_table_age 设置为零的情况下清理所有数据库中的表来改善。这可以修复任何潜在的损坏, 但是不能修复所有已经存在的数据错误。不过,如果一个安装已经执行的更新事务少于2^31 (使用SELECT txid_current() < 2^31检查), 那么可以假设在执行清理之后该安装是安全的。

  • 修复GIN索引发布树页面删除中的竞态条件 (Heikki Linnakangas)

    这会导致短暂的错误回复或查询失败。

  • 避免展开一个SELECT列表的子SELECT 中包含易变函数的查询 (Tom Lane)

    这避免了由于额外的计算易变函数而导致意想不到的结果。

  • 修复规划器对非简单变量子查询输出嵌套在外连接中的处理 (Tom Lane)

    这个错误会导致对JOIN语法中包含多级别子查询的查询的错误规划。

  • 修复过早删除临时文件 (Andres Freund)

  • 修复规则输出中可能的读取过去的内存 (Peter Eisentraut)

  • 修复int2vectoroidvector值的数组切片 (Tom Lane)

    这种形式的表达式现在隐式的提升为正规的int2oid数组。

  • 修复使用SQL标准、简单的GMT偏移时区时的错误行为 (Tom Lane)

    在某些情况下,当系统应该使用常规的时区设置(在选择简单偏移之前它就盛行了)时, 系统使用了简单GMT偏移值。这个修改也导致timeofday 函数遵守简单GMT偏移时区。

  • 阻止记录Windows错误代码的翻译时可能的错误行为 (Tom Lane)

  • 正确的引用pg_ctl中生成的命令行 (Naoya Anzai and Tom Lane)

    该修复仅适用于Windows。

  • 修复pg_dumpall,使其在源数据库通过ALTER DATABASE SET 设置default_transaction_read_only 时也能工作 (Kevin Grittner)

    以前,生成的脚本在恢复期间会失败。

  • 修复ecpgvarchar声明的变量列表的处理 (Zoltán Böszörményi)

  • contrib/lo防卫不正确的触发器定义 (Marc Cousin)

  • 更新时区数据文件到tzdata版本2013h, 因为DST规律在Argentina、Brazil、Jordan、Libya、 Liechtenstein、Morocco和Palestine发生了改变。 还有,Indonesia的新的时区缩写WIB、WIT、WITA。