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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 9.6.6 的版本变更

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

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

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

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

本次发布的全部变更

9.6.6

2017-11-09

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

9.6.6 历史版本维护截止 2021-11-11

本版提及的安全记录 3 个 CVE
本版发布说明提及的 CVE,可能包含已有漏洞的后续修复
CVE / 问题严重程度修复版本
CVE-2017-12172

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

8.49.6.6
CVE-2017-15098

修复 json{b}_populate_recordset() 中行类型不匹配导致的崩溃

4.39.6.6
CVE-2017-15099

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

3.19.6.6

PostgreSQL 9.6.6

升级与兼容性说明

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

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

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

安全相关确保 INSERT ... ON CONFLICT DO UPDATE 在所有情况下检查表权限和 RLS 策略

变更

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

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

关联记录(2)

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

安全相关修复 json{b}_populate_recordset() 中行类型不匹配导致的崩溃

变更

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

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

关联记录(4)

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

安全相关修复示例服务器启动脚本在打开 $PGLOG 之前变成 $PGUSER

变更

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

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

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

关联记录(5)

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

BUG 修复修复 BRIN 索引摘要正确处理并发表扩展

变更

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

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

关联记录(2)

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

BUG 修复修复 BRIN 索引并发更新期间可能的失败

变更

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

这些竞态条件可能导致诸如 “invalid index offnum” 或 “inconsistent range map” 之类的错误。

关联记录(2)

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

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

变更

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

关联记录(3)

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

BUG 修复修复多个 GROUPING SETS 列包含同一简单变量时的错误查询结果

变更

修复多个 GROUPING SETS 列包含同一简单变量时的错误查询结果(Tom Lane)

关联记录(1)

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

BUG 修复修复嵌套查询的错误并行化决策

变更

修复嵌套查询的错误并行化决策(Amit Kapila、Kuntal Ghosh)

关联记录(1)

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

BUG 修复修复并行查询处理在最近使用过的角色被删除时不失败

变更

修复并行查询处理在最近使用过的角色被删除时不失败(Amit Kapila)

关联记录(1)

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

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

变更

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

关联记录(3)

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

其他改进正确拒绝把无穷大浮点值转换为 numeric 类型的尝试

变更

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

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

关联记录(4)

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

BUG 修复修复在视图末尾添加列后的边界崩溃

变更

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

关联记录(5)

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

其他改进在视图或规则包含 FieldSelect 或 FieldStore 表达式节点时记录正确的依赖

变更

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

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

关联记录(5)

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

其他改进正确检测范围数据类型的可哈希性

变更

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

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

关联记录(5)

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

其他改进在确定关系唯一性时正确忽略 RelabelType 表达式节点

变更

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

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

关联记录(1)

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

其他改进防止有序集聚合之间共享转换状态

变更

防止有序集聚合之间共享转换状态(David Rowley)

这会导致内置有序集聚合崩溃,用户编写的可能也一样。v11 及之后将包含安全处理这种情况的规定,但在已发布分支中,直接禁用该优化。

关联记录(1)

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

其他改进防止先前发生过 statement_timeout 时 idle_in_transaction_session_timeout 被忽略

变更

防止先前发生过 statement_timeout 时 idle_in_transaction_session_timeout 被忽略(Lukas Fittl)

关联记录(1)

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

BUG 修复修复因 XID 回卷导致的低概率 NOTIFY 消息丢失

变更

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

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

关联记录(5)

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

BUG 修复避免 Linux 上 DSM 内存请求超过 tmpfs 可用空间时的 SIGBUS 崩溃

变更

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

关联记录(2)

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

其他改进减少批量文件复制期间数据刷写请求的频率,以避免 macOS(特别是其新的 APFS 文件系统)上的性能问题

变更

减少批量文件复制期间数据刷写请求的频率,以避免 macOS(特别是其新的 APFS 文件系统)上的性能问题(Tom Lane)

关联记录(1)

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

BUG 修复防止嵌套触发器触发处理中的低概率崩溃

变更

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

关联记录(4)

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

其他改进允许 COPY 的 FREEZE 选项在事务隔离级别为 REPEATABLE READ 或更高时工作

变更

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

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

关联记录(3)

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

其他改进COPY 或 lo_export() 中文件创建失败时正确恢复 umask 设置

变更

COPY 或 lo_export() 中文件创建失败时正确恢复 umask 设置(Peter Eisentraut)

关联记录(4)

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

其他改进为 ANALYZE 中的重复列名给出更好的错误消息

变更

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

关联记录(4)

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

其他改进补上 GetCommandLogLevel() 中缺失的情况,防止 log_statement 设为 ddl 时使用某些 SQL 命令出错

变更

补上 GetCommandLogLevel() 中缺失的情况,防止 log_statement 设为 ddl 时使用某些 SQL 命令出错(Michael Paquier)

BUG 修复修复对不以换行结尾的 pg_hba.conf 文件最后一行的错误解析

变更

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

关联记录(3)

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

BUG 修复修复 AggGetAggref() 为转换计算已被合并的聚合最终函数返回正确的 Aggref 节点

变更

修复 AggGetAggref() 为转换计算已被合并的聚合最终函数返回正确的 Aggref 节点(Tom Lane)

关联记录(1)

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

BUG 修复修复 pg_dump 确保以有效顺序发出 GRANT 命令

变更

修复 pg_dump 确保以有效顺序发出 GRANT 命令(Stephen Frost)

BUG 修复修复 pg_basebackup 对表空间路径的匹配,在比较前规范化两个路径

变更

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

这在 Windows 上特别有帮助。

关联记录(2)

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

BUG 修复修复 libpq 不要求用户的主目录存在

变更

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

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

关联记录(5)

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

BUG 修复修复 libpq 防范 PGresult 行数中的整数溢出

变更

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

关联记录(4)

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

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

变更

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

关联记录(3)

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

其他改进在 ecpglib 中,根据是否设置了 standard_conforming_strings 正确处理字符串字面量中的反斜线

变更

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

关联记录(3)

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

其他改进让 ecpglib 的 Informix 兼容模式按预期忽略整数输入串中的小数位

变更

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

关联记录(4)

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

BUG 修复修复 ecpg 的回归测试在 Windows 上可靠工作

变更

修复 ecpg 的回归测试在 Windows 上可靠工作(Christian Ullrich、Michael Meskes)

BUG 修复修复类 check Make 目标缺失的临时安装先决条件

变更

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

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

关联记录(2)

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

其他改进把我们的时区库副本与 IANA tzcode2017c 同步

变更

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

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

关联记录(4)

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

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

变更

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

关联记录(5)

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

这份对比如何生成?

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

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

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

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

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