E.108. 版本 8.1.17

发布日期: 2009-03-16

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

E.108.1. 迁移到版本 8.1.17

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

E.108.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)