pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
2011-12-05
本次发布包含对 8.3.16 的多方面修复。有关 8.3 大版本中新特性的信息,请参见 第 E.96 节。.
对于运行 8.3.X 的用户,不需要进行转储/恢复。
不过,information_schema.referential_constraints 视图的定义中被发现存在一个长期错误。如果你依赖该视图的正确结果,应按下面第一条变更日志条目的说明替换其定义。
不过,如果你是从earlier than 8.3.8 的版本升级, 请参见 第 E.88 节。
修复 information_schema.referential_constraints 视图中的缺陷(Tom Lane)
该视图在把外键约束与它依赖的主键或唯一键约束匹配时不够谨慎。这可能导致某个外键约束完全不被显示、被显示多次,或者声称它依赖于一个并非其实际依赖的约束。
由于该视图定义是由 initdb 安装的,仅靠升级不会修复问题。如果需要修复现有安装,可以(以超级用户身份)删除 information_schema 模式,然后通过载入 重新创建它。(如果不确定 SHAREDIR/information_schema.sqlSHAREDIR 在哪里,运行 pg_config --sharedir。)这必须在每个要修复的数据库中重复执行。
修复 CREATE TABLE dest AS SELECT * FROM src 或 INSERT INTO dest SELECT * FROM src 期间与 TOAST 相关的数据损坏(Tom Lane)
如果表曾被 ALTER TABLE ADD COLUMN 修改过,在某些极端情况下,尝试把它的数据原样复制到另一个表可能产生损坏的结果。该问题只会在 8.4 及更高版本中以这种确切形式出现,但我们也给更早的版本打了补丁,以防有其他代码路径可能触发同一缺陷。
修复从过期 syscache 条目访问 toast 表时的竞态条件(Tom Lane)
典型症状是诸如 “missing chunk number 0 for toast value NNNNN in pg_toast_2619” 的瞬时错误,其中引用的 toast 表总是属于某个系统目录。
让 DatumGetInetP() 解包带 1 字节头的 inet datum,并新增一个不做此事的宏 DatumGetInetPP()(Heikki Linnakangas)
此变更不影响任何核心代码,但可能避免期望 DatumGetInetP() 按常规约定产生已解包 datum 的附加代码中的崩溃。
改进 money 类型输入和输出的区域支持(Tom Lane)
除了不支持所有标准 lc_monetary 格式化选项外,输入和输出函数还不一致,这意味着在某些区域设置下转储的 money 值无法重新读取。
不让 transform_null_equals 影响 CASE foo WHEN NULL ... 构造(Heikki Linnakangas)
transform_null_equals 只应影响用户直接写的 foo = NULL 表达式,而不是这种形式的 CASE 在内部生成的相等性检查。
更改外键触发器的创建顺序,以更好地支持自引用外键(Tom Lane)
对于引用自身表的级联外键,行更新会作为一个事件同时触发 ON UPDATE 触发器和 CHECK 触发器。ON UPDATE 触发器必须先执行,否则 CHECK 会检查行的非最终状态,并可能抛出不恰当的错误。然而这些触发器的触发顺序由其名称决定,而由于触发器使用遵循 “RI_ConstraintTrigger_NNNN” 约定的自动生成名称,它们通常按创建顺序排序。彻底的修复需要修改该约定(我们将在 9.2 中做),但在现有版本中更改它似乎有风险。因此此补丁只更改触发器的创建顺序。遇到这类错误的用户应删除并重新创建外键约束,使其触发器处于正确顺序。
避免在跟踪缓冲区分配率时发生浮点下溢(Greg Matthews)
虽然这本身无害,但在某些平台上会导致烦人的内核日志消息。
在 psql 的命令历史中保留命令内的空行(Robert Haas)
例如,如果从字符串字面量中删除了空行,先前的行为可能导致问题。
修复 pg_dump,使其转储自动生成类型(如表行类型)之间的用户定义转换(Tom Lane)
使用首选版本的 xsubpp 构建 PL/Perl,而不一定是操作系统的主副本(David Wheeler、Alex Hunsaker)
修复 contrib/dict_int 和 contrib/dict_xsyn 中的错误编码(Tom Lane)
一些函数错误地假定 palloc() 返回的内存保证被清零。
让 pgstatindex() 及时响应查询取消中断(Robert Haas)
确保 VPATH 构建正确安装所有服务器头文件(Peter Eisentraut)
缩短详细错误消息中报告的文件名(Peter Eisentraut)
常规构建一直只报告包含错误消息调用的 C 文件的名称,但 VPATH 构建此前报告绝对路径名。
修复中美洲 Windows 时区名的解释(Tom Lane)
把“Central America Standard Time”映射为 CST6 而不是 CST6CDT,因为中美洲各地通常不实行夏令时。
把时区数据文件更新为 tzdata 版本 2011n for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa; also historical corrections for Alaska and British East Africa。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。