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

# E.144. 版本 8.1.17

> 发布日期: 2009-03-16

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

## E.144.1. 迁移到版本 8.1.17

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

## E.144.2. 修改列表

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

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

- 不允许`CREATE CONVERSION`为指定的转换函数使用错误的编码 (Heikki)

  这阻止了编码转换失败的一种可能的情况。以前的修改是防范了相同区域中的其他类型的失败。

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

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

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

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

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

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

  这对于PL/pgSQL本身来说不是一个问题，但是当检测一个函数的状态时，疏忽会导致PL/pgSQL调试器崩溃。

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

上一页 | 起始页 | 下一页
版本 8.1.18 | 上一级 | 版本 8.1.16