E.53. 版本 9.3.4

E.53.1. 迁移到版本 9.3.4
E.53.2. 修改列表

发布日期:. 2014-03-20

这个版本包含各种自9.3.3以来的修复。关于9.3主版本的新特性信息, 请查看第 E.57 节

E.53.1. 迁移到版本 9.3.4

运行9.3.X的用户不需要转储/恢复。

不过,在下面第一条修改日志项中修复的错误会导致备用服务器上的数据损坏。 在安装这个更新之后,要小心的从更新了的基础备份中重新启动备用服务器。

另外,如果你是从一个早于9.3.3的版本升级而来, 那么请查看第 E.54 节

E.53.2. 修改列表

  • 修复锁定一个早已更新了的元组的WAL重放 (Andres Freund,Álvaro Herrera)

    这个错误导致更新了的行不能被索引扫描找到,根据是否使用索引扫描, 获得不一致的查询结果。随后的处理会导致约束违反, 因为随后的索引扫描不能发现之前更新了的行,因此可能允许插入冲突的行。 因为这个错误存在于WAL重放中,它只会在崩溃恢复或在备用服务器上出现。 不适当的重放情况通常出现在被外键约束引用的表行更新与引用行的创建并发时。

  • 无条件的转储GIN元页,以避免页撕裂的风险 (Heikki Linnakangas)

    尽管这个疏忽理论上会导致索引损坏,但是在现实中不大可能导致任何问题, 因为GIN元页的活动部分远远小于标准512字节磁盘扇区。

  • 在收到NOTIFY消息期间,避免检查事务提交状态中的竞态条件 (Marko Tiikkaja)

    这阻止了足够快的客户端在通知者所做的数据库更新被接收者可见之前, 响应通知的情况。

  • 允许在UPDATEDELETE命令中引用物化视图 (Michael Paquier)

    以前这样的查询会失败,抱怨不能锁定物化视图中的行。

  • 允许查询取消请求提早中断正则表达式操作 (Tom Lane)

    这阻止了病态的正则表达式很长一段时间都在查找服务器处理而不能中断的情况。

  • 删除尝试允许带有单元素行参数的OVERLAPS的不正确代码 (Joshua Yanovski)

    这些代码从未正确的运行过,并且因此该情况从未被SQL标准指出过,也没有记录, 看起来删除它比修复它更好一些。

  • 在反解析规则或视图时,避免获得多于AccessShareLock个锁 (Dean Rasheed)

    这个疏忽导致pg_dump意外的请求规则中 INSERT/UPDATE/DELETE命令提到的目标表上的 RowExclusiveLock锁。虽然通常无害,但是会干扰尝试在这些表上获取, 例如ShareLock锁的并发事务。

  • 改善规划期间索引端点探针的性能 (Tom Lane)

    这个修改修复了一个重要的性能问题,该问题发生在索引末端有许多未提交的行时, 这是顺序分配值上的索引的共同情况,比如时间戳或顺序生成的标识符。

  • value IN (list) and value operator ANY (array)表达式使用非缺省选择性估计, 当右侧是一个固定的表达式时 (Tom Lane)

  • DROP DATABASE期间删除正确的每数据库统计文件 (Tomas Vondra)

    这个修复阻止了状态文件空间的永久泄露。自升级到PostgreSQL 9.3以来, 已经执行过多次DROP DATABASE命令的用户可能希望检查他们的统计目录, 并删除任何不再对应现有数据库的统计文件。请注意,不要删除db_0.stat

  • 修复walsender ping逻辑,以避免在连续负载时不适当的断开 (Andres Freund, Heikki Linnakangas)

    如果walsender经常忙碌的发送WAL数据, 那么它会未能发送ping消息到客户端;但是它会期望看到ping响应, 并且因此一旦过去wal_sender_timeout, 他就断开连接。

  • 修复客户端是pg_receivexlog时, walsender未能干净的关闭 (Fujii Masao)

  • 在执行跟随着归档恢复的崩溃恢复时,正确的检查WAL级别和热备份参数 (Heikki Linnakangas)

  • 修复测试,查看在崩溃后是否立即允许热备份连接 (Heikki Linnakangas)

  • 添加只读data_checksums参数, 显示是否启动了页面校验和 (Heikki Linnakangas)

    没有这个参数,就很难确定校验和处理的状态。

  • 在报告非ERROR消息时阻止中断 (Tom Lane)

    这防卫了由于到syslog()的递归项引起的罕见服务器处理冻结, 还有可能的其他相关问题。

  • 修复返回一个复合结果,包括多个OUT参数情况时PL/Perl中的内存泄露 (Alex Hunsaker)

  • 修复从外联数据\copy期间,psql 脚本行号的追踪 (Kumar Rajeev Rastogi, Amit Khandekar)

    \copy ... from增加每个数据行的脚本文件行号,即使数据不是来自该脚本文件。 这个错误导致在相同的脚本文件中稍后发生的任何错误报告错误的行号。

  • 修复contrib/postgres_fdw,正确的处理多行连接条件 (Tom Lane)

    这个疏忽会导致发送WHERE子句到远程服务器执行, 即使还不知道该子句在远程服务器上是否有相同的语义(例如, 使用非内建操作符的子句)。该查询可能会成功, 但是也会因为来自远程服务器的错误而失败,或者只是给出错误的回复。

  • 阻止最近的Windows版本上间歇的could not reserve shared memory region 失败 (MauMau)

  • 更新时区数据文件到tzdata版本2014a, 因为DST规律在斐济和土耳其发生了改变,加上以色列和乌克兰的历史修改。