发布日期:. 2013-12-05
这个版本包含各种自8.4.18以来的修复。关于8.4主版本的新特性信息, 请查看第 E.154 节。
运行8.4.X的用户不需要转储/恢复。
这个版本纠正了一个潜在的数据损坏问题。参阅下面的第一条修改日志项, 找出您的安装是否受到了影响,和如果受到了影响应该采取什么步骤。
另外,如果你是从早于8.4.17的版本升级而来,请参阅 第 E.137 节。
修复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。