↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 9.5.16 的版本变更

本次发布的完整功能、修复与兼容性说明,以及它们在其他版本中的关联记录。

查看该版本全部变更
查看该版本全部变更

从起始版本之后,看到目标版本为止。大版本名称代表该系列首个正式版本。

收录 PostgreSQL 9.0 起的 17 个大版本、352 份发布说明;数据更新于 2026-09-26。

本次发布的全部变更

9.5.16

2019-02-14

导出 JSON
39项变更功能、修复与改进
1次版本发布按发行版本归档
0个 CVE本版说明中提及的漏洞编号

9.5.16 历史版本维护截止 2021-02-11

PostgreSQL 9.5.16

升级与兼容性说明

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

不过,如果你是从 9.5.13 之前的版本升级,参见第 E.13 节。

BUG 修复默认情况下,fsync() 失败后 panic 而不是重试,以避免可能的数据损坏

变更

默认情况下,fsync() 失败后 panic 而不是重试,以避免可能的数据损坏(Craig Ringer、Thomas Munro)

一些流行的操作系统在无法写出内核数据缓冲区时会将其丢弃,并把这报告为 fsync() 失败。如果我们重新发出 fsync() 请求它会成功,但实际上数据已经丢失,因此继续下去有数据库损坏的风险。通过引发 panic 条件,我们可以从 WAL 重放——这种情况下 WAL 中可能包含数据的唯一剩余副本。虽然这无疑丑陋且低效,但几乎没有其他选择,所幸这种情况很少发生。

新增了服务器参数data_sync_retry来控制这一行为;如果你确定你的内核在此类场景下不会丢弃脏数据缓冲区,可以把 data_sync_retry 设为 on 恢复旧行为。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进每个大版本分支的文档只包含该分支的发行说明,而不是该分支及所有之后分支的

变更

每个大版本分支的文档只包含该分支的发行说明,而不是该分支及所有之后分支的(Tom Lane)

以前的政策造成的重复越来越失控。我们的计划是在项目网站上提供完整的发行说明归档,而不是在每个发行版中重复它。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免获取多个缓冲区锁时可能的死锁

变更

避免获取多个缓冲区锁时可能的死锁(Nishant Fnu)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免热备查询与 GIN 索引页删除重放之间的死锁

变更

避免热备查询与 GIN 索引页删除重放之间的死锁(Alexander Korotkov)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复使用索引表达式或谓词时逻辑复制可能的崩溃

变更

修复使用索引表达式或谓词时逻辑复制可能的崩溃(Peter Eisentraut)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免表重写期间对 TOAST 数据无用而昂贵的逻辑解码

变更

避免表重写期间对 TOAST 数据无用而昂贵的逻辑解码(Tomas Vondra)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复启用同步复制时只停止一部分 WAL 发送者的逻辑

变更

修复启用同步复制时只停止一部分 WAL 发送者的逻辑(Paul Guo、Michael Paquier)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免在元组删除 WAL 记录中可能写入错误的副本身份字段

变更

避免在元组删除 WAL 记录中可能写入错误的副本身份字段(Stas Kelvich)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进让归档器在选择下一个要归档的文件时,把 WAL 历史文件的优先级置于 WAL 数据文件之上

变更

让归档器在选择下一个要归档的文件时,把 WAL 历史文件的优先级置于 WAL 数据文件之上(David Steele)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复使用子 SELECT 作为源的多 SET 子句 UPDATE 可能的崩溃

变更

修复使用子 SELECT 作为源的多 SET 子句 UPDATE 可能的崩溃(Tom Lane)

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免 libxml2 返回空错误消息时崩溃

变更

避免 libxml2 返回空错误消息时崩溃(Sergio Conde Gómez)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复排序规则分配处理不一致导致的虚假分组相关分析器错误

变更

修复排序规则分配处理不一致导致的虚假分组相关分析器错误(Andrew Gierth)

某些情况下,如果表达式包含对可排序数据类型的操作,本应被视为匹配的表达式没有被看作匹配。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进检查 LEAST() 或 GREATEST() 底层的比较函数是否防泄漏,而不是直接假定它防泄漏

变更

检查 LEAST() 或 GREATEST() 底层的比较函数是否防泄漏,而不是直接假定它防泄漏(Tom Lane)

btree 比较函数的实际信息泄漏通常很难诱发,但原则上可能发生。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复必须在外部表扫描处求值横向引用的查询的错误规划

变更

