E.81. 版本 8.2.20

发布日期: 2011-01-31

这个版本包含各种自8.2.19以来的修复。关于8.2主版本的新特性信息, 请查看Section E.101

E.81.1. 迁移到版本 8.2.20

运行8.2.X的用户不需要转储/恢复。不过,如果你是从一个早于8.2.14的版本升级而来, 那么请查看8.2.14的版本声明。

E.81.2. 修改列表

  • 避免EXPLAIN尝试显示一个CASE表达式的简单格式时的失败 (Tom Lane)

    如果CASE的测试表达式是一个常量,规划器将简化CASE 为一个混淆表达式显示代码的格式,导致"unexpected CASE WHEN clause"错误。

  • 修复分配给数组切片的下标在现有范围之前 (Tom Lane)

    如果在新添加的下标和已经存在的下标之间存在间隔, 代码错误计算有多少项需要从老的数组的空位图中拷贝, 潜在的导致数据损坏或崩溃。

  • 避免规划器中非常遥远的日期值意外的转换溢出 (Tom Lane)

    date类型比timestamp类型可以表示的日期支持的范围更加广泛, 但是规划器假设它总是可以将日期转换为时间戳而不受惩罚。

  • 修复启用standard_conforming_strings时, pg_restore为大对象(BLOBs)的文本输出 (Tom Lane)

    尽管直接恢复到一个数据库能正确的工作,但是如果pg_restore 要求SQL文本输出和standard_conforming_strings已经在源数据库中启用了的话, 字符串的逃逸是不正确的。

  • 修复包含... & !(subexpression) | ...tsquery值的错误解析 (Tom Lane)

    包含这种操作符组合的查询没有正确的执行,相同的错误存在于contrib/intarrayquery_int类型和contrib/ltreeltxtquery类型中。

  • query_int类型修复contrib/intarray的输入函数中的缓冲区溢出 (Apple)

    这个错误是一个安全风险,因为该函数的返回地址可能会被重写。 感谢Apple Inc的安全团队报告这个问题并且提供该修复。 (CVE-2010-4015)

  • 修复contrib/seg的GiST picksplit算法中的bug (Alexander Korotkov)

    这会导致相当大的低效,尽管不是真的错误回复,在seg字段的GiST索引中。 如果你有这样的一个索引,考虑在安装这个更新之后REINDEX它。 (这和在以前的更新中的contrib/cube中修复的错误相同。)