发布8.3.1

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

# E.112. 发布8.3.1

> 发布日期: 2008-03-17

该发布包含来自8.3.0的各种修复。关于8.3主要发布中新特性信息， 参阅第 E.113 节。

## E.112.1. 迁移到版本8.3.1

运行8.3.X不需要备份/恢复。然而，如果你受到下面描述的Windows区域问题的影响。 在更新之后你可能需要文本列上`REINDEX`索引。

## E.112.2. 变化

- 修复认为不同字符组合是相同的Windows区域的字符串比较(Tom)

  当使用UTF-8数据库编码的时候，此修复程序仅适用于Windows。 相同的修复程序解决了2年前所有其他情况，但是使用UTF-8的Windows使用 未被更新的单独代码路径。如果你正使用认为非相同字符串是相同的区域， 你可能需要`REINDEX`以修复文本列上现有索引。

- 修复`VACUUM FULL`中极端情况错误(Tom)

  8.2中介绍了不同的系统目录中并发`VACUUM FULL`操作之间的 潜在死锁。这已得到纠正。8.3执行的更糟糕， 因为死锁可能出现在关键代码部分，使其PANIC而不仅仅是ERROR条件。

  此外，`VACUUM FULL`通过清理系统目录中途失败可能会导致并发数据库会话中缓存损坏。

  当处理没有活元组页的时候， 8.3中介绍的另外一个`VACUUM FULL`可能导致崩溃或者内存不足报告。

- 修复涉及`character`或者`bit`列的外键检查错误操作(Tom)

  如果引用列不同除兼容类型（比如`varchar`），那么错误强制约束。

- 在无操作外键检查中避免不必要死锁错误(Stephan Szabo, Tom)

- 当重新规划预备查询的时候，修复可能的核心转储(Tom)

  该错误只影响协议级别预备操作，而不是SQL `PREPARE`， 因此常常被认为JDBC, DBI以及大量使用预备语句的其它客户端驱动程序。

- 当重新规划调用SPI使用函数的查询时，修复可能错误(Tom)

- 修复逐行比较涉及不同数据类型列中的错误(Tom)

- 修复长期存在的`LISTEN`/`NOTIFY`竞态条件(Tom)

  在极少数情况中执行`LISTEN`的会话中可能无法得到通知，即使可以被预计，因为 执行`NOTIFY`的并发事务被观察后提交。

  该修复的负面效果是已经执行尚未提交的`LISTEN`命令的事务 将不能看到任何`pg_listener`中`LISTEN`行, 应该选择查看；之前可能会。这种操作从来没有记录一种方式或者其它， 但是可能某些应用程序依赖于旧操作。

- 在一个预备事务中不允许`LISTEN`和`UNLISTEN`(Tom)

  之前这是被允许的，但是尝试执行它有各种不好的结果，尤其是原始后台不能退出 只要`UNLISTEN`没有提交。

- 不允许删除预备事务中临时表(Heikki)

  8.1中不允许，但是在8.2和8.3中无意中损坏了该检查。

- 当在使用哈希索引的查询中发生错误的时候，修复罕见崩溃(Heikki)

- 修复`tsquery`值的不正确比较(Teodor)

- 修复单字节编码中非ASCII字符`LIKE`不正确操作(Rolf Jentsch)

- 禁用`xmlvalidate` (Tom)

  该函数应该在8.3版本之前删除，但是无意中留在源代码中。它造成小的安全风险， 因为未授权用户可以使用它读取访问服务器任何文件的前几个字符。

- 修复集合返回函数的某些用法的内存泄露(Neil)

- 使用`encode(`bytea`, 'escape')`转换所有 高位字节值到`\``nnn`八进制转义序列(Tom)

  当数据库编码是多字节时，有必要避免编码问题。 这种变化可能为预期从`encode`中指定结果的应用中产生兼容问题。

- 修复公元前2月29号日期时间值的输入(Tom)

  关于哪一年是闰年前者编码是错误的。

- 修复`ALTER OWNER`的一些变量中"未知节点类型"错误(Tom)

- 避免`CREATE TABLE LIKE INCLUDING INDEXES`中表空间权限错误(Tom)

- 当中断锁等待的时候，确保`pg_stat_activity`.`waiting`标志被清除(Tom)

- 修复Windows Vista上进程权限的处理(Dave, Magnus)

  特别是，这个修复允许作为管理员用户启动服务器。

- 更新时区数据文件到tzdata发布2008a（尤其是，最近Chile变化）； 调整时区缩写`VET` (Venezuela)意味着UTC-4:30, not UTC-4:00 (Tom)

- 修复数组ecpg问题(Michael)

- 修复pg_ctl以正确从命令行选项中提取postmaster的端口号(Itagaki Takahiro, Tom)

  之前，`pg_ctl start -w`可能尝试联系错误端口上postmaster， 导致启动错误的虚假报告。

- 使用`-fwrapv`防御最近gcc版本中可能的错误优化(Tom)

  当使用gcc 4.3或者更高版本编译PostgreSQL的时候， 这是必要的。

- 启动使用MSVC 编译`contrib/uuid-ossp`(Hiroshi Saito)

上一页 | 起始页 | 下一页
发布8.3.2 | 上一级 | 发布8.3