↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

已结束支持的版本: 9.3
历史版本。 PostgreSQL 9.3 已结束支持。 2018-11-08. 请参阅 当前版本手册.

E.2. 版本 9.3.24 #

发行日期:. 2018-08-09

本次发布包含对 9.3.23 的多方面修复。有关 9.3 大版本中新特性的信息,请参见第 E.26 节。.

PostgreSQL 社区将于 2021 年 11 月停止对 9.6.X 版本系列的更新。建议用户尽快更新到较新的版本分支。

E.2.1. 迁移到版本 9.3.24

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

不过,如果你是从早于 9.3.23 的版本升级,请参见第 E.3 节。

E.2.2. 变更

  • 修复连接尝试之间未能完全重置 libpq 状态的问题(Tom Lane)

    dblink 或 postgres_fdw 的无权限用户可以绕过旨在防止使用服务器端凭据(如运行服务器的操作系统用户拥有的 ~/.pgpass 文件)的检查。允许本地连接上对等认证的服务器尤其容易受影响。其他攻击(如向 postgres_fdw 会话注入 SQL)也是可能的。以这种方式攻击 postgres_fdw 需要能够创建带选定连接参数的外部服务器对象,但任何能访问 dblink 的用户都可以利用该问题。一般而言,能够为使用 libpq 的应用选择连接参数的攻击者都可能作恶,尽管其他合理的攻击场景更难想到。感谢 Andrew Krasichkov 报告此问题。(CVE-2018-10915)

  • 确保对“钉住”的系统目录的 relfrozenxid 和 relminmxid 值的更新被及时处理(Andres Freund)

    过于乐观的缓存规则可能阻止其他会话看到这些更新,导致虚假错误和/或数据损坏。对于 pg_authid 等共享目录,问题明显更严重,因为过期的缓存数据不仅存在于现有会话,还会持续到新会话中。

  • 修复刚提升的备库在完成第一个恢复后检查点之前崩溃的情况(Michael Paquier、Kyotaro Horiguchi、Pavan Deolasee、[Aacute]lvaro Herrera)

    这导致服务器在后续 WAL 重放期间认为自己没有达到一致的数据库状态,无法重启。

  • 避免回收全零 btree 页时发出虚假 WAL 记录(Amit Kapila)

    这个错误曾被观察到导致断言失败,并且可能让热备服务器上发生不必要的查询取消。

  • 改进删除许多关系的事务的 WAL 重放性能(Fujii Masao)

    这一更改减少了共享缓冲区被扫描的次数,因此在该设置较大时收益最大。

  • 改进备库服务器 WAL 重放中锁释放的性能(Thomas Munro)

  • 确保索引创建中途失败后正确重建表的缓存索引列表(Peter Geoghegan)

    此前失败索引的 OID 可能留在列表中,在同一会话中之后引起问题。

  • 修复涉及复合类型列的等价类的错误优化(Tom Lane)

    这导致未能识别复合列上的索引可以为该列上的归并连接提供所需的排序顺序。

  • 修复 SQL 标准 FETCH FIRST 语法允许参数($n),正如标准所期望的(Andrew Gierth)

  • 修复 getObjectDescription 输出中某些对象名未做模式限定的问题(Kyotaro Horiguchi、Tom Lane)

    排序规则、转换和文本搜索对象的名称在应当模式限定时没有限定。

  • 把 COPY FROM 的当前行号计数器从 32 位加宽到 64 位(David Rowley)

    这避免了超过 4G 行输入的两个问题:COPY FROM WITH HEADER 会每 4G 行丢弃一行而不只是第一行;错误报告可能显示错误的行号。

  • 向 ecpg 的 pgtypes 库添加字符串释放函数,以避免 Windows 上的跨模块内存管理问题(Takayuki Tsunakawa)

    在 Windows 上,如果给定内存块的 free 调用不是来自 malloc 该内存的同一 DLL,就会发生崩溃。pgtypes 库有时返回期望调用者释放的字符串,使得无法遵循这一规则。添加了仅包装 free 的 PGTYPESchar_free() 函数,允许应用遵循规则。

  • 修复 ecpg 在 Windows 以及其他非标准声明 strtoll/strtoull 或根本不声明的平台上对 long long 变量的支持(Dang Minh Huong、Tom Lane)

  • 修复规则更改导致会话内语句语义改变时 PL/pgSQL 对 SQL 语句类型的错误识别(Tom Lane)

    这个错误导致断言失败,或者罕见情况下未能按预期执行 INTO STRICT 选项。

  • 修复客户端程序中的密码提示,使 Windows 上 stdin 不是终端时正确关闭回显(Matthew Stickney)

  • 进一步修复转储中列表值 GUC 变量值的错误引号(Tom Lane)

    此前对 pg_dump 输出中 search_path 及其他列表值变量加引号的修复,对空字符串列表元素行为不当,并且有截断长文件路径的风险。

  • 让 pg_upgrade 检查旧服务器是否被干净地关闭(Bruce Momjian)

    原来的检查可能被立即模式关闭欺骗。

  • 修复 contrib/ltree 的 lca() 函数在输入数组为空时崩溃的问题(Pierre Ducroquet)

  • 修复若干可能报告错误错误码的错误处理代码路径(Michael Paquier、Tom Lane、Magnus Hagander)

  • 重排 makefile,确保程序链接到新构建的库(如 libpq.so)而不是系统库目录中可能存在的(Tom Lane)

    这避免了在提供旧版 PostgreSQL 库副本的平台上构建时的问题。

  • 更新时区数据文件到 tzdata 版本 2018e,涉及朝鲜的夏令时法规变更,以及捷克斯洛伐克的历史修正。

    此更新包括对爱尔兰以及纳米比亚和捷克斯洛伐克某些过去年份“夏令时”的重新定义。在这些司法管辖区,法律上夏季实行标准时间、冬季实行夏令时,因此夏令时偏移比标准时间晚一小时而不是早一小时。这不影响实际 UTC 偏移或所用的时区缩写;唯一已知的效果是这些情况下 pg_timezone_names 视图的 is_dst 列现在冬季为真、夏季为假。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.