多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# E.55\. 发布8.3.22 > **发布日期:** 2012-12-06 该发布包含来自8.3.21中各种修复。关于8.3主要发布中新特性信息, 参阅[Section E.77](#calibre_link-34)。 PostgreSQL社区在2013年2月为8.3.X发布系列停止发布更新。 鼓励用户尽快更新到新版本分支。 ## E.55.1\. 迁移到版本8.3.22 运行8.3.X不需要备份/恢复。 然而,如果从8.3.17更早版本更新,参阅8.3.17发布说明。 ## E.55.2\. 变化 * 修复与`CREATE INDEX CONCURRENTLY`相关的多个错误(Andres Freund, Tom Lane) 当改变索引`pg_index`行状态的时候,修复`CREATE INDEX CONCURRENTLY`以使用适当更新。 这可以防止竞争条件,它可以导致并发会话错过更新目标索引,从而造成损坏同时创建索引。 此外,修复其他各种操作以确保他们忽视由失败`CREATE INDEX CONCURRENTLY`导致的无效索引。 最重要的是,这些是`VACUUM`,因为 在该表上采取纠正措施以修复或者删除无效索引之前自动清理很容易被发动。 * 当内存不足的时候,避免内部哈希表的损坏(Hitoshi Harada) * 修复外部连接上非严格等价子句的规划(Tom Lane) 规划器可以从子句等同于非严格结构中别的方面获取不正确限制, 比如`WHERE COALESCE(foo, 0) = 0` 当`foo`来自外部链接的空侧端时。 * 完善规划器来自等价类排除约束能力(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) 在非常特殊的情况下,这种疏忽可能导致传递 不正确的数据来预检查外键执行触发器逻辑。 这可能会导致系统崩溃,或者关于是否触发触发器的一个不正确的决定。 * 修复`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。