E.47. 发布8.4.6

发布日期: 2010-12-16

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

E.47.1. 迁移到版本8.4.6

运行8.4.X不需要备份/恢复。 然而,如果你从8.4.2更早版本更新, 参阅8.4.2发布说明。

E.47.2. 变化

  • 强迫缺省 wal_sync_method 为Linux上fdatasync (Tom Lane, Marti Raudsepp)

    Linux上缺省实际上是多年的fdatasync,但是最近内核变化导致 PostgreSQL选择open_datasync。 这种选择在任何性能改进中不产生结果,并且导致某些文件系统的彻底失败, 尤其是带有data=journal挂载选项的ext4

  • 修复GIN索引WAL回放逻辑相关错误(Tom Lane)

    这可能导致"坏缓冲区id: 0"失败 或者复制过程中索引内容的损坏。

  • 当开启检查点WAL记录不在同一WAL段作为重做点时, 修复基础备份恢复(Jeff Davis)

  • 当多个执行者保持活跃很长时间的时候,修复autovacuum的持续放缓(Tom Lane)

    为autovacuum工作者有效的vacuum_cost_limit可能下降到几乎为零, 如果它处理足够多的表,使其运行极其缓慢。

  • 添加支持IA64上的检测寄存器栈溢出(Tom Lane)

    IA64结构有两个硬件堆栈。堆栈溢出错误的充分预防需要检查这两个。

  • 添加copyObject()中栈溢出检查(Tom Lane)

    某些代码路径可能导致崩溃,由于堆栈溢出产生了一个足够复杂的查询。

  • 修复临时GiST索引中页分离的检测(Heikki Linnakangas)

    当执行插入时,如果比如有一个打开游标扫描索引的时候,在临时索引中可能 有"并发"的页面分离。当继续执行游标时, GiST未能检测到这种情况,因此可以提供错误结果。

  • 在早期连接处理过程中修复错误检查(Tom Lane)

    在一些情况下忽略太多子进程检查,当尝试添加新的子进程到固定大小数组中时, 可能导致postmaster崩溃。

  • 提升window函数的效率(Tom Lane)

    某些情况中大量元组需要提前被读取,但是work_mem大到足以允许它们 全部保存在内存中,竟意外地慢。percent_rank(), cume_dist()ntile()尤其受到这个问题的影响。

  • ANALYZE复杂索引表达式的时候,避免内存泄露(Tom Lane)

  • 确保使用整行Var的索引依赖于它的表(Tom Lane)

    当删除表的时候,像create index i on t (foo(t.*))声明的索引 可能不会自动被删除。

  • 不要"内联"SQL函数与多个OUT参数(Tom Lane)

    由于关于预期结果rowtype信息丢失,这避免了可能的崩溃。

  • 如果ORDER BY, LIMIT, FOR UPDATE, or WITH附属于 INSERT ... VALUESVALUES部分,那么操作正确(Tom Lane)

  • 修复COALESCE()表达式的常数合并(Tom Lane)

    规划器有时会试图评估事实上不可能达到的可能会导致意外错误的子表达式。

  • 当连接接受失败时(accept()或者在它之后立即调用),并且postmaster和GSSAPI支持一起编译, 修复postmaster崩溃。(Alexander Chernikov)

  • log_temp_files是活跃的,则修复临时文件忽略的取消操作(Tom Lane)

    当试图发出日志信息时,如果发生错误,那么取消不执行, 导致临时文件积累。

  • InhRelation节点添加输出功能(Tom Lane)

    当启用debug_print_parse并且执行某些类型查询时, 这避免失败。

  • 修复从一个点到水平线段距离的错误计算(Tom Lane)

    这个漏洞影响了若干个不同的几何距离测量操作符。

  • 修复ecpg中事务状态的错误计算(Itagaki Takahiro)

  • 在递归或者错误恢复的情况中修复"simple"表达式的PL/pgSQL处理而不失败(Tom Lane)

  • 修复设置返回函数的PL/Python的处理(Jan Urbanski)

    在迭代器生成一组结果中尝试调用SPI函数可能失败。

  • 修复contrib/cube的GiST picksplit算法中的错误(Alexander Korotkov)

    这可能会导致相当大的无效率,但在cube列上的GiST索引中,并不是真的错误结论, 如果你有这样一个索引,考虑在安装这个更新之后REINDEX它。

  • 不要发出contrib/dblink中"标识符将被截断"的信息除了 创建新的连接(Itagaki Takahiro)

  • 修复contrib/pgcrypto中对失踪公钥的潜在信息转储(Marti Raudsepp)

  • 修复contrib/xml2的XPath查询函数中的内存泄露(Tom Lane)

  • 为Fiji和Samoa中的DST变化规律更新时区数据文件到tzdata发布2010o; 也为了香港历史修正。