pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
发行日期:. 2013-02-07
本次发布包含对 9.2.2 的多方面修复。有关 9.2 大版本中新特性的信息,请参见 第 E.51 节。.
防止从 SQL 执行 enum_recv(Tom Lane)
该函数声明有误,允许一条简单的 SQL 命令使服务器崩溃。原则上攻击者可能利用它检查服务器内存的内容。感谢 Sumit Soni(通过 Secunia SVCRP)报告此问题。(CVE-2013-0255)
修复 WAL 重放期间检测何时达到一致数据库状态的多个问题(Fujii Masao、Heikki Linnakangas、Simon Riggs、Andres Freund)
修复不需要实际重做工作时对备份结束点的检测(Heikki Linnakangas)
这一失误可能导致错误的 “WAL ends before end of online backup” 错误。
在截断关系文件时更新最小恢复点(Heikki Linnakangas)
数据一旦被丢弃,在时间线上更早的点停止恢复就不再安全。
修复更改恢复目标时间线后 WAL 段的回收问题(Heikki Linnakangas)
在级联备库服务器上正确地从归档恢复时间线历史文件(Heikki Linnakangas)
修复热备服务器上的锁冲突检测(Andres Freund、Robert Haas)
修复热备模式下缺失的取消操作(Noah Misch、Simon Riggs)
取消冲突热备查询的需要有时会被遗漏,使这些查询看到不一致的数据。
防止恢复暂停功能在用户能够连接之前就暂停(Tom Lane)
修复 SQL 文法,允许对子 SELECT 结果做下标或字段选择(Tom Lane)
修复繁忙负载下自动清理截断的性能问题(Jan Wieck)
截断表末尾的空页需要排他锁,但自动清理被编码为在出现冲突锁请求时失败(并释放表锁)。在负载下,截断很可能永远不会发生,导致表膨胀。修复方法是先执行部分截断,释放锁,然后尝试重新获取锁并继续。此修复还大幅缩短了冲突请求到达后自动清理释放锁的平均时间。
改进 SPI_execute 及相关函数的性能,从而改进 PL/pgSQL 的 EXECUTE(Heikki Linnakangas、Tom Lane)
移除 9.2 中因计划缓存机制修改而引入的一些数据复制开销。这消除了相比 9.1 的性能退化,还节省了内存,尤其是当要执行的查询串包含许多 SQL 语句时。
一个附带好处是多语句查询串现在完全串行处理,即我们先完成前面语句的执行,再对后续语句做解析分析和规划。这消除了一个长期存在的问题:本应影响后续语句行为的 DDL 现在会按预期工作。
恢复 9.2 之前对索引使用的代价估计(Tom Lane)
一个欠考虑的修正因子变更导致对使用超大索引的代价估计高得离谱。
修复 DROP INDEX CONCURRENTLY 中的间歇性崩溃(Tom Lane)
修复 CREATE/DROP INDEX CONCURRENTLY 期间共享内存锁表可能损坏的问题(Tom Lane)
修复 COPY 的多元组插入代码在元组大于页大小减去填充因子时的情况(Heikki Linnakangas)
先前的代码可能陷入无限循环。
防止扫描 pg_tablespace 时的竞态条件(Stephen Frost、Tom Lane)
如果 pg_tablespace 条目存在并发更新,CREATE DATABASE 和 DROP DATABASE 可能行为异常。
防止 DROP OWNED 试图删除整个数据库或表空间([Aacute]lvaro Herrera)
为安全起见,这些对象的所有权必须重新分配,而不是删除。
修复 vacuum_freeze_table_age 实现中的错误(Andres Freund)
在已存在超过 vacuum_freeze_min_age 个事务的安装中,这一失误使自动清理无法使用部分表扫描,而总是进行全表扫描。
防止 RowExpr 或 XmlExpr 被二次解析分析时的不当行为(Andres Freund、Tom Lane)
这一失误在 CREATE TABLE LIKE INCLUDING INDEXES 等上下文中可能被用户看到。
增强对哈希表大小计算中整数溢出的防御(Jeff Davis)
修复一些与数据类型权限相关的缺陷(Tom Lane)
类型的默认权限存在一些问题,而且 pg_dump 完全没有转储这类权限。
修复服务器崩溃后未能忽略遗留临时表的问题(Tom Lane)
修复 Windows 上 postmaster 日志文件未能因大小而轮转的问题(Jeff Janes、Heikki Linnakangas)
拒绝 to_date() 中超出范围的日期(Hitoshi Harada)
修复 pg_extension_config_dump(),使其正确处理扩展更新情况(Tom Lane)
该函数现在会替换目标表的任何现有条目,使其可以在扩展更新脚本中使用。
修复 PL/pgSQL 对可能简单的表达式中规划期错误的报告(Tom Lane)
先前的编码有时会遗漏错误 CONTEXT 回溯的第一行。
修复 PL/Python 对用作多个表上触发器的函数的处理(Andres Freund)
确保在 Windows 上非 ASCII 提示符字符串被转换到正确的代码页(Alexander Law、Noah Misch)
这一缺陷影响 psql 和其他一些客户端程序。
修复未连接数据库时 psql 的 \? 命令可能崩溃的问题(Meng Qingzhong)
修复 pg_basebackup 运行期间关系文件被删除时可能出错的问题(Heikki Linnakangas)
让 pg_basebackup -X fetch 在备份备库服务器时容忍时间线切换(Heikki Linnakangas)
让 pg_dump 在热备服务器上运行时排除不记录日志的表的数据(Magnus Hagander)
由于数据在备库服务器上不可用,这本来就会失败,因此最方便的做法似乎是自动假定 --no-unlogged-table-data。
修复 pg_upgrade,使其安全处理无效索引(Bruce Momjian)
修复 pg_upgrade 的 -O/-o 选项(Marti Raudsepp)
修复 libpq 的 PQprintTuples 中的一字节缓冲区越界(Xi Wang)
这个古老的函数没有被 PostgreSQL 本身在任何地方使用,但仍可能被某些客户端代码使用。
让 ecpglib 正确使用翻译后的消息(Chen Huajun)
在 MSVC 上正确安装 ecpg_compat 和 pgtypes 库(Jiang Guiqing)
如果系统未提供 isinf(),则在 libecpg 中包含我们自己的版本(Jiang Guiqing)
重新排列 configure 对系统提供函数的测试,使其不被 libedit/libreadline 的虚假导出所欺骗(Christoph Berg)
确保 Windows 构建号随时间递增(Magnus Hagander)
让 pgxs 在为 Windows 交叉编译时以正确的 .exe 后缀构建可执行文件(Zoltan Boszormenyi)
新增时区缩写 FET(Tom Lane)
它现在用于一些东欧时区。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。