ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# E.44\. 发布8.4.9 > **发布日期:** 2011-09-26 该发布包含来自8.4.8的各种修复。关于8.4主要发布的新功能的信息, 参阅[Section E.53](#calibre_link-49)。 ## E.44.1\. 迁移到版本8.4.9 为运行8.4.X不需要备份/恢复。 然而,如果你从8.4.8更早版本更新,参阅8.4.8发布说明。 ## E.44.2\. 变化 * 修复存在问题的热更新元组的索引错误(Tom Lane) 这些错误可以导致重新索引系统目录后索引崩溃。 他们不认为会影响用户索引。 * 修复GiST索引页分裂处理的多个错误(Heikki Linnakangas) 发生的概率是很低的,但是可以导致索引失败。 * 修复`tsvector_concat()`中可能的缓冲区溢出(Tom Lane) 该函数低估它的结果所需要的内存量,导致服务器崩溃。 * 当处理"standalone"参数时,修复`xml_recv` 中崩溃(Tom Lane) * 使得`pg_options_to_table`为没有值的选项返回NULL(Tom Lane) 以前这种情况可以导致服务器崩溃。 * 避免在`ANALYZE`和SJIS-2004编码转换中可能访问内存结尾(Noah Misch) 这修复了一些概率很低的服务器崩溃情况。 * 防止间歇性挂在启动进程和bgwriter进程的相互作用中(Simon Riggs) 这影响了在非热备份情况中的恢复。 * 修复relcache初始文件失效的竞态条件(Tom Lane) 有一个Window,其中新的后台进程可以读一个陈旧的初始化文件, 但是忽略了告知它的数据是陈旧的无效消息。 其结果在目录访问中是奇怪的错误,通常在启动之后 "无法读取文件中块0..."。 * 修复在GiST索引扫描结尾的内存泄露(Tom Lane) 执行许多单独GiST索引扫描的命令, 比如包含很多行的表上新的基于排斥约束的GiST验证, 由于这种泄露可能短暂地需要大量内存。 * 修复元组存储可支持游标以及 plpgsql的`RETURN NEXT`命令中不正确的内存计算(可能导致内存膨胀)(Tom Lane) * 当建立一个大的,有损耗的位图时,修复性能问题(Tom Lane) * 修复唯一列的连接选择性估计(Tom Lane) 这修复了可以导致连接结果大小的较差估计的错误的规划器探试。 * 修复只出现在子select目标列中的嵌套PlaceHolderVar表达式(Tom Lane) 这个错误可以导致错误的出现空的外部连接的输出。 * 运行正确优化的嵌套的`EXISTS`查询(Tom Lane) * 修复数组和路径创建函数确保填充字节为零(Tom Lane) 这避免了规划器认为语义上相同的常数是不相等的一种情况,导致低劣的优化。 * 修复`EXPLAIN`以处理内部索引扫描子规划中控制结果节点(Tom Lane) 这种忽视的通常状况是"bogus varno"错误。 * 解决了打破WAL回放的gcc 4.6.0错误(Tom Lane) 这可能会导致服务器崩溃后已提交事务损失。 * 修复视图中`VALUES`备份错误(Tom Lane) * 不允许序列上`SELECT FOR UPDATE/SHARE`(Tom Lane) 该操作不按预期运行并且导致错误。 * 修复`VACUUM`所以它总是更新`pg_class`.`reltuples`/`relpages` (Tom Lane) 这将修复对于当vacuum表的时候autovacuum可能会越来越差的一些情况。 * 当计算哈希表大小时,防止整数溢出(Tom Lane) * 修复`CLUSTER`可能尝试访问已删除TOAST数据(Tom Lane) * 修复为"peer"认证使用凭证控制消息的可能错误(Tom Lane) * 当需要多次往返时,修复SSPI登录(Ahmed Shinwari,Magnus Hagander) 这个问题典型症状是在SSPI登录期间"不支持该函数请求"错误。 * 如果`pg_hba.conf`包含`hostssl`,但是 SSL被禁用,抛出错误(Tom Lane) 这一结论比默默忽略这些行的先前操作更加人性化。 * 修复`pg_srand48`起源初始化中的typo (Andres Freund) 这导致错误使用已提供的种子的所有位。 在大多数平台上不使用这个功能(只有那些没有`srandom`的), 以及来自任何情况下比预期更少随机种子似乎最小的潜在安全隐患。 * 当`LIMIT`和`OFFSET`总数值超过2^63的时候, 避免整数溢出(Heikki Linnakangas) * 添加溢出检查到`generate_series()` 的`int4`和`int8`版本(Robert Haas) * 修复`to_char()`中尾随零删除(Marti Raudsepp) 带有`FM`的格式,并且小数点后没有数字位置中, 小数点左边的零可能被错误地删除。 * 修复`pg_size_pretty()`以避免接近2^63的输入溢出(Tom Lane) * 削弱记录值中typmod匹配的plpgsql检查(Tom Lane) 一个过分热情检查可能导致丢弃一直保持的长度修饰符。 * 正确处理initdb期间的区域名的引用(Heikki Linnakangas) 这种情况可以产生一些Windows区域,比如"中华人民共和国"。 * 从8.3更新期间修复pg_upgrade保存toast表的relfrozenxid (Bruce Momjian) 如果不这样做可能导致`pg_clog`文件升级后很快被删除。 * 在pg_ctl中, 支持Windows上服务注册静止模式(MauMau) * 修复从不同文件`COPY`时脚本文件行数的psql计数(Tom Lane) * 为`standard_conforming_strings`修复 pg_restore的直接到数据库模式(Tom Lane) 当从`standard_conforming_strings`设置为`on`的归档文件中直接恢复 到数据库服务器时,pg_restore可以发出错误命令。 * 关于平行的pg_restore不支持情况用户界面友好(Tom Lane) 该变化确保了在采取的任何恢复操作之前这种情况被检测和报告。 * 修复写入超越缓冲区末尾以及在libpq的LDAP服务查找代码中的内存泄漏(Albe Laurenz) * 在libpq中,当使用非阻塞I/O和SSL连接时避免错误(Martin Pihlak, Tom Lane) * 连接启动时提高libpq的错误处理(Tom Lane) 特别是,在SSL连接启动时`fork()`错误的服务器报告 的反应是明智的。 * 提高SSL故障libpq的错误报告(Tom Lane) * 当添加新元组到最初从服务器查询获得的`PGresult`时, 修复`PQsetvalue()`避免可能崩溃(Andrew Chernow) * 使得ecpglib写入带有15位数字精度的`double`值(Akira Kurosawa) * 在ecpglib中,确保错误之后恢复`LC_NUMERIC`设置(Michael Meskes) * 提供上游修复加密的符号字符错误(CVE-2011-2483)(Tom Lane) `contrib/pg_crypto`的加密代码可以在 字符是有符号的(这是大多数)平台上提供错误结果,导致加密密码比它们所应该的更弱。 * 修复`contrib/seg`中的内存泄露(Heikki Linnakangas) * 修复`pgstatindex()`为空索引提供一致结果(Tom Lane) * 允许编译 perl 5.14 (Alex Hunsaker) * 为探测系统函数的存在更新配置脚本方法(Tom Lane) 在8.3和8.2中使用的autoconf的版本可能被执行链接时优化的编译器愚弄。 * 修复包含空格的编译安装文件路径的相关问题(Tom Lane) * 更新时区数据文件到为Canada, Egypt, Russia, Samoa和South Sudan中的DST变化规律的tzdata发布2011i。