E.41. 发布8.4.12
发布日期: 2012-06-04
该发布包含8.4.11中各种修复。 关于8.4主要发布的新功能的信息, 参阅Section E.53。
E.41.1. 迁移到版本8.4.12
运行8.4.X不需要备份/恢复。
然而,如果你从8.4.10更早版本更新, 参阅8.4.10发布说明。
E.41.2. 变化
修复
contrib/pgcrypto
的DEScrypt()
函数中 不正确的密码转换(Solar Designer)如果密码字符串包含字节值
0x80
,那么忽略剩余的密码, 导致密码比它出现的更加弱。 使用这个修复,剩余字符串被恰当地包含在DES哈希中。 受这个错误影响的任何存储密码值将不再匹配,因此 存储值可能需要被更新。(CVE-2012-2143)为程序语言的调用处理器忽略
SECURITY DEFINER
和SET
属性(Tom Lane)应用这些属性到调用处理器可以使服务器崩溃(CVE-2012-2655)
允许
timestamp
输入 中数值时区偏移量远离UTC达到16小时(Tom Lane)一些历史时区有大于15小时的偏移量,先前限制。 这可能导致备份数据值在重载期间被拒绝。
当给定时间恰恰是当前时区的最后DST转变时间时, 修复时间戳转换处理(Tom Lane)
这次疏忽已有很长时间,但是以前没有被注意到, 因为假设大多数DST时区有未来DST转换的不明确的序列。
修复
text
到name
并且char
到name
投射以便在 多字节编码中正确执行字符串截断(Karl Schnaitter)修复
to_tsquery()
中内存复制错误(Heikki Linnakangas)修复子查询内PlaceHolderVars外的规划器处理 (Tom Lane)
这个错误涉及到子SELECT,它引用来自周围查询的外部连接的空侧的变量。 在9.1中,这个错误影响的查询可能 伴随有"错误:在不被预期的地方发现上层PlaceHolderVar"而失败。 但是在9.0和8.4中,你可能默默地获得可能的错误结果,因为当需要时, 传递到子查询中的值不能定位到空。
当
pg_attribute
很大的时候,修复缓慢会话启动(Tom Lane)如果
pg_attribute
超过了shared_buffers
的四分之一, 在会话开始时有时需要缓存重建代码可以触发同步扫描逻辑, 导致它采取比正常更长的时间。 如果许多新会话马上开始,那么问题是相当严重的。确保顺序扫描合理地检查查询取消(Merlin Moncure)
遇到许多包含非活跃元组连续页的扫描不会同时响应中断。
确保返回之前
PGSemaphoreLock()
清除ImmediateInterruptOK
的Windows实现(Tom Lane)这种疏忽意味着在同一个查询中后来收到的查询取消中断可能在不安全时间 被接受,伴随着不可预知的但不好的结果。
当输出视图或者规则时,安全显示整行变量(Abbas Butt, Tom Lane)
涉及歧义名字(也就是说,该名字可以是一个表或者查询的列名)的情况被以模糊方式输出, 冒险转储和重载之后不同地解释视图或者规则。 通过附加无操作计算避免模凌两可的情况。
修复
COPY FROM
以正确处理与无效编码一致的空标记字符串(Tom Lane)一个空标记字符串比如
E'\\0'
应该工作, 并且工作于过去,但是这种情况在8.4中被打破。确保autovacuum工作进程恰当执行堆栈深度检查(Heikki Linnakangas)
先前,通过自动
ANALYZE
调用的无限递归函数可以 使工作进程崩溃。修复日志收集器在高负载下没有丢失日志一致性(Andrew Dunstan)
如果它太忙,那么收集器先前可能重新收集大的信息失败。
修复日志收集器以确保它在接收SIGHUP之后 重启文件旋转(Tom Lane)
如果索引随后被删除,那么修复GIN索引WAL回放逻辑而不失败(Tom Lane)
修复PL/pgSQL的
RETURN NEXT
命令中内存泄露(Joe Conway)当该目标是函数的第一个变量时,修复PL/pgSQL的
GET DIAGNOSTICS
命令(Tom Lane)修复psql的扩展显示(
\x
)模式中潜在的 访问内存结尾(Peter Eisentraut)当数据库包含许多对象时,修复pg_dump中 若干性能问题(Jeff Janes, Tom Lane)
如果数据库包含许多视图,或者如果许多对象在依赖循环中, 或者如果有许多拥有的序列, 那么pg_dump可能会很慢。
修复
contrib/dblink
的dblink_exec()
不泄露临时数据库连接错误(Tom Lane)修复
contrib/dblink
以 报告错误消息中正确连接名(Kyotaro Horiguchi)为了在Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron, Morocco, Syria和 Tokelau Islands中DST变化规律 更新时区数据文件到tzdata发布2012c; 同时为Canada历史修正。