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

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

文档版本比较

POSTGRESQL · VERSION COMPARE

PostgreSQL 9.6.1 发布变化

此版本的完整功能、修复与兼容性说明,以及其他版本的关联记录。

此版本的完整变化
此版本的完整变化

包括起始版本之后至目标版本的变化。大版本号表示该分支的首个版本。

完整发布变化

9.6.1

2016-10-27

导出 JSON ↓
28项变化功能、修复、改进
1个版本按版本分组
0CVE独立漏洞编号

9.6.1stable支持截止 2021-11-11

PostgreSQL 9.6.1

迁移与兼容性

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

不过,如果你的安装受到下面前两条变更日志条目所述 bug 的影响,更新之后你可能需要采取行动修复损坏的空闲空间映射和/或可见性映射。

问题修复修复关系空闲空间映射和可见性映射截断的 WAL 记录

变更

修复关系空闲空间映射和可见性映射截断的 WAL 记录(Pavan Deolasee、Heikki Linnakangas)

这些文件有可能在崩溃恢复期间未被正确恢复,或者在备库服务器上被错误写入。空闲空间映射中的虚假条目可能导致访问已从关系中截断掉的页,通常产生诸如 “could not read block XXX: read only 0 of 8192 bytes” 的错误。如果启用了校验和,可见性映射中的校验和失败也是可能的。

判断是否存在问题以及如何修复的程序在https://wiki.postgresql.org/wiki/Free_Space_Map_Problems中讨论。

关联记录 (3)
问题修复修复 pg_upgrade 把关系可见性映射重写为 9.6 格式时可能的数据损坏

变更

修复 pg_upgrade 把关系可见性映射重写为 9.6 格式时可能的数据损坏(Tom Lane)

在大端机器上,新可见性映射的字节以错误顺序写入,导致完全错误的映射。在 Windows 上,旧映射以文本模式读取,如果映射碰巧包含匹配回车/ 换行序列的连续字节则导致错误结果。后者几乎总是由于映射文件看起来长度错误而导致 pg_upgrade 失败。

如果你在使用大端机器(许多非 Intel 架构是大端的)并且使用过 pg_upgrade 从 9.6 之前的版本升级,应当假定所有可见性映射都是错误的、需要重新生成。用 contrib/pg_visibility 的 pg_truncate_visibility_map() 函数截断每个关系的可见性映射就足够了。更多信息见https://wiki.postgresql.org/wiki/Visibility_Map_Problems。

改进不再对 INSERT ... ON CONFLICT 中的自冲突插入抛出序列化错误

变更

不再对 INSERT ... ON CONFLICT 中的自冲突插入抛出序列化错误(Thomas Munro、Peter Geoghegan)

关联记录 (1)
问题修复修复使用 DISTINCT 的聚合函数执行中的释放后使用风险

变更

修复使用 DISTINCT 的聚合函数执行中的释放后使用风险(Peter Geoghegan)

这可能导致崩溃或错误查询结果。

问题修复修复用作窗口函数的多态聚合的错误处理

变更

修复用作窗口函数的多态聚合的错误处理(Tom Lane)

聚合的转换函数被告知其第一个参数和结果是聚合的输出类型而不是状态类型。这导致多态转换函数的错误或崩溃。

问题修复修复对启用了行级安全的表使用带列名列表的 COPY

变更

修复对启用了行级安全的表使用带列名列表的 COPY(Adam Brightwell)

关联记录 (1)
问题修复修复track_io_timing打开时 EXPLAIN 发出有效 XML

变更

修复track_io_timing打开时 EXPLAIN 发出有效 XML(Markus Winand)

此前 XML 输出格式选项产生语法无效的标记,如 <I/O-Read-Time>。现在它被渲染为 <I-O-Read-Time>。

关联记录 (4)
问题修复修复预备事务中 TRUNCATE 的统计信息更新

变更

修复预备事务中 TRUNCATE 的统计信息更新(Stas Kelvich)

关联记录 (1)
问题修复修复创建或更改表时合并继承 CHECK 约束的 bug

变更

修复创建或更改表时合并继承 CHECK 约束的 bug(Tom Lane、Amit Langote)

允许以任一顺序向父表和子表添加相同的 CHECK 约束。防止父表的有效约束与子表的 NOT VALID 约束合并。同样防止 NO INHERIT 子约束与继承约束合并。

关联记录 (4)
改进在 pg_settings.unit 中为 min_wal_size 和 max_wal_size 显示合理的值

变更

在 pg_settings.unit 中为 min_wal_size 和 max_wal_size 显示合理的值(Tom Lane)

关联记录 (1)
问题修复修复 jsonb_set() 中数组元素的替换

变更

修复 jsonb_set() 中数组元素的替换(Tom Lane)

如果目标是现有的 JSON 数组元素,它被删除而不是被替换为新值。

问题修复避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏

变更

避免因未持有缓冲区锁测试元组可见性而导致的极低概率数据损坏(Thomas Munro、Peter Geoghegan、Tom Lane)

关联记录 (5)
改进跨服务器重启保留提交时间戳

变更

跨服务器重启保留提交时间戳(Julien Rouhaud、Craig Ringer)

在打开track_commit_timestamp的情况下,干净的服务器重启后旧的提交时间戳变得不可访问。

