多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# E.38\. 发布8.4.15 > **发布日期:** 2012-12-06 该发布包含了8.4.14中的各种修复。 关于8.4主要发布的新功能信息,参阅[Section E.53](#calibre_link-49)。 ## E.38.1\. 迁移到版本8.4.15 运行8.4.X不需要备份/恢复。 然而,如果你从8.4.10更早版本开始更新,参阅8.4.10的发布说明。 ## E.38.2\. 变化 * 修复与`CREATE INDEX CONCURRENTLY`有关的多个错误(Andres Freund, Tom Lane) 当改变索引的`pg_index`行的状态时,修复`CREATE INDEX CONCURRENTLY` 以使用就地更新。这避免了竞争条件, 它可以导致并发会话错过更新目标索引, 因此导致崩溃同时已创建索引。 同时,修复各种其他操作以确保他们忽略来源于 失败的 `CREATE INDEX CONCURRENTLY`命令的无效索引。 这些中最重要的是`VACUUM`, 因为在采取的纠正措施用于修复或删除无效索引之前, 在表上自动清理可以很容易地被运行。 * 当内存不足时,避免内部哈希表崩溃(Hitoshi Harada) * 修复外连接上非严格等价子句规划(Tom Lane) 规划器可以从等同于其它东西的非严格建构的分句中获取不正确约束, 比如 当`foo`来源于外连接失效端时,`WHERE COALESCE(foo, 0) = 0`。 * 提高规划器证明来自等价类排除约束的能力(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) * 如果Unix域套接字路径名长度超过平台特定限制, 那么会产生可以理解的错误消息(Tom Lane, Andrew Dunstan) 先前,这可能导致一些无用的东西,比如 "域名解析中不可恢复故障"。 * 当发送复合列值给客户端时,修复内存泄露(Tom Lane) * 使得pg_ctl关于读取`postmaster.pid`文件更加鲁棒(Heikki Linnakangas) 修复竞争条件和可能的文件描述符泄露。 * 如果给出错误编码数据并且`client_encoding`设置是 客户端编码,比如SJIS,那么修复psql中的可能崩溃(Jiang Guiqing) * 修复`tar`输出格式中通过pg_dump发出的 `restore.sql`脚本中的错误(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) * 当检查页的时候,使得`contrib/pageinspect`的btree页检查函数 采取缓冲锁(Tom Lane) * 修复pgxs以支持AIX上编译可加载模块(Tom Lane) 编译不在AIX上运行的源码树外部模块。 * 为了Cuba, Israel, Jordan, Libya, Palestine, Western Samoa以及Brazil部分中的DST变化规律 更新时区数据文件到tzdata发布2012j。