E.58. 版本 9.2.24

E.58.1. 迁移到版本 9.2.24
E.58.2. 修改列表

发布日期: 2017-11-09

这个版本包含来自9.2.23的各种修补程序。关于9.2主版本的新特性信息, 请查阅第 E.82 节

这预计是9.2.X系列中的最后一个PostgreSQL版本。 建议用户尽快更新到较新的版本分支。

E.58.1. 迁移到版本 9.2.24

运行 9.2.X 的用户不需要转储/恢复。

不过,如果您是从9.2.22之前的版本升级,请查阅第 E.60 节

E.58.2. 修改列表

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

    以前,postmaster日志文件是以root用户身份运行时打开的。因此, 数据库所有者可以通过将$PGLOG 作为其他文件的符号链接来挂载针对另一个系统用户的攻击, 然后通过追加日志消息将其损坏。

    默认情况下,这些脚本不安装在任何地方。已经使用它们的用户需要手动重新复制它们, 或者对其修改后的版本应用相同的更改。如果现有的$PGLOG 文件是root拥有的,那么在使用更正的脚本重新启动服务器之前,需要将其删除或重命名。 (CVE-2017-12172)

  • 正确拒绝尝试将无限浮点值转换为numeric类型 (Tom Lane, KaiGai Kohei)

    以前的行为是依赖于平台的。

  • 修复列已经添加到视图末尾时极端情况下的崩溃 (Tom Lane)

  • 当视图或规则包含FieldSelectFieldStore表达式节点时记录适当的依赖关系 (Tom Lane)

    缺少这些依赖关系可能允许DROP列或数据类型在应该失败时通过, 从而导致稍后使用视图或规则时得到错误。此修补程序不会保护现有视图/规则, 只保护未来创建的那些。

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

    规划器错误地认为任何范围类型都可以散列用于散列连接或散列聚合, 但实际上它必须检查范围的子类型是否具有散列支持。这不会影响任何内置的范围类型, 因为它们无论如何都是可散列的。

  • 修复由于XID环绕引起的NOTIFY消息的低概率丢失 (Marko Tiikkaja, Tom Lane)

    如果一个会话没有执行任何查询,而仅仅是听取了通知,对于超过20亿次事务, 它开始错过来自并发提交事务的一些通知。

  • 防止处理嵌套触发器时出现低概率崩溃 (Tom Lane)

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

  • ANALYZE中为重复的列名提供更好的错误消息 (Nathan Bossart)

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

    在v10中,尝试读取~/.pgpass时未能找到主目录被视为硬错误, 但应该只是导致找不到该文件。当读取~/.pg_service.conf时, v10和以前的版本分支都犯了同样的错误,但这并不明显,因为除非指定了服务名称, 否则不会找到该文件。

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

  • 将我们的时区库副本与IANA发行版tzcode2017c同步 (Tom Lane)

    这解决了各种问题;唯一可能是用户可见的是, 如果时区数据目录中没有posixrules文件, 则POSIX样式的区域名称的默认DST规则现在与当前的美国法律相符, 而不是与十几年前的相符。

  • 将时区数据文件更新为tzdata版本2017c, 用于斐济、纳米比亚、北塞浦路斯、苏丹、汤加和土耳其 & 凯科斯群岛的DST法律变更, 加上阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、 纳米比亚和帕果帕果的历史更正。