版本 8.4.19

PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 附录 E. 版本说明 | 下一页

# E.70. 版本 8.4.19

> 发布日期: 2013-12-05

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

## E.70.1. 迁移到版本 8.4.19

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

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

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

## E.70.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)

- 修复`int2vector`和`oidvector`值的数组切片 (Tom Lane)

  这种形式的表达式现在隐式的提升为正规的`int2`或 `oid`数组。

- 修复使用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)

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

- 修复ecpg对`varchar`声明的变量列表的处理 (Zoltán Böszörményi)

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

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

上一页 | 起始页 | 下一页
版本 8.4.20 | 上一级 | 版本8.4.18