E.31. 版本 9.0.3
发布日期: 2011-01-31
这个版本包含各种自9.0.2以来的修复。要想获得关于9.0主版本的新特性, 请参阅Section E.34。
E.31.1. 迁移到版本 9.0.3
运行9.0.X版本的用户不需要转储/恢复。
E.31.2. 修改列表
在退出walreceiver之前,确保所有接收到的WAL同步到磁盘 (Heikki Linnakangas)
否则备用服务器会重放一些未同步的WAL,想象的到,如果系统正好在此时崩溃,则会导致数据损坏。
避免walreceiver中过度的同步活动 (Heikki Linnakangas)
需要时使
ALTER TABLE
的唯一性和排除约束重新生效 (Noah Misch)这在9.0中,由于试图在
VACUUM FULL
和CLUSTER
期间抑制重新生效而坏掉了, 但是无意间也影响到了ALTER TABLE
。为继承树的
UPDATE
修复EvalPlanQual,该继承树中的表并不都是相似的 (Tom Lane)表行类型(包括只在一些子表中出现的少量的字段)的任何变化都将使EvalPlanQual代码混乱, 导致错误行为甚至崩溃。因为EvalPlanQual只在并发更新到相同的行时执行, 该问题只能间歇的看到。
避免
EXPLAIN
试图显示一个简单形式的CASE
表达式时的失败 (Tom Lane)如果
CASE
的测试表达式是一个常量,那么规划器将简化CASE
为一个困惑表达式显示代码的形式,导致"unexpected CASE WHEN clause"错误。修复现有下标范围之前的数组切片的分配 (Tom Lane)
如果新添加的下标和原先存在的下标之间存在一个缺口, 代码错误估算了需要多少条目从老数组的空位图中拷贝,可能导致数据损坏或崩溃。
避免为了非常远的日期值在规划器中意外的转换溢出 (Tom Lane)
date
类型比timestamp
类型支持更大范围的日期, 但是规划器假设它可以总是不受惩罚的转换一个日期为时间戳。修复一个数组包含空条目时的PL/Python损坏 (Alex Hunsaker)
为定义一个数组维度的常量删除ecpg的固定的长度限制 (Michael Meskes)
修复包含
... & !(subexpression) | ...
的tsquery
值的错误解析 (Tom Lane)包含这些操作符的组合的查询没有正确的执行。相同的错误存在于
contrib/intarray
的query_int
类型和contrib/ltree
的ltxtquery
类型。修复
contrib/intarray
的query_int
类型输入函数中的缓冲区溢出 (Apple)这个错误是一个安全风险,因为该函数的返回地址会被重写。 感谢Apple Inc的安全团队报告这个问题并提供了该修复。 (CVE-2010-4015)
修复
contrib/seg
的GiST picksplit算法中的错误 (Alexander Korotkov)这可能会导致大量的低效,尽管不是实际上错误的答案,在
seg
字段上的GiST索引中。 如果你有这样的一个索引,那么考虑在安装这个更新之后REINDEX
它。 (这与之前更新的contrib/cube
中修复的错误相同。)