发布日期:. 2012-12-06
这个版本包含各种自9.0.10以来的修复。想要获得关于9.0主版本的新特性信息, 请参阅第 E.131 节。
修复了多个与CREATE INDEX CONCURRENTLY
相关的错误 (Andres Freund, Tom Lane)
修复CREATE INDEX CONCURRENTLY
以在改变一个索引的pg_index
行的状态时使用按照地点的更新。这阻止了会导致并发会话错过更新目标索引的竞态条件,
因此导致损坏并发创建的索引。
另外,修复了各种其他操作,以保证它们忽略失败的CREATE INDEX CONCURRENTLY
命令产生的无效的索引。最重要的是VACUUM
,
因为在采取正确的动作修复或删除无效的索引之前,一个auto-vacuum可以很容易的在一个表上发起。
修复WAL重放期间的缓冲区锁定 (Tom Lane)
当重放WAL记录影响多于一页时,WAL重放代码关于锁定缓冲区不够小心。 这会导致热备份查询短暂的看到不一致的状态,导致错误响应或意外的失败。
修复在GIN索引的WAL生产逻辑中的一个错误 (Tom Lane)
如果发生页撕裂错误,这会导致索引损坏。
当推进热备份服务器正常运行时,适当的删除启动进程的虚拟XID锁 (Simon Riggs)
这个监管可以阻止特定操作(如CREATE INDEX CONCURRENTLY
)的连续执行。
避免备用模式中虚假的“out-of-sequence timeline ID”错误 (Heikki Linnakangas)
阻止postmaster在收到关闭信号后发起新的子进程 (Tom Lane)
这个错误能引起关闭的时间更长,甚至在没有额外的用户动作下永不完成。
避免内存溢出时内部哈希表的损坏 (Hitoshi Harada)
修复外连接上非绝对相等子句的规划 (Tom Lane)
该规划会导致不正确的约束:一个子句等于一个其他非绝对构造,例如
WHERE COALESCE(foo, 0) = 0
,当foo
来自一个外连接的可为null方时。
改善规划的能力,检验来自相等子句的排他约束 (Tom Lane)
修复散列的子规划中的部分行匹配,正确的处理交叉类型情况 (Tom Lane)
这个影响多字段NOT IN
子规划,如WHERE (a, b) NOT IN (SELECT x, y FROM ...)
中b
和y
分别是int4
和int8
的情况。
这个错误导致错误响应或崩溃依赖于特定包含的数据类型。
当为一个AFTER ROW UPDATE/DELETE
触发器重新抓取老的元组时获得缓冲区锁 (Andres Freund)
在不寻常的情况下,这个疏忽会导致外键强制触发器传送不正确的数据到预先检查逻辑。 这样会导致一个崩溃,或一个关于是否触发该触发器的不正确的决定。
修复ALTER COLUMN TYPE
正确的处理非继承的检查约束 (Pavan Deolasee)
这在8.4之前的版本中运行正确,现在在8.4和之后的版本中也正确运行了。
修复REASSIGN OWNED
处理表空间上的授权 (Álvaro Herrera)
为视图系统字段忽略不正确的pg_attribute
条目 (Tom Lane)
视图没有任何系统字段。不过,我们在转换一个表到一个视图时忘记删除这样的条目。 这在9.3和之后的版本中适当的修复了,但是,在之前的分支中我们需要防卫现存的错误转换的视图。
修复规则打印以正确的转储INSERT INTO
(Tom Lane)table
DEFAULT VALUES
当在一个查询中有太多UNION
/INTERSECT
/EXCEPT
子句时,防止堆栈溢出 (Tom Lane)
当用-1除最小可能的整数时,阻止依赖于平台的失败 (Xi Wang, Tom Lane)
修复日期解析中可能的以字符串结束的存取经过 (Hitoshi Harada)
修复在检查点和wal_level
是hot_standby
期间,
如果发生XID打包未能提前XID纪元的错误 (Tom Lane, Andres Freund)
这个错误对PostgreSQL本身没有特别的影响,
不利于依赖于txid_current()
和相关函数的应用:
TXID值将会看起来向后退了。
如果一个Unix域套接字的路径名长度超出平台特定的限制,则产生一个可以理解的错误消息 (Tom Lane, Andrew Dunstan)
以前,这会产生相当没有帮助的事物,如“Non-recoverable failure in name resolution”。
修复发送复合字段值到客户端时的内存泄露 (Tom Lane)
使pg_ctl读取postmaster.pid
文件更强健 (Heikki Linnakangas)
修复竞态条件和可能的文件描述符泄露。
修复psql中可能的崩溃,如果提出了不正确编码的数据和
client_encoding
设置是一个客户端唯一编码(如 SJIS) (Jiang Guiqing)
修复restore.sql
脚本中的错误,该脚本由pg_dump
以tar
输出格式发出 (Tom Lane)
该脚本在名字包含大写字母的表上将会完全的失败。另外,
使得该脚本可以在--inserts
模式和定期的COPY模式中存储数据。
修复pg_restore接受符合POSIX的tar
文件 (Brian Weaver, Tom Lane)
pg_dump的tar
输出模式的原始编码产生的文件并不完全符合POSIX标准。
这在版本9.3中已经纠正了。这个补丁更新之前的分支,所以它们将接受正确和不正确的格式,
希望9.3出来时避免兼容性问题。
修复pg_resetxlog以正确的定位postmaster.pid
,
当给出一个相关的路径到数据目录时 (Tom Lane)
这个错误会导致pg_resetxlog不注意这里有一个活动的postmaster使用该数据目录。
修复libpq的lo_import()
和lo_export()
函数以适当的报告文件I/O错误 (Tom Lane)
修复ecpg嵌套结构指针变量的流程 (Muhammad Usama)
修复ecpg的ecpg_get_data
函数正确的处理数组 (Michael Meskes)
使contrib/pageinspect
的btree页面检查函数在检查页面时获得缓冲区锁 (Tom Lane)
修复pgxs支持以在AIX上建立可加载的模块 (Tom Lane)
在不在AIX上运行的原始源代码树之外建立模块。
更新时区数据文件到tzdata版本2012j,因为DST规律在下列地区改变了: Cuba, Israel, Jordan, Libya, Palestine, Western Samoa, 还有部分 Brazil。