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/intarray
的query_int
类型和contrib/ltree
的ltxtquery
类型中。为
query_int
类型修复contrib/intarray
的输入函数中的缓冲区溢出 (Apple)这个错误是一个安全风险,因为该函数的返回地址可能会被重写。 感谢Apple Inc的安全团队报告这个问题并且提供该修复。 (CVE-2010-4015)
修复
contrib/seg
的GiST picksplit算法中的bug (Alexander Korotkov)这会导致相当大的低效,尽管不是真的错误回复,在
seg
字段的GiST索引中。 如果你有这样的一个索引,考虑在安装这个更新之后REINDEX
它。 (这和在以前的更新中的contrib/cube
中修复的错误相同。)