选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 9.5
历史版本PostgreSQL 9.5 已于 2021 年 2 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页

E.16. 版本 9.5.10 #

发布日期:. 2017-11-09

此版本包含自 9.5.9 以来的多种修复。 有关 9.5 大版本中新特性的信息,参见 第 E.26 节

E.16.1. 迁移到版本 9.5.10

对于运行 9.5.X 的用户,不需要转储/恢复。

不过,如果你使用 BRIN 索引,请参见下面第四条变更日志条目。

另外,如果你是从 9.5.8 之前的版本升级,参见 第 E.18 节

E.16.2. 变更

  • 确保 INSERT ... ON CONFLICT DO UPDATE 在所有情况下 检查表权限和 RLS 策略(Dean Rasheed)

    INSERT ... ON CONFLICT DO UPDATE 的更新路径需要对 仲裁者索引的列具有 SELECT 权限,但在仲裁者由约束 名指定的情况下没有检查这一点。此外,对于启用了行级安全的表,它 没有根据表的 SELECT 策略检查被更新的行(无论仲裁 者索引如何指定)。(CVE-2017-15099)

  • 修复 json{b}_populate_recordset() 中行类型不匹配 导致的崩溃(Michael Paquier、Tom Lane)

    这些函数使用 FROM ... AS 子句中指定的结果行类型, 而没有检查它与所提供元组值的实际行类型匹配。如果不匹配,通常会导致 崩溃,尽管泄露服务器内存内容似乎也有可能。 (CVE-2017-15098)

  • 修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER(Noah Misch)

    此前,postmaster 日志文件是在仍以 root 运行时打开的。因此数据库所有者 可以通过让 $PGLOG 成为指向某个其他文件的符号链 接来攻击另一个系统用户,该文件随后会因追加日志消息而被损坏。

    默认情况下这些脚本不会安装到任何地方。使用了它们的用户需要手动重新 复制,或对其修改版应用相同的更改。如果现有的 $PGLOG 文件为 root 所有,在用修正后的脚本重启 服务器之前需要把它移开或重命名。(CVE-2017-12172)

  • 修复 BRIN 索引摘要正确处理并发表扩展(Álvaro Herrera)

    此前,一个竞态条件允许一些表行被遗漏在索引之外。可能需要对现有 BRIN 索引执行 REINDEX 以从此问题的既往发生中恢复。

  • 修复 BRIN 索引并发更新期间可能的失败(Tom Lane)

    这些竞态条件可能导致诸如 invalid index offnuminconsistent range map 之类的错误。

  • 修复从使用 SPI 的函数(特别是任何用 PL 语言编写的函数)调用逻辑解码 时崩溃(Tom Lane)

  • 修复 json_build_array()json_build_object() 及其 jsonb 等价函数正确处理显式 VARIADIC 参数 (Michael Paquier)

  • 正确拒绝把无穷大浮点值转换为 numeric 类型的尝试 (Tom Lane、KaiGai Kohei)

    此前行为是与平台相关的。

  • 修复在视图末尾添加列后的边界崩溃(Tom Lane)

  • 在视图或规则包含 FieldSelectFieldStore 表达式节点时记录正确的依赖 (Tom Lane)

    缺少这些依赖可能允许本应失败的列或数据类型 DROP 成功执行,从而导致之后使用该视图或规则时出错。此补丁不会保护现有 视图/规则,只保护将来创建的。

  • 正确检测范围数据类型的可哈希性(Tom Lane)

    规划器错误地假定任何范围类型都可以哈希用于哈希连接或哈希聚合,但实际上 必须检查范围的子类型是否有哈希支持。这不影响任何内置范围类型,因为 它们反正都是可哈希的。

  • 在确定关系唯一性时正确忽略 RelabelType 表达式节点(David Rowley)

    这使子查询结果列为 varchar 类型时能够进行预期的优化。

  • 修复因 XID 回卷导致的低概率 NOTIFY 消息丢失 (Marko Tiikkaja、Tom Lane)

    如果一个会话在超过 20 亿个事务期间不执行查询而只是监听通知,它就开始 遗漏来自并发提交事务的一些通知。

  • 避免 Linux 上 DSM 内存请求超过 tmpfs 可用空间 时的 SIGBUS 崩溃(Thomas Munro)

  • 防止嵌套触发器触发处理中的低概率崩溃(Tom Lane)

  • 允许 COPYFREEZE 选项在事务 隔离级别为 REPEATABLE READ 或更高时工作 (Noah Misch)

    这种情况意外地被之前的 bug 修复破坏。

  • COPYlo_export() 中文件创建 失败时正确恢复 umask 设置(Peter Eisentraut)

  • ANALYZE 中的重复列名给出更好的错误消息 (Nathan Bossart)

  • 修复对不以换行结尾的 pg_hba.conf 文件最后一行 的错误解析(Tom Lane)

  • 修复 pg_basebackup 对表空间路径的匹配, 在比较前规范化两个路径(Michael Paquier)

    这在 Windows 上特别有帮助。

  • 修复 libpq 不要求用户的主目录存在 (Tom Lane)

    在 v10 中,尝试读取 ~/.pgpass 时找不到主目录被 当作硬错误,但它应该只是导致找不到该文件。v10 和以前的发布分支在 读取 ~/.pg_service.conf 时犯了同样的错误, 不过这不太明显,因为除非指定了服务名否则不寻找该文件。

  • 修复 libpq 防范 PGresult 行数中的整数溢出 (Michael Paquier)

  • 修复 ecpg 对带指针或数组变量的超出作用域 游标声明的处理(Michael Meskes)

  • 在 ecpglib 中,根据是否设置了 standard_conforming_strings 正确处理字符串字面量 中的反斜线(Tsunakawa Takayuki)

  • 让 ecpglib 的 Informix 兼容模式按预期忽略整数输入串中的小数位 (Gao Zengqi、Michael Meskes)

  • 修复类 check Make 目标缺失的临时安装先决条件 (Noah Misch)

    一些本应像 make check 一样工作的非默认测试流程 未能确保临时安装是最新的。

  • 把我们的时区库副本与 IANA tzcode2017c 同步(Tom Lane)

    这修复了若干问题;唯一可能对用户可见的是,当时区数据目录中没有 posixrules 文件时,POSIX 风格时区名的默认 夏令时规则现在匹配当前美国法律而不是十几年前的。

  • 更新时区数据文件到 tzdata 版本 2017c,涉及 斐济、纳米比亚、北塞浦路斯、苏丹、汤加以及特克斯和凯科斯群岛的 夏令时法规变更,加上阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、 爱尔兰、纳米比亚和帕果帕果的历史修正。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。