E.44. 发布8.4.9

发布日期: 2011-09-26

该发布包含来自8.4.8的各种修复。关于8.4主要发布的新功能的信息, 参阅Section E.53

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的), 以及来自任何情况下比预期更少随机种子似乎最小的潜在安全隐患。

  • LIMITOFFSET总数值超过2^63的时候, 避免整数溢出(Heikki Linnakangas)

  • 添加溢出检查到generate_series()int4int8版本(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。