版本 8.2.13

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

# E.124. 版本 8.2.13

> 发布日期: 2009-03-16

这个版本包含各种自8.2.12以来的修复。关于8.2主版本的新特性信息， 请查看第 E.137 节。

## E.124.1. 迁移到版本 8.2.13

运行8.2.X的用户不需要转储/恢复。不过，如果你是从一个早于8.2.11的版本升级而来， 那么请查看第 E.126 节。

## E.124.2. 修改列表

- 当编码转换失败时，阻止错误的递归崩溃 (Tom)

  这个修改扩展了在最后两个小版本中为相关的失败情节所做的修复。 以前的修复严格限制在最初的问题报告，但是我们现在意识到编码转换函数抛出的 任何错误会潜在的在尝试报告错误时导致无限的递归。 因此解决方法是在我们发现我们进入一个递归错误报告情况时，禁用翻译和编码转换， 并为任何错误消息报告纯ASCII格式。 (CVE-2009-0922)

- 为指定的转换函数禁用带有错误编码的`CREATE CONVERSION` (Heikki)

  这阻止了编码转换失败的一个可能的情节。以前的修改是为了防范相同地区的其他类型的失败。

- 修复给到`to_char()`的格式代码不适合数据参数的类型时的内核转储 (Tom)

- 修复C环境使用多字节编码时`contrib/tsearch2`中可能的失败 (Teodor)

  在`wchar_t`比`int`狭窄的平台上有可能会崩溃；尤其是Windows。

- 修复`contrib/tsearch2`分析器处理包含多个`@` 字符的类似邮箱的字符串时的极端低效 (Heikki)

- 修复带有隐式强制的`CASE WHEN`的反编译 (Tom)

  当尝试检测或转储一个视图时，这个错误在启用断言的建立中会导致断言失败， 或其他情况下的一个"意外的CASE WHEN子句"错误消息。

- 修复可能的TOAST表的行类型所有者的错误分配 (Tom)

  如果`CLUSTER`或`ALTER TABLE`的一个重写变体被除表所有者之外的一个人执行， 那么该表的TOAST表的`pg_type`项将被标记为这个人所有而结束。 这没有造成直接的问题，因为TOAST行类型上的权限不是被任何普通数据库操作检测的。 不过，如果一个人稍后尝试删除发出该命令的角色，那么它会导致意外的失败（在8.1或8.2中）， 或在这样做后来自pg_dump的"数据类型的所有者看起来无效" 警告（在8.3中）。

- 修复PL/pgSQL，不要将字符串中任何地方的`INSERT`之后的`INTO` 看做INTO变量子句，不只是在字符串开头的位置；特别的，不要在`CREATE RULE` 中的`INSERT INTO`处失败 (Tom)

- 在块完全退出时清理PL/pgSQL的错误状态变量 (Ashesh Vashi 和 Dave Page)

  这对于PL/pgSQL本身来说不是什么问题， 但是该疏忽会引起PL/pgSQL调试器在检测一个函数的状态时崩溃。

- 在Windows上重试到`CallNamedPipe()`的失败的调用 (Steve Marshall, Magnus)

  看起来这个函数有时会有暂时性的失败；我们以前将任何失败看做系统错误， 这会混淆`LISTEN`/`NOTIFY`和其他操作。

- 添加`MUST` (Mauritius Island Summer Time) 到已知的时区缩写的缺省列表 (Xavier Bugaud)

上一页 | 起始页 | 下一页
版本 8.2.14 | 上一级 | 版本 8.2.12