E.46. 发布8.4.7
发布日期: 2011-01-31
该发布包含8.4.6各种修复。关于8.4主要发布的新功能的各种信息, 参阅Section E.53。
E.46.1. 迁移到版本8.4.7
运行8.4.X不需要备份/恢复。然而,如果你从8.4.2更早版本更新, 参阅8.4.2的发布说明。
E.46.2. 变化
当
EXPLAIN
尝试显示简单形式CASE
表达式时, 避免错误(Tom Lane)如果
CASE
的测试表达式是常量,规划器可以简化CASE
到困惑表达式显示代码形式, 导致"不希望的CASE WHEN子句"错误。修复分配给下标的现有范围的数组片段(Tom Lane)
如果在新添加的下标和最早预先存在的下标之间存在差距, 该代码误算了许多需要从旧的数组无效的位图拷贝的项, 可能导致数据损坏或崩溃。
在规划非常远的日期值时避免意外转换溢出(Tom Lane)
date
类型支持比通过timestamp
类型表示的更广泛日期, 但是规划器假设它完全可以将日期转换为timestamp。当
standard_conforming_strings
是on时, 为大对象(BLOBs)修复pg_restore的 文本输出(Tom Lane)虽然直接存储到数据库正常工作,如果 pg_restore要求SQL文本输出并且
standard_conforming_strings
在源数据库中启用,字符串逃逸是不正确的。修复包含
... & !(subexpression) | ...
的tsquery
值的错误解析(Tom Lane)包含操作符这种组合的查询不能正确被执行。同样的错误 存在于
contrib/intarray
的query_int
类型和contrib/ltree
的ltxtquery
类型中。修复
query_int
类型的contrib/intarray
的输入函数中 的缓冲区溢出(Apple)这个错误是一个安全风险,因为该函数的返回地址可以被覆盖。 感谢 Apple Inc的安全团队报告这个问题并且提供修复(CVE-2010-4015)
修复
contrib/seg
的GiST picksplit算法中的错误(Alexander Korotkov)这可能导致相当大的无效率,虽然在
seg
列上的GiST索引中不是真的错误答案。 如果你有这样一个索引,可以在安装这个更新之后考虑下REINDEX
它。 (这与以前更新中contrib/cube
中被修复的错误是相同的)。