E.112. 版本8.4.9
发布日期: 2011-09-26
该发布包含来自8.4.8的各种修复。关于8.4主要发布的新功能的信息, 参阅第 E.121 节。
E.112.1. 迁移到版本8.4.9
为运行8.4.X不需要备份/恢复。
然而,如果你从8.4.8更早版本更新,参阅第 E.113 节。
E.112.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。