PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 附录 E. 版本说明 | 下一页

# E.55. 版本 9.0.11

> 发布日期: 2012-12-06

这个版本包含各种自9.0.10以来的修复。想要获得关于9.0主版本的新特性信息， 请参阅第 E.66 节。

## E.55.1. 迁移到版本 9.0.11

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

另外，如果你是从一个早于9.0.6的版本升级而来，请参阅第 E.60 节。

## E.55.2. 修改列表

- 修复了多个与`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 `table` DEFAULT VALUES` (Tom Lane)

- 当在一个查询中有太多`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。

上一页 | 起始页 | 下一页
版本 9.0.12 | 上一级 | 版本 9.0.10