版本9.1.8

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

# E.35. 版本9.1.8

> 发布日期: 2013-02-07

此版本包含了9.1.7各种修复。 关于9.1主要版本的新功能的信息， 参阅第 E.43 节。

## E.35.1. 迁移到9.1.8

为了运行9.1.X不需要转储/恢复。

然而，如果你是从早于9.1.6的版本上更新，参阅第 E.37 节。

## E.35.2. 变化

- 防止来自SQL的`enum_recv`的执行(Tom Lane)

  该函数被错误声明， 允许简单SQL命令导致服务器崩溃。 原则上攻击者可以使用它检查服务器内存的内容。 我们该感谢Sumit Soni (通过Secunia SVCRP)报告这个问题。(CVE-2013-0255)

- 当检测WAL回放期间达到一致性数据库状态时，修复多个问题。 (Fujii Masao, Heikki Linnakangas, Simon Riggs, Andres Freund)

- 当截断关系文件时，更新最小恢复点(Heikki Linnakangas)

  一旦丢弃数据，在时间轴早一点的时候停止恢复不再安全。

- 在改变恢复目标时间轴后修复WAL段再循环(Heikki Linnakangas)

- 在热备模式中修复失去的取消(Noah Misch, Simon Riggs)

  取消热备份查询冲突的需要有时会被错过， 允许这些查询来查看不一致数据。

- 防止用户可以连接之前从暂停中恢复暂停功能(Tom Lane)

- 修复SQL语法以允许来自子SELECT结果的下标或者字段选择(Tom Lane)

- 解决繁忙工作负载中自动清理截断的性能问题(Jan Wieck)

  在表格末尾的空白页截断需要排他锁， 但自动清理编码失败（并且释放表锁） 当有冲突的锁请求时，在负载下， 很可能截断永远都不会发生，导致表的膨胀。 通过执行局部截断进行修复，释放锁，然后 试图重新获取锁并且继续。 该修复在自动清理释放锁之前冲突请求到达之后将大大 减少平均时间。

- 当扫描`pg_tablespace`的时候， 防止竞争条件(Stephen Frost, Tom Lane)

  如果有`pg_tablespace`项的并发更新， 那么`CREATE DATABASE`和`DROP DATABASE` 可能行为不当。

- 防止`DROP OWNED`试图删除整个数据库或者表空间(Álvaro Herrera)

  为了安全起见， 这些对象的所有权必须被重新分配，而不是删除。

- 修复 `vacuum_freeze_table_age` 实现中的错误(Andres Freund)

  在安装中不只存在 `vacuum_freeze_min_age`事务， 这个错误防止自动清理使用部分表扫描， 因此相反可能会发生全表扫描。

- 当`RowExpr`或者`XmlExpr`被解析两次时， 避免不当行为(Andres Freund, Tom Lane)

  这个错误在上下文中是用户可见的， 比如`CREATE TABLE LIKE INCLUDING INDEXES`。

- 提高在哈希表大小计算中防御整数溢出(Jeff Davis)

- 在服务器崩溃之后修复忽略剩余临时表错误(Tom Lane)

- 拒绝`to_date()`中超期范围日期(Hitoshi Harada)

- 修复`pg_extension_config_dump()`以适当处理扩展更新情况(Tom Lane)

  这个函数现在将取代目标表的任何已经存在项， 使它可以用于扩展更新脚本。

- 修复函数的PL/Python的处理作为多表上的触发器(Andres Freund)

- 确保非ASCII提示符字符串被翻译成Windows上正确代码页(Alexander Law, Noah Misch)

  这个错误影响psql和一些其他客户端程序。

- 当不连接数据库时， 修复psql's `\?`命令中可能的崩溃(Meng Qingzhong)

- 当正在运行pg_basebackup时， 如果删除关系文件，那么修复可能的错误(Heikki Linnakangas)

- 当在热备份服务器上运行时，使得pg_dump 排除未记录表的数据(Magnus Hagander)

  因为数据在备用服务器上是不可用的，这可能会失败， 因此它似乎认为最方便的是自动假设`--no-unlogged-table-data`。

- 修复pg_upgrade以安全处理无效索引(Bruce Momjian)

- 修复libpq的 `PQprintTuples`中一个字节缓冲溢出(Xi Wang)

  这个以往的函数 不再通过PostgreSQL自身被用于任何地方， 但是它仍然可能通过一些客户端代码被使用。

- 使得ecpglib正确使用已翻译信息(Chen Huajun)

- 在MSVC上正确安装ecpg_compat和 pgtypes库(Jiang Guiqing)

- 如果它不是通过系统提供的， 那么在libecpg中 包含`isinf()`版本(Jiang Guiqing)

- 重新配置已提供函数的配置测试， 因此它不会被libedit/libreadline假输出蒙骗。

- 确保随时间变化增加的Windows编译数(Magnus Hagander)

- 当为Windows交叉编译时， 使pgxs编译带有正确`.exe` 后缀的可执行文件(Zoltan Boszormenyi)

- 添加新的时区缩写`FET` (Tom Lane)

  这用于一些东欧时区。

上一页 | 起始页 | 下一页
版本9.1.9 | 上一级 | 版本9.1.7