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)