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

# E.81. 版本8.4.8

> 发布日期: 2011-04-18

该发布包含来自8.4.7的各种修复， 关于8.4主要发布的新功能信息， 参阅第 E.89 节。

## E.81.1. 迁移到版本8.4.8

运行8.4.X不需要备份/恢复。

然而，如果你的安装是通过运行pg_upgrade从 原先主要发布中更新，你应该采取措施避免 由于pg_upgrade中现在修复错误 可能的数据丢失。建议方法是在所有TOAST表上运行`VACUUM FREEZE`。 http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix中更多信息可用。

另外，如果你从8.4.2更早版本更新，参阅第 E.87 节。

## E.81.2. 变化

- 修复pg_upgrade的TOAST表处理(Bruce Momjian)

  TOAST表的`pg_class`.`relfrozenxid`值 不能被正确拷贝到pg_upgrade中的新安装中。 当它们仍然需要验证TOAST表中的元组时，这可能会导致丢弃`pg_clog`， 导致"无法访问事务状态"错误。

  这个错误引起使用pg_upgrade更新的安装中数据丢失的显著风险。 该补丁校对pg_upgrade未来使用中的错误， 但是自身并不能解决已被pg_upgrade旧版本处理的安装中的问题。

- 抑制不正确的"PD_ALL_VISIBLE标记被不正确地设置"警告(Heikki Linnakangas)

  `VACUUM`有时在实际有效的情况下发出警告。

- 不允许完全包含复合类型(Tom Lane)

  当处理复合类型的时候，这可以避免服务器无限地重现的情况。虽然有些可能 用这种结构，它们似乎不足以证明可以确保安全工作。

- 避免目录缓存初始化期间潜在死锁(Nikhil Sontakke)

  在某些情况下，缓存加载代码会在锁定索引的目录之前的系统索引上获取共享锁。 这可能停顿过程以试图获取排他锁，采用更多的标准顺序。

- 当有一个并发更新到目标元组时，修复`BEFORE ROW UPDATE`触发器处理中的 悬挂指针问题(Tom Lane)

  当尝试执行`UPDATE RETURNING ctid`的时候， 已被观察到的这个错误导致间歇性"无法从虚拟元组提取系统属性"错误。 对于更严重的错误有一个非常小的概率，如为更新的元组产生不正确的索引项。

- 当有表的等待延迟触发器事件时，不允许`DROP TABLE`(Tom Lane)

  以前`DROP`可以通过，当触发器最终被唤起时， 导致"无法打开OID nnn关系"的错误。

- 在GEQO优化期间，避免通过常量错误WHERE条件触发崩溃(Tom Lane)

- 提高半连接和反连接情况中规划器的处理(Tom Lane)

- 修复解释空的原因的文本搜索的选择性估计(Jesper Krogh)

- 提高处理已删除列行类型的PL/pgSQL的能力(Pavel Stehule)

  这是在9.0之前修复后补丁。

- 修复涉及到数组片段的PL/Python内存泄露(Daniel Popowich)

- 修复pg_restore处理TOC文件中长线(超过1KB) (Tom Lane)

- 采取更多防御措施阻止崩溃，由于使用过度热情的编译器优化除以零(Aurelien Jarno)

- 支持MIPS上FreeBSD和OpenBSD中dlopen()的使用(Tom Lane)

  有一个硬连线假设，即该系统函数 在这些系统上的MIPS硬件上不可用。代替使用编译测试， 因为最新版本中存在。

- 修复HP-UX上编译失败(Heikki Linnakangas)

- 解决Windows上与libintl版本不兼容问题(Hiroshi Inoue)

- 修复Windows编译脚本中xcopy的使用 以便在Windows 7中正常工作(Andrew Dunstan)

  这只影响到编译脚本，没有安装或者使用。

- 修复Cygwin上的pg_regress使用的路径分隔符(Andrew Dunstan)

- 为了Chile, Cuba, Falkland Islands, Morocco, Samoa, 和Turkey中DST变化规律更新时区数据文件到tzdata发布2011f； 同时为South Australia, Alaska和Hawaii进行历史修正。

上一页 | 起始页 | 下一页
版本8.4.9 | 上一级 | 版本8.4.7