关联记录 (1)
问题修复修复子事务的 WAL 输出大到足以溢出到磁盘时逻辑 WAL 解码的正常工作

变更

修复子事务的 WAL 输出大到足以溢出到磁盘时逻辑 WAL 解码的正常工作(Andres Freund)

关联记录 (2)
问题修复修复逻辑 WAL 解码中的悬空指针问题

变更

修复逻辑 WAL 解码中的悬空指针问题(Stas Kelvich)

改进在 Linux 上尝试使用大页时,把共享内存分配请求舍入到实际大页大小的整数倍

变更

在 Linux 上尝试使用大页时,把共享内存分配请求舍入到实际大页大小的整数倍(Tom Lane)

这避免了在默认大页大小非典型的系统上 munmap() 期间可能的失败。除崩溃恢复情况外,除了日志消息之外没有不良影响。

关联记录 (2)
改进不要在 libpq 中跨多个连接共享 SSL 上下文

变更

不要在 libpq 中跨多个连接共享 SSL 上下文(Heikki Linnakangas)

这导致了各种边界情况 bug,特别是当尝试对不同连接使用不同 SSL 参数时。

关联记录 (5)
问题修复避免 libpq 中的边界情况内存泄漏

变更

避免 libpq 中的边界情况内存泄漏(Tom Lane)

报告的问题涉及 PQreset() 期间泄漏错误报告,但可能有相关情况。

关联记录 (5)
改进在 pg_upgrade 中,按名称顺序检查库可加载性

变更

在 pg_upgrade 中,按名称顺序检查库可加载性(Tom Lane)

这是处理语言转换模块对其基础语言和数据类型模块的跨扩展依赖的权宜之计。

关联记录 (1)
问题修复修复 pg_upgrade 对包含索引访问方法的扩展正确工作

变更

修复 pg_upgrade 对包含索引访问方法的扩展正确工作(Tom Lane)

为此,服务器被扩展以支持 ALTER EXTENSION ADD/DROP ACCESS METHOD。这一功能本应包含在支持动态创建访问方法的原始补丁中,但被遗漏了。

改进改进 pg_upgrade 文件复制/链接/重写步骤中的错误报告

变更

改进 pg_upgrade 文件复制/链接/重写步骤中的错误报告(Tom Lane、Álvaro Herrera)

问题修复修复 pg_dump 对 7.4 之前服务器的工作

变更

修复 pg_dump 对 7.4 之前服务器的工作(Amit Langote、Tom Lane)

改进禁止对 pg_rewind 同时指定 --source-server 和 --source-target 选项

变更

禁止对 pg_rewind 同时指定 --source-server 和 --source-target 选项(Michael Banck)

关联记录 (1)
改进让 pg_rewind 在源服务器上的会话中关闭 synchronous_commit

变更

让 pg_rewind 在源服务器上的会话中关闭 synchronous_commit(Michael Banck、Michael Paquier)

这允许 pg_rewind 即使在源服务器使用的同步复制因某种原因不工作时也能运行。

关联记录 (1)
改进在 pg_xlogdump 中,使用 --follow 选项时重试打开新的 WAL 段

变更

在 pg_xlogdump 中,使用 --follow 选项时重试打开新的 WAL 段(Magnus Hagander)

这考虑到服务器创建下一段的可能延迟。

关联记录 (3)
问题修复修复 contrib/pg_visibility 为作为已回滚更新主题的损坏元组报告正确的 TID

变更

修复 contrib/pg_visibility 为作为已回滚更新主题的损坏元组报告正确的 TID(Tom Lane)

问题修复修复 makefile 依赖,使单独并行构建 PL/Python 能可靠成功

变更

修复 makefile 依赖,使单独并行构建 PL/Python 能可靠成功(Pavel Raiskup)

改进更新时区数据文件到 tzdata 版本 2016h,涉及巴勒斯坦和土耳其的夏令时法规变更,加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。

变更

更新时区数据文件到 tzdata 版本 2016h,涉及巴勒斯坦和土耳其的夏令时法规变更,加上土耳其和俄罗斯一些地区的历史修正。南极洲、前苏联和斯里兰卡的一些时区改用数字缩写。

IANA 时区数据库以前为所有时区提供文本缩写,有时编造在当地居民中几乎或完全没有使用的缩写。他们正在逆转这一政策,改为在没有证据表明实际使用英文缩写的区域使用数字 UTC 偏移。至少目前,PostgreSQL 将继续接受这种被移除的缩写用于时间戳输入。但它们不会显示在 pg_timezone_names 视图中,也不用于输出。

在此更新中,AMT 不再显示为表示亚美尼亚时间。因此我们把 Default 缩写集改为把它解释为亚马逊时间,即 UTC-4 而不是 UTC+4。

关联记录 (5)
如何生成比较结果?

比较依据起始版本之后至目标版本的 PostgreSQL 发布说明。经核实的回补重复项会谨慎合并,保留每条原始说明;相关提交可能涉及独立变化,仍作为不同记录保留。

发布快照: 2026-09-26 · 安全快照: 2026-09-26

内容来自 PostgreSQL 发布说明。交互方式参考 pgversions.com 与 pgversionreport.