pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
发行日期:. 2010-10-04
本次发布包含对 8.3.11 的多方面修复。有关 8.3 大版本中新特性的信息,请参见 第 E.147 节。.
对于运行 8.3.X 的用户,不需要进行转储/恢复。不过,如果你是从早于 8.3.8 的版本升级,请参阅 第 E.139 节。
在 PL/Perl 和 PL/Tcl 中为每个调用方 SQL 用户 ID 使用单独的解释器(Tom Lane)
此变更防止了可通过破坏稍后将在同一会话中以另一 SQL 用户身份执行的 Perl 或 Tcl 代码(例如在 SECURITY DEFINER 函数内)而造成的安全问题。大多数脚本语言都提供许多实现这一点的手段,例如重新定义目标函数调用的标准函数或操作符。如果没有此变更,任何拥有 Perl 或 Tcl 语言使用权的 SQL 用户基本上都能以目标函数所有者的 SQL 权限为所欲为。
此变更的代价是 Perl 和 Tcl 函数之间的有意通信变得更困难。为提供出路,PL/PerlU 和 PL/TclU 函数继续每会话只使用一个解释器。这不被视为安全问题,因为所有这类函数本来就以数据库超级用户的信任级别执行。
声称提供可信执行的第三方过程语言很可能存在类似的安全问题。我们建议就安全关键用途联系你所依赖的任何 PL 的作者。
感谢 Tim Bunce 指出此问题(CVE-2010-3433)。
禁止以并非它预期配合使用的系统目录列的参数调用 pg_get_expr(),以防止可能的崩溃(Heikki Linnakangas、Tom Lane)
在 Windows 上把退出码 128(ERROR_WAIT_NO_CHILDREN)视为非致命(Magnus Hagander)
高负载下,Windows 进程有时会在启动时以此错误码失败。此前 postmaster 把这视为 panic 情况并重启整个数据库,但这似乎反应过度。
修复 Append 索引扫描中对非严格 OR 连接子句的错误使用(Tom Lane)
这是 8.4 中一个修复的向后移植,该修复此前在 8.3 分支中被遗漏。这纠正了 8.3.8 中引入的一个错误,当内部关系是继承树或 UNION ALL 子查询时,该错误可能导致外连接的结果不正确。
修复 UNION ALL 成员关系可能被重复扫描的问题(Tom Lane)
修复 “无法处理未规划的子查询” 错误(Tom Lane)
当子查询包含一个连接别名引用,而该引用展开成包含另一个子查询的表达式时,会出现此错误。
修复未将缓存计划标记为瞬态的失败(Tom Lane)
如果在某个被引用表正在执行 CREATE INDEX CONCURRENTLY 期间准备了计划,应当在索引可供使用后重新规划。这此前没有可靠地发生。
在偶有报告的 btree 失败情形中把 PANIC 降为 ERROR,并在产生的错误消息中提供更多细节(Tom Lane)
这应能改进系统对损坏索引的健壮性。
防止 show_session_authorization() 在自动清理进程中崩溃(Tom Lane)
防御返回 setof record 但并非所有返回行实际为同一行类型的函数(Tom Lane)
修复对按引用传递的函数结果计算哈希时可能的失败(Tao Ma、Tom Lane)
改进归并连接对连接列中 NULL 的处理(Tom Lane)
如果排序顺序使 NULL 排在高位,归并连接现在可以在到达第一个 NULL 时完全停止。
写入锁文件(postmaster.pid 和套接字锁文件两者)内容时注意对其执行 fsync(Tom Lane)
如果机器在 postmaster 启动后不久崩溃,这一疏漏可能导致锁文件内容损坏。这又可能使后续启动 postmaster 的尝试失败,直到手工删除锁文件。
避免在为深层嵌套的子事务分配 XID 时递归(Andres Freund、Robert Haas)
在栈空间有限时,原来的编码可能导致崩溃。
避免 walwriter 进程持有打开的旧 WAL 段(Magnus Hagander、Heikki Linnakangas)
以前的编码会阻止删除不再需要的段。
修复 log_line_prefix 的 %i 转义,它可能在后端启动早期产生垃圾(Tom Lane)
修复启用归档时 ALTER TABLE ... SET TABLESPACE 中可能的数据损坏(Jeff Davis)
允许 CREATE DATABASE 和 ALTER DATABASE ... SET TABLESPACE 被查询取消中断(Guillaume Lelarge)
修复 REASSIGN OWNED 以处理操作符类和操作符族(Asko Tiidumaa)
修复比较两个空 tsquery 值时可能的核心转储(Tom Lane)
修复 LIKE 对包含 % 后跟 _ 的模式的处理(Tom Lane)
我们此前修复过它,但仍有一些被错误处理的情形。
在 PL/Python 中,防御 PyCObject_AsVoidPtr 和 PyCObject_FromVoidPtr 的空指针结果(Peter Eisentraut)
让 psql 在自动提交关闭模式下把 DISCARD ALL 识别为不应包裹在事务块中的命令(Itagaki Takahiro)
修复 ecpg 以正确处理来自 RETURNING 子句的数据(Michael Meskes)
改进 contrib/dblink 对包含已删除列的表的处理(Tom Lane)
修复 contrib/dblink 中 “重复连接名” 错误后的连接泄漏(Itagaki Takahiro)
修复 contrib/dblink 以正确处理超过 62 字节的连接名(Itagaki Takahiro)
为 contrib/hstore 新增 hstore(text, text) 函数(Robert Haas)
此函数是现已废弃的 => 操作符的推荐替代。向后移植它使得面向未来的代码可以用于较旧的服务器版本。注意该补丁只有在 contrib/hstore 于特定数据库中安装或重新安装之后才生效。用户也可以改为手工执行 CREATE FUNCTION 命令。
更新构建基础设施和文档,反映源代码仓库从 CVS 迁移到 Git 的变化(Magnus Hagander 等)
把时区数据文件更新为 tzdata 版本 2010l for DST law changes in Egypt and Palestine; also historical corrections for Finland。
此变更还为两个密克罗尼西亚时区新增了名称:Pacific/Chuuk 现在优先于 Pacific/Truk(首选缩写为 CHUT 而非 TRUT),Pacific/Pohnpei 优先于 Pacific/Ponape。
让 Windows 的 “N. Central Asia Standard Time” 时区映射到 Asia/Novosibirsk 而不是 Asia/Almaty(Magnus Hagander)
Microsoft 在 KB976098 的时区更新中改变了此区域的 DST 行为。Asia/Novosibirsk 更匹配其新行为。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。