多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# E.22\. 版本 9.0.12 > **发布日期:** 2013-02-07 这个版本包含各种自9.0.11以来的修复。想要获得关于9.0主版本的新特性信息, 请参阅[Section E.34](#calibre_link-163)。 ## E.22.1\. 迁移到版本 9.0.12 运行9.0.X的系统不需要转储/恢复。 另外,如果你是从一个早于9.0.6的版本升级而来,请参阅9.0.6的版本说明。 ## E.22.2\. 修改列表 * 阻止SQL执行`enum_recv` (Tom Lane) 该函数是错误声明的,允许一个简单的SQL命令使服务器崩溃。原则上, 攻击者可以使用它检验服务器内存的内容。感谢Sumit Soni (via Secunia SVCRP) 报告这个问题。 (CVE-2013-0255) * 修复在WAL回放期间已经达到一个一致的数据库状态时检测的多重问题 (Fujii Masao, Heikki Linnakangas, Simon Riggs, Andres Freund) * 截断一个关系文件时更新最小的恢复点 (Heikki Linnakangas) 一旦数据被丢弃,在时间线中的一个较早的点停止恢复已经不再安全。 * 修复热备份模式中丢失的取消 (Noah Misch, Simon Riggs) 有时会错过取消冲突的热备份查询的需要,此时允许这些查询看到不一致的数据。 * 修复SQL语法允许一个子SELECT结果加下标或字段选择 (Tom Lane) * 修复繁忙的工作负载中自动清理截断的性能问题 (Jan Wieck) 在一个表的最后截断空白页需要排他锁,但是当有冲突的锁请求时autovacuum编码失败(并释放表锁)。 负载过轻,很有可能不会发生截断,导致表膨胀。通过执行一个部分的截断,释放该锁, 然后尝试再次请求这个锁并继续来修复这个问题。这个修复也大大的减少了autovacuum 释放该锁之前冲突的锁请求到达之后的平均时间。 * 扫描`pg_tablespace`时防止竞态条件 (Stephen Frost, Tom Lane) 如果`CREATE DATABASE`和`DROP DATABASE`并发的更新 `pg_tablespace`记录,那么它们可能行为错误。 * 阻止`DROP OWNED`试图删除整个数据库或表空间 (Álvaro Herrera) 为了安全,这些对象的所有权必须重新分配,而不是抛弃。 * 修复[`vacuum_freeze_table_age`](#calibre_link-97) 实现中的错误 (Andres Freund) 在有多于[`vacuum_freeze_min_age`](#calibre_link-750) 个事务存在的安装中,这个错误阻止使用部分表扫描的autovacuum,所以全表扫描将总是发生。 * 阻止`RowExpr`或`XmlExpr`解析分析两次时的错误行为 (Andres Freund, Tom Lane) 这个错误在内容中可能是用户可见的,如`CREATE TABLE LIKE INCLUDING INDEXES`。 * 提高哈希表大小计算中的整数溢出防御 (Jeff Davis) * 拒绝`to_date()`中超出范围的日期 (Hitoshi Harada) * 确保非ASCII提示字符串在Windows上转化为正确的代码页 (Alexander Law, Noah Misch) 这个错误影响psql和一些其他客户端程序。 * 修复没有连接到一个数据库时psql的`\?`命令中可能的崩溃 (Meng Qingzhong) * 修复pg_upgrade安全的处理无效的索引 (Bruce Momjian) * 修复libpq的`PQprintTuples`中的一个字节缓冲区溢出 (Xi Wang) 这个古老的函数PostgreSQL本身已经不用了,但是一些客户端代码可能仍然在使用。 * 使ecpglib适当的使用翻译了的信息 (Chen Huajun) * 在MSVC上适当的安装ecpg_compat和pgtypes (Jiang Guiqing) * 在libecpg中包括我们的`isinf()`版本, 如果系统没有提供它 (Jiang Guiqing) * 为提供的函数重新排列配置的测试,这样它不会被来自libedit/libreadline的虚假报告欺骗 (Christoph Berg) * 确保Windows建立编号在时间上增加 (Magnus Hagander) * 当在Windows上交叉编译时,使带有正确`.exe`后缀的 pgxs建立可执行 (Zoltan Boszormenyi) * 添加新的时间戳缩写`FET` (Tom Lane) 这个现在用于一些东欧时区。