版本 9.0.8

PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 附录 E. 版本说明 | 下一页

# E.58. 版本 9.0.8

> 发布日期: 2012-06-04

这个版本包含自9.0.7以来的各种修复。想要获得关于9.0主版本的新特性信息， 请参阅第 E.66 节。

## E.58.1. 迁移到版本 9.0.8

运行9.0.X的系统不需要转储/恢复。

另外，如果你是从一个早于9.0.6的版本升级而来，请参阅第 E.60 节。

## E.58.2. 修改列表

- 修复`contrib/pgcrypto`的 DES `crypt()`函数中不正确的口令转换 (Solar Designer)

  如果一个口令字符串包含字节值`0x80`，则忽略剩余的口令， 导致口令比它表现出来的还要弱。有了这个修复，剩余的字符串适当的包含在DES散列中。 这个bug影响的任何存储的口令值将因此而不再匹配，所以存储的值可能需要更新。 (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()`中的内存复制bug (Heikki Linnakangas)

- 确保在热备上执行时`txid_current()`报告正确的纪元 (Simon Riggs)

- 修复规划师处理子查询中外部PlaceHolderVars (Tom Lane)

  这个bug关注引用变量的子SELECT，该变量来自周围查询的外连接的可以为空侧。 在9.1中，被这个bug影响的查询将会失败："ERROR: Upper-level PlaceHolderVar found where not expected"。 但是在9.0和8.4中，你可能只是得到错误的响应，因为传送到子查询中的值在应该为空时不是空。

- 修复`pg_attribute`非常大时会话启动缓慢 (Tom Lane)

  如果`pg_attribute`超过`shared_buffers`的四分之一， 在会话启动将触发同步的扫描逻辑时，有时会需要缓存重建代码， 导致花费的时间比平时要多一些。如果一次启动许多新会话，这个问题尤其严重。

- 确保适当频度的取消查询的序列化扫描检查 (Merlin Moncure)

  一个扫描遇到许多包含非活动元组的页面时将不会响应中断。

- 确保Windows实现在返回前`PGSemaphoreLock()`清理`ImmediateInterruptOK` (Tom Lane)

  这个疏忽意味着在一个不安全的时间查询取消中断的接收将晚于相同查询的接受， 会有不可预料但不好的后果。

- 打印视图或规则时安全的显示整行变量 (Abbas Butt, Tom Lane)

  极端情况下包括歧义的名字（也就是，该名字是该查询的表名或者字段名）会以一个歧义的方式输出， 导致视图或规则在转储或重载时有不同解释的风险。通过附加一个no-op转换避免歧义情况。

- 修复`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会变得非常缓慢。

- 修复pg_upgrade，以防数据库以非缺省的表空间存储， 而该表空间包含一个在集群的缺省表空间的表的情况 (Bruce Momjian)

- 在ecpg中，修复少见的内存泄露和可能的`sqlca_t` 结构之后的一个字节的重写 (Peter Eisentraut)

- 修复`contrib/dblink`的`dblink_exec()`以在错误时不泄露临时数据库连接 (Tom Lane)

- 修复`contrib/dblink`以在错误消息中报告正确的连接名 (Kyotaro Horiguchi)

- 修复`contrib/vacuumlo`以在删除许多大对象时使用多个事物 (Tim Lewis, Robert Haas, Tom Lane)

  这个改变在有许多大对象需要删除时，避免了过度的`max_locks_per_transaction`。 该行为可以根据新增的`-l`（limit）选项调整。

- 更新时区数据文件到tzdata版本2012c，因为DST规律在 Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron, Morocco, Syria, 和 Tokelau Islands改变了；还有为加拿大的历史的更正。

上一页 | 起始页 | 下一页
版本 9.0.9 | 上一级 | 版本 9.0.7