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 FULLCLUSTER期间抑制重新生效而坏掉了, 但是无意间也影响到了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/intarrayquery_int类型和contrib/ltreeltxtquery类型。

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

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

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

    这可能会导致大量的低效,尽管不是实际上错误的答案,在seg字段上的GiST索引中。 如果你有这样的一个索引,那么考虑在安装这个更新之后REINDEX它。 (这与之前更新的contrib/cube中修复的错误相同。)