pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
2010-05-17
本次发布包含对 8.4.3 的多方面修复。有关 8.4 大版本中新特性的信息,请参见 第 E.72 节。.
对于运行 8.4.X 的用户,不需要进行转储/恢复。不过,如果你是从早于 8.4.2 的版本升级,请参阅 第 E.70 节。
用应用于整个解释器的操作码掩码来强制 plperl 中的限制,而不是使用 Safe.pm(Tim Bunce、Andrew Dunstan)
近期的事态发展使我们确信 Safe.pm 太不安全,不能依靠它使 plperl 可信。此变更完全移除了对 Safe.pm 的使用,改为使用始终应用操作码掩码的独立解释器。此变更的良好副作用包括:现在可以在 plperl 中以自然的方式使用 Perl 的 strict 编译指令,Perl 的 $a 和 $b 变量在排序例程中按预期工作,以及函数编译显著加快。(CVE-2010-1169)
防止 PL/Tcl 执行来自 pltcl_modules 的不可信代码(Tom)
PL/Tcl 从数据库表自动装载 Tcl 代码的特性可能被利用于特洛伊木马攻击,因为对谁能创建该表或向其中插入没有限制。此变更禁用该特性,除非 pltcl_modules 由超级用户拥有。(但是,不检查该表上的权限,因此确实需要较不安全的模块表的安装仍可以向受信任的非超级用户授予适当权限。)此外,除非确实要执行 pltclu 函数,否则防止把代码装载到无限制的“普通”Tcl 解释器中。(CVE-2010-1170)
修复 ALTER ... SET TABLESPACE 的 WAL 重放期间的数据损坏(Tom)
当 archive_mode 开启时,ALTER ... SET TABLESPACE 生成的 WAL 记录的重放逻辑不正确。它可能把数据写到错误的位置,导致可能无法恢复的数据损坏。数据损坏会在备机从属上被观察到;如果在提交 ALTER 之后、下一个检查点之前发生数据库崩溃和恢复,主机上也可能发生。
修复在重建 relcache 条目期间收到缓存重置消息时可能的崩溃(Heikki)
此错误是在 8.4.3 中修复相关失败时引入的。
在为函数运行语言验证器时应用逐函数 GUC 设置(Itagaki Takahiro)
这避免了函数代码在没有该设置时无效所导致的失败;例如 search_path 不正确时 SQL 函数可能无法解析。
当 constraint_exclusion = partition 时,对继承的 UPDATE 和 DELETE 目标表做约束排除(Tom)
由于疏忽,此设置此前只在 SELECT 命令中触发约束排除检查。
不允许非特权用户重置仅超级用户可用的参数设置(Alvaro)
此前,如果非特权用户为自己运行 ALTER USER ... RESET ALL,或为他拥有的数据库运行 ALTER DATABASE ... RESET ALL,这将移除该用户或数据库的所有特殊参数设置,包括本应只可由超级用户更改的那些。现在,ALTER 只移除用户有权更改的参数。
避免后端关闭发生在需要向日志条目添加 CONTEXT 内容时导致可能的崩溃(Tom)
某些情况下上下文打印函数会失败,因为到打印日志消息时当前事务已被回滚。
修复 recovery_end_command 中 %r 参数的错误处理(Heikki)
该值总是出来为零。
确保归档进程尽快响应 archive_command 的变更(Tom)
修复 pl/pgsql 的 CASE 语句在 case 表达式是不返回行的查询时不失败(Tom)
为现代 Perl 版本更新 pl/perl 的 ppport.h(Andrew)
修复 pl/python 中的若干内存泄漏(Andreas Freund、Tom)
在 ecpg 中正确处理空字符串连接参数(Michael)
防止 psql 在展开引用自身的变量时无限递归(Tom)
修复 psql 的 \copy,不在 \copy (select ...) 内的点周围添加空格(Tom)
在数字字面量的小数点周围添加空格会导致语法错误。
避免 psql 在与 client_encoding 不匹配的区域设置环境中运行时的格式化失败(Tom)
修复使用 contrib/intarray 操作符的不可满足查询产生不必要的 “GIN 索引不支持整索引扫描”错误(Tom)
确保 contrib/pgstattuple 函数及时响应取消中断(Tatsuhito Kasahara)
让服务器启动正确处理 shmget() 对已存在的共享内存段返回 EINVAL 的情形(Tom)
此行为曾在包括 OS X 在内的 BSD 衍生内核上观察到。它导致完全误导性的启动失败,抱怨共享内存请求大小过大。
避免 Windows 上 syslogger 进程可能的崩溃(Heikki)
更健壮地处理 Windows 注册表中不完整的时区信息(Magnus)
更新已知 Windows 时区名称集合(Magnus)
把时区数据文件更新为 tzdata 版本 2010j for DST law changes in Argentina, Australian Antarctic, Bangladesh, Mexico, Morocco, Pakistan, Palestine, Russia, Syria, Tunisia; also historical corrections for Taiwan。
另外,把 PKST(巴基斯坦夏令时)加入默认时区缩写集合。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。