企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# E.11\. 发布9.1.8 > **发布日期:** 2013-02-07 此版本包含了9.1.7各种修复。 关于9.1主要版本的新功能的信息, 参阅[Section E.19](#calibre_link-148)。 ## E.11.1\. 迁移到9.1.8 为了运行9.1.X不需要转储/恢复。 然而,如果你是从早于9.1.6的版本上更新,参阅9.1.6发布说明。 ## E.11.2\. 变化 * 防止来自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段再循环(Heikki Linnakangas) * 在热备模式中修复失去的取消(Noah Misch, Simon Riggs) 取消热备份查询冲突的需要有时会被错过, 允许这些查询来查看不一致数据。 * 防止用户可以连接之前从暂停中恢复暂停功能(Tom Lane) * 修复SQL语法以允许来自子SELECT结果的下标或者字段选择(Tom Lane) * 解决繁忙工作负载中自动清理截断的性能问题(Jan Wieck) 在表格末尾的空白页截断需要排他锁, 但自动清理编码失败(并且释放表锁) 当有冲突的锁请求时,在负载下, 很可能截断永远都不会发生,导致表的膨胀。 通过执行局部截断进行修复,释放锁,然后 试图重新获取锁并且继续。 该修复在自动清理释放锁之前冲突请求到达之后将大大 减少平均时间。 * 当扫描`pg_tablespace`的时候, 防止竞争条件(Stephen Frost, Tom Lane) 如果有`pg_tablespace`项的并发更新, 那么`CREATE DATABASE`和`DROP DATABASE` 可能行为不当。 * 防止`DROP OWNED`试图删除整个数据库或者表空间(Álvaro Herrera) 为了安全起见, 这些对象的所有权必须被重新分配,而不是删除。 * 修复 [`vacuum_freeze_table_age`](#calibre_link-97) 实现中的错误(Andres Freund) 在安装中不只存在 [`vacuum_freeze_min_age`](#calibre_link-750)事务, 这个错误防止自动清理使用部分表扫描, 因此相反可能会发生全表扫描。 * 当`RowExpr`或者`XmlExpr`被解析两次时, 避免不当行为(Andres Freund, Tom Lane) 这个错误在上下文中是用户可见的, 比如`CREATE TABLE LIKE INCLUDING INDEXES`。 * 提高在哈希表大小计算中防御整数溢出(Jeff Davis) * 在服务器崩溃之后修复忽略剩余临时表错误(Tom Lane) * 拒绝`to_date()`中超期范围日期(Hitoshi Harada) * 修复`pg_extension_config_dump()`以适当处理扩展更新情况(Tom Lane) 这个函数现在将取代目标表的任何已经存在项, 使它可以用于扩展更新脚本。 * 修复函数的PL/Python的处理作为多表上的触发器(Andres Freund) * 确保非ASCII提示符字符串被翻译成Windows上正确代码页(Alexander Law, Noah Misch) 这个错误影响psql和一些其他客户端程序。 * 当不连接数据库时, 修复psql's `\?`命令中可能的崩溃(Meng Qingzhong) * 当正在运行pg_basebackup时, 如果删除关系文件,那么修复可能的错误(Heikki Linnakangas) * 当在热备份服务器上运行时,使得pg_dump 排除未记录表的数据(Magnus Hagander) 因为数据在备用服务器上是不可用的,这可能会失败, 因此它似乎认为最方便的是自动假设`--no-unlogged-table-data`。 * 修复pg_upgrade以安全处理无效索引(Bruce Momjian) * 修复libpq的 `PQprintTuples`中一个字节缓冲溢出(Xi Wang) 这个以往的函数 不再通过PostgreSQL自身被用于任何地方, 但是它仍然可能通过一些客户端代码被使用。 * 使得ecpglib正确使用已翻译信息(Chen Huajun) * 在MSVC上正确安装ecpg_compat和 pgtypes库(Jiang Guiqing) * 如果它不是通过系统提供的, 那么在libecpg中 包含`isinf()`版本(Jiang Guiqing) * 重新配置已提供函数的配置测试, 因此它不会被libedit/libreadline假输出蒙骗。 * 确保随时间变化增加的Windows编译数(Magnus Hagander) * 当为Windows交叉编译时, 使pgxs编译带有正确`.exe` 后缀的可执行文件(Zoltan Boszormenyi) * 添加新的时区缩写`FET` (Tom Lane) 这用于一些东欧时区。