E.21. 版本 9.0.13

发布日期: 2013-04-04

这个版本包含各种自9.0.12以来的修复。想要获得关于9.0主版本的新特性信息, 请参阅Section E.34

E.21.1. 迁移到版本 9.0.13

运行9.0.X的系统不需要转储/恢复。

不过,这个版本纠正了几个管理GiST索引的错误。在安装这个更新之后, 建议REINDEX任意满足一个或多个下面描述的条件的GiST索引。

另外,如果你是从一个早于9.0.6的版本升级而来,请参阅9.0.6的版本说明。

E.21.2. 修改列表

  • 修复了不安全的服务器命令行开关的分析 (Mitsumasa Kondo, Kyotaro Horiguchi)

    一个包含数据库名的连接请求以"-"开始有可能被破坏, 或破坏服务器的数据目录中的文件,即使最终拒绝了该请求。 (CVE-2013-1899)

  • 在每个postmaster子进程中重置OpenSSL随机状态 (Marko Kreen)

    这避免了contrib/pgcrypto函数生成的随机数很容易被另一个数据库用户猜到的情况。 该风险只在postmaster用ssl = on 配置但是大多数连接不使用SSL加密时是重要的。 (CVE-2013-1900)

  • 修复了GiST索引在不适当的时候不使用"fuzzy"几何比较 (Alexander Korotkov)

    核心几何类型执行比较使用"fuzzy"相等,但是gist_box_same 必须做精确的比较,否则GiST使用它索引可能变成不一致的。在安装这个更新之后, 用户应该REINDEXbox, polygon, circle, 或 point字段之上的任何GiST索引,因为所有这些索引都使用gist_box_same

  • 修复为变量范围的数据类型使用contrib/btree_gist 的错误的范围联合和GiST索引中的处罚逻辑,这些是text, bytea, bit, 和 numeric字段 (Tom Lane)

    这些错误可能导致不一致的索引,使某些现有的键不能被搜索到,和无用的索引膨胀。 建议用户在安装这个更新之后REINDEX这样的索引。

  • 修复多字段索引的GiST页分裂代码中的错误 (Tom Lane)

    这些错误可能导致不一致的索引,使某些现有的键不能被搜索到,和索引中不需要的无效搜索。 建议用户在安装这个更新之后REINDEX多字段GiST索引。

  • 修复gist_point_consistent处理模糊一致 (Alexander Korotkov)

    Gist索引在point字段上的索引扫描可能有时产生不同于顺序扫描的结果, 因为gist_point_consistent与潜在的操作符代码关于是否做比较或模糊不一致。

  • 修复WAL重放中的缓冲区泄露 (Heikki Linnakangas)

    这个错误可能导致重放期间的"incorrect local pin count"错误,使恢复成为不可能。

  • 修复DELETE RETURNING中的竞态条件 (Tom Lane)

    在正确的情况下,DELETE RETURNING可以尝试从当前进程不再有任何pin的共享缓冲区获取数据。 如果同时其他的进程改变了该缓冲区,那么会导致垃圾RETURNING输出, 或者甚至会崩溃。

  • 修复正则表达式编译中无限循环的风险 (Tom Lane, Don Porter)

  • 修复正则表达式编译中潜在的空指针解除参照 (Tom Lane)

  • 修复to_char()在适当的地方只使用ASCII小写化规则 (Tom Lane)

    这个修复了一些应该环境独立的临时模式的错误行为,但是在Turkish环境中错误操作 "I"和"i"。

  • 修复了不想要的时间戳1999-12-31 24:00:00的拒绝

  • 修复了一个单一事务做UNLISTEN然后LISTEN的逻辑错误 (Tom Lane)

    该会话一点也不监听通知事件,尽管它在这种情况下很确定的应该监听。

  • 删除没有用的"picksplit doesn't support secondary split"日志消息 (Josh Hansen, Tom Lane)

    这个消息看起来已经添加到了从没有写过的期望代码,并且可能永远不写, 因为GiST的二次分裂的缺省处理实际上非常好。所以停止给最终用户说这个。

  • 修复可能的错误:发送会话的最后几个事务提交/终止计数到统计收集器 (Tom Lane)

  • 消除PL/Perl的spi_prepare()函数中的内存泄露 (Alex Hunsaker, Tom Lane)

  • 修复pg_dumpall处理正确的包含"="的数据库名 (Heikki Linnakangas)

  • 当给出不正确的连接字符串时避免pg_dump中的崩溃 (Heikki Linnakangas)

  • 忽略pg_dump和pg_upgrade中无效的索引 (Michael Paquier, Bruce Momjian)

    转储无效的索引会在恢复时导致问题,例如, 如果索引创建失败的原因是因为它试图通过表的数据强制一个不合适的唯一条件。 还有,如果索引创建实际上仍在进行,那么认为这是一个未提交的DDL变化看起来是合理的, pg_dump无论如何也不会转储。pg_upgrade 现在也跳过无效的索引而不是失败。

  • 修复contrib/pg_trgmsimilarity()函数, 使其为trigram-less字符串返回0 (Tom Lane)

    以前因为内部除零,它返回NaN

  • 更新时区数据文件为tzdata版本2013b,为DST规律在Chile, Haiti, Morocco, Paraguay, 和一些Russian地区的改变。还有,为许多地区修正历史的时区数据。

    还有,为在Russia和其他地方里的最近的改变更新时区缩写文件:CHOT, GET, IRKT, KGT, KRAT, MAGT, MAWT, MSK, NOVT, OMST, TKT, VLAT, WST, YAKT, YEKT现在跟随它们的当前含义,VOLT (Europe/Volgograd)和 MIST (Antarctica/Macquarie)添加到了缺省的缩写列表。