修复必须在外部表扫描处求值横向引用的查询的错误规划(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复归并连接代价的边界低估

变更

修复归并连接代价的边界低估(Tom Lane)

当外键范围远小于内键范围时,即使内侧有如此多的重复键以至于这是糟糕的选择,规划器也可能偏爱归并连接。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免查询包含数千个可索引子句时 O(N^2) 的规划时间增长

变更

避免查询包含数千个可索引子句时 O(N^2) 的规划时间增长(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进改进 ANALYZE 对并发更新行的处理

变更

改进 ANALYZE 对并发更新行的处理(Jeff Janes、Tom Lane)

此前,进行中事务删除的行被排除在 ANALYZE 的样本之外,但事实证明这比包含它们导致更多不一致。现在,样本实际上对应 ANALYZE 开始时刻的 MVCC 快照。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进让 TRUNCATE 忽略作为其他会话临时表的继承子表

变更

让 TRUNCATE 忽略作为其他会话临时表的继承子表(Amit Langote、Michael Paquier)

这使 TRUNCATE 与其他命令的行为一致。此前这种情况通常以失败告终。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 TRUNCATE 更新正确表的统计计数器

变更

修复 TRUNCATE 更新正确表的统计计数器(Tom Lane)

如果被截断的表有 TOAST 表,被重置的却是那张表的计数器。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进允许在热备模式下执行 UNLISTEN

变更

允许在热备模式下执行 UNLISTEN(Shay Rojansky)

这必然是无操作,因为热备模式下不允许 LISTEN;但允许这个哑操作可以简化客户端的会话状态重置逻辑。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复某些模式和数据类型权限列表中缺失的角色依赖

变更

修复某些模式和数据类型权限列表中缺失的角色依赖(Tom Lane)

某些情况下可以删除已被授予权限的角色。这不会立即造成问题,但之后的转储/恢复或升级会失败,症状涉及尝试向全数字角色名授予权限。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保重命名约束之后正确更新关系缓存

变更

确保重命名约束之后正确更新关系缓存(Amit Langote)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进让自动清理更积极地移除遗留的临时表,并在 DISCARD TEMP 期间也移除遗留临时表

变更

让自动清理更积极地移除遗留的临时表,并在 DISCARD TEMP 期间也移除遗留临时表(Álvaro Herrera)

这有助于确保崩溃会话的残留更及时地被清理。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止空 GIN 索引页被过快回收导致并发搜索失败

变更

防止空 GIN 索引页被过快回收导致并发搜索失败(Andrey Borodin、Alexander Korotkov)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复浮点到整数强制转换的边界失败

变更

修复浮点到整数强制转换的边界失败(Andrew Gierth、Tom Lane)

略高于最大有效整数值的值可能未被拒绝,随后发生溢出,产生最小有效整数。另外,本应舍入到最小或最大整数值的值可能被错误拒绝。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进禁止把 client_min_messages 设得比 ERROR 更高

变更

禁止把 client_min_messages 设得比 ERROR 更高(Jonah Harris、Tom Lane)

此前可以把该变量设为 FATAL 或 PANIC,效果是抑制向客户端传输普通错误消息。然而这违背了 PostgreSQL 线上协议规范中给出的保证,并导致一些客户端非常困惑。在已发布分支中,通过把这种设置静默地当作 ERROR 处理来修复。版本 12 及之后将彻底拒绝这些选项。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ecpglib 优先使用 uselocale() 或 _configthreadlocale() 而不是 setlocale()

变更

修复 ecpglib 优先使用 uselocale() 或 _configthreadlocale() 而不是 setlocale()(Michael Meskes、Tom Lane)

由于 setlocale() 不是线程局部的,甚至可能不是线程安全的,原来的编码在多线程 ecpg 应用中造成问题。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复通过 ecpg SQLDA(SQL 描述符区域)传递的 numeric 数据的错误结果

变更

修复通过 ecpg SQLDA(SQL 描述符区域)传递的 numeric 数据的错误结果(Daisuke Higuchi)

带前导零的值没有被正确复制。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 psql 的 \g target 元命令与 COPY TO STDOUT 配合工作的问题

变更

修复 psql 的 \g target 元命令与 COPY TO STDOUT 配合工作的问题(Daniel Vérité)

此前 target 选项被忽略,复制数据总是流向当前的查询输出目标。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进让 psql 的 LaTeX 输出格式正确渲染特殊字符

变更

让 psql 的 LaTeX 输出格式正确渲染特殊字符(Tom Lane)

反斜线和某些其他 ASCII 标点字符没有被正确渲染,导致文档语法错误或输出中的错误字符。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_dump 对间接依赖主键的物化视图的处理

变更

修复 pg_dump 对间接依赖主键的物化视图的处理(Tom Lane)

这导致此类视图的转储归档条目被错误标记,产生关于 “archive items not in correct section order” 的无害警告;更有害的是,依赖这些标签的选择性恢复选项(如 --section)可能行为异常。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免 pg_dump 或 pg_restore 尝试报告错误时在某些平台上的空指针解引用崩溃

变更

避免 pg_dump 或 pg_restore 尝试报告错误时在某些平台上的空指针解引用崩溃(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 contrib/hstore 为 8.4 或更早版本中创建的空 hstore 值计算正确的哈希值

变更

修复 contrib/hstore 为 8.4 或更早版本中创建的空 hstore 值计算正确的哈希值(Andrew Gierth)

原来的编码给出的结果与更新版本创建的空 hstore 值不同,因此可能导致哈希连接或哈希聚合的错误结果。如果表可能包含最早存储于 8.4 且此后从未转储/恢复过的数据,建议对 hstore 列上的哈希索引执行 REINDEX。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免 contrib/intarray 的 gist__int_ops 索引支持处理大输入时崩溃和过长运行时间

变更

避免 contrib/intarray 的 gist__int_ops 索引支持处理大输入时崩溃和过长运行时间(Andrew Gierth)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进调整 configure 对线程相关编译器标志和库的选择,使其与后续 PostgreSQL 版本的做法一致

变更

调整 configure 对线程相关编译器标志和库的选择,使其与后续 PostgreSQL 版本的做法一致(Tom Lane)

此前 9.4 和 9.5 分支中使用的代码在一些较新的平台上彻底失败,因此将其与 9.6 及更高版本的做法同步。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进支持 pgxs 构建中的新 Makefile 变量 PG_CFLAGS、PG_CXXFLAGS 和 PG_LDFLAGS

变更

支持 pgxs 构建中的新 Makefile 变量 PG_CFLAGS、PG_CXXFLAGS 和 PG_LDFLAGS(Christoph Berg)

这简化了扩展构建过程的自定义。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 Perl 编写的构建脚本不假定 “.” 在搜索路径中,因为最近的 Perl 版本不包含它

变更

修复 Perl 编写的构建脚本不假定 “.” 在搜索路径中,因为最近的 Perl 版本不包含它(Andrew Dunstan)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 OpenBSD 上服务器命令行选项解析的问题

变更

修复 OpenBSD 上服务器命令行选项解析的问题(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进更新时区数据文件到 tzdata 版本 2018i,涉及哈萨克斯坦、梅特拉卡特拉以及圣多美和普林西比的夏令时法规变更。哈萨克斯坦的克孜勒奥尔达时区一分为二,创建了新时区 Asia/Qostanay,因为部分地区没有更改 UTC 偏移。还有香港和众多太平洋岛屿的历史修正。

变更

更新时区数据文件到 tzdata 版本 2018i,涉及哈萨克斯坦、梅特拉卡特拉以及圣多美和普林西比的夏令时法规变更。哈萨克斯坦的克孜勒奥尔达时区一分为二,创建了新时区 Asia/Qostanay,因为部分地区没有更改 UTC 偏移。还有香港和众多太平洋岛屿的历史修正。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

这份对比如何生成?

对比以 PostgreSQL 发行说明为依据,汇总起始版本之后、目标版本及之前的变更,支持同一大版本内的小版本更新,以及跨大版本升级。跨大版本时,旧分支的维护记录只纳入到下一大版本首次发布之日,所有记录均不晚于目标版本的发布日期。大版本名称(如 18)指首个正式版本(18.0);测试版与开发快照会单独标注。

条目正文来自本站中文手册,版本清单、条目覆盖与提交依据逐一核对上游英文原文。每条变更保留完整说明与原文链接;分类用于辅助浏览,具体影响、适用条件与升级操作请阅读条目正文和各版本的升级说明。

同一修复可能回补到多个版本分支。对比会保守合并可确认相同的条目,并保留各分支完整说明;已知由起始版本包含的修复会排除。一条说明包含多个独立修复时,只有全部已包含才排除。大版本新功能不因与旧版补丁存在提交关联而合并,不能确认相同的条目继续保留。这是发行说明的累计差异,不能覆盖二进制程序之间的每一处代码变化。

CVE 独立依据 PostgreSQL 官方安全公告与漏洞记录计算:起始版本受影响、目标版本已修复或不受影响的漏洞才计入,按编号去重。目标版本仍受影响的漏洞另行提示;安全变更条数与 CVE 数量分别统计。

交互参考 pgversions.com 与 pgversionreport,内容来自 PostgreSQL 发行说明。更多历史资料见发行说明归档。