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

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

文档版本比较

POSTGRESQL · VERSION COMPARE

PostgreSQL 9.6.7 发布变化

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

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

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

完整发布变化

9.6.7

2018-02-08

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

9.6.7stable支持截止 2021-11-11

安全变化
CVE / 问题严重程度修复版本所选版本状态
CVE-2018-1053

确保 pg_upgrade 创建的所有临时文件对其他用户不可读

9.6.7已记录修复

PostgreSQL 9.6.7

迁移与兼容性

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

不过,如果你使用 contrib/cube 的 ~> 操作符,请参见下面相关条目。

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

安全确保 pg_upgrade 创建的所有临时文件对其他用户不可读

变更

确保 pg_upgrade 创建的所有临时文件对其他用户不可读(Tom Lane、Noah Misch)

pg_upgrade 通常将其临时文件限制为只有调用用户可读写。但如果用户的 umask 设置允许,包含 pg_dumpall -g 输出的临时文件会是组可读或全局可读,甚至可写。在多用户机器的典型用法中,umask 和/或工作目录的权限会足够严格以防止问题;但可能有人在 pg_upgrade 的这一疏漏允许向不友好者泄露数据库密码的场景下使用它。(CVE-2018-1053)

关联记录 (4)
问题修复修复对在键共享锁定下被更新的元组的清理

变更

修复对在键共享锁定下被更新的元组的清理(Andres Freund、Álvaro Herrera)

某些情况下,VACUUM 即使这些元组现在已经死亡也不会移除它们,导致各种数据损坏场景。

关联记录 (4)
改进确保 vacuum 总是清理 GIN 索引的未决插入列表

变更

确保 vacuum 总是清理 GIN 索引的未决插入列表(Masahiko Sawada)

这对确保死索引条目被移除是必要的。原来的代码弄反了,允许 vacuum 在某个其他进程并发运行清理时跳过清理,从而使索引中留下无效条目。

关联记录 (1)
问题修复修复某些 LSN 获取中不充分的缓冲区锁定

变更

修复某些 LSN 获取中不充分的缓冲区锁定(Jacob Champion、Asim Praveen、Ashwin Agrawal)

这些错误可能导致并发负载下的行为异常。潜在后果尚未完全弄清。

关联记录 (4)
问题修复修复子查询输出用于 GROUPING SETS 时子查询展平相关情况的错误查询结果

变更

修复子查询输出用于 GROUPING SETS 时子查询展平相关情况的错误查询结果(Heikki Linnakangas)

关联记录 (2)
改进避免与 ALTER TABLE NO INHERIT 并发地从树中移除某个子表时对继承树的查询不必要的失败

变更

避免与 ALTER TABLE NO INHERIT 并发地从树中移除某个子表时对继承树的查询不必要的失败(Tom Lane)

关联记录 (4)
问题修复修复多个会话运行 CREATE INDEX CONCURRENTLY 时的虚假死锁失败

变更

修复多个会话运行 CREATE INDEX CONCURRENTLY 时的虚假死锁失败(Jeff Janes)

关联记录 (3)
问题修复修复继承树包含外部子表时的失败

变更

修复继承树包含外部子表时的失败(Etsuro Fujita)

继承树中普通表和外部表的混合导致为 UPDATE 和 DELETE 查询创建错误计划。这在某些情况下导致可见的失败,特别是当外部子表上有行级触发器时。

关联记录 (2)
问题修复修复 LATERAL 子查询内 VALUES 内相关子 SELECT 的失败

变更

修复 LATERAL 子查询内 VALUES 内相关子 SELECT 的失败(Tom Lane)

关联记录 (4)
问题修复修复横向子查询内嵌套 UNION ALL 的某些情况下 “could not devise a query plan for the given query” 规划器失败

变更

修复横向子查询内嵌套 UNION ALL 的某些情况下 “could not devise a query plan for the given query” 规划器失败(Tom Lane)

关联记录 (4)
问题修复修复逻辑解码正确清理崩溃事务的磁盘文件

变更

修复逻辑解码正确清理崩溃事务的磁盘文件(Atsushi Torikoshi)

逻辑解码可能为生成许多 WAL 记录的事务把 WAL 记录溢出到磁盘。通常这些文件在事务的提交或中止记录到达后清理;但如果从未看到这样的记录,移除代码就会行为不当。

关联记录 (3)
问题修复修复处理大事务时的 walsender 超时失败和中断响应失败

变更

修复处理大事务时的 walsender 超时失败和中断响应失败(Petr Jelinek)

关联记录 (3)
问题修复修复 has_sequence_privilege() 像其他权限测试函数一样支持 WITH GRANT OPTION 测试

变更

修复 has_sequence_privilege() 像其他权限测试函数一样支持 WITH GRANT OPTION 测试(Joe Conway)

关联记录 (4)
改进在使用 UTF8 编码的数据库中,忽略断言不同编码的 XML 声明

变更

在使用 UTF8 编码的数据库中,忽略断言不同编码的 XML 声明(Pavel Stehule、Noah Misch)

我们总是以数据库编码存储 XML 字符串,因此允许 libxml 对另一种编码的声明采取行动会给出错误结果。在 UTF8 之外的编码中,我们本来就不承诺支持非 ASCII XML 数据,因此为错误兼容保留以前的行为。这一更改只影响 xpath() 及相关函数;其他 XML 代码路径已经这样做了。

关联记录 (4)
改进为与未来次版本协议的前向兼容做准备

变更

为与未来次版本协议的前向兼容做准备(Robert Haas、Badrul Chowdhury)

到目前为止,PostgreSQL 服务器只是拒绝使用比 3.0 更新的协议版本的请求,因此协议版本号的主部分和次部分之间没有功能差别。允许客户端请求 3.x 版本而不失败,发回一条表明服务器只理解 3.0 的消息。这目前没有区别,但向后移植此更改应能更快引入未来的次协议升级。

关联记录 (4)
改进应对并行工作者进程启动失败

变更

应对并行工作者进程启动失败(Amit Kapila、Robert Haas)

此前如果工作者无法启动(因 fork() 失败或其他低概率问题),并行查询往往无限挂起。

关联记录 (3)
问题修复修复从并行工作者收集 EXPLAIN 统计信息

变更

修复从并行工作者收集 EXPLAIN 统计信息(Amit Kapila、Thomas Munro)

关联记录 (1)
改进避免使用 __int128 时做出不安全的对齐假定

变更

避免使用 __int128 时做出不安全的对齐假定(Tom Lane)

通常编译器假定 __int128 变量按 16 字节边界对齐,但我们的内存分配基础设施不能保证这一点,而且出于多种原因增大 MAXALIGN 的设置似乎不可行。调整代码,只在能让编译器假定较低对齐时才允许使用 __int128。到目前为止此问题的唯一已知症状是某些并行聚合查询中的崩溃。

关联记录 (2)
问题修复防止规划极深层嵌套集合操作(UNION/INTERSECT/EXCEPT)时的栈溢出崩溃

变更

防止规划极深层嵌套集合操作(UNION/INTERSECT/EXCEPT)时的栈溢出崩溃(Tom Lane)

关联记录 (4)
问题修复修复 pg_hba.conf 中出现的某些类型 LDAP URL 的空指针崩溃

变更

修复 pg_hba.conf 中出现的某些类型 LDAP URL 的空指针崩溃(Thomas Munro)

关联记录 (4)
问题修复修复 PL/pgSQL 文档中的 INSTR() 示例函数

变更

修复 PL/pgSQL 文档中的 INSTR() 示例函数(Yugo Nagata、Tom Lane)

这些函数声称与 Oracle® 兼容,但并不完全如此。特别是对负第三参数的解释有分歧:Oracle 认为负值表示目标子串可以开始出现的最后一个位置,而我们的函数把它当作目标可以结束的最后一个位置。此外,Oracle 对零或负第四参数抛出错误,而我们的函数返回零。

示例代码已被调整以更精确地匹配 Oracle 的行为。把这段代码复制到其应用中的用户可能希望更新其副本。

关联记录 (4)
问题修复修复 pg_dump 使 ACL(权限)、注释和安全标签条目在归档输出格式中可靠可识别

变更

修复 pg_dump 使 ACL(权限)、注释和安全标签条目在归档输出格式中可靠可识别(Tom Lane)

ACL 归档条目的“标记”部分通常只是相关对象的名称。使它以对象类型开头,使 ACL 与注释和安全标签归档条目已使用的约定一致。同时修复整个数据库的注释和安全标签条目(如果存在),使其标记以 DATABASE 开头,从而也遵循这一约定。这防止试图通过查看标记是否以 LARGE OBJECT 开头来识别大对象相关条目的代码发生假匹配。那可能导致条目被错误分类为数据而非模式,在仅模式或仅数据转储中产生不希望的结果。

注意,这一更改在 pg_restore --list 的输出中有用户可见的结果。

关联记录 (4)
改进重命名 pg_rewind 的 copy_file_range 函数,避免与该名称的新 Linux 系统调用冲突

变更

重命名 pg_rewind 的 copy_file_range 函数,避免与该名称的新 Linux 系统调用冲突(Andres Freund)

这一更改防止了更新 glibc 版本下的构建失败。

关联记录 (2)
问题修复在 ecpg 中,检测长度不正确的指示符数组并报错

变更

在 ecpg 中,检测长度不正确的指示符数组并报错(David Rader)

关联记录 (4)
改进更改 contrib/cube 的 cube ~> int 操作符的行为使其与 KNN 搜索兼容

变更

更改 contrib/cube 的 cube ~> int 操作符的行为使其与 KNN 搜索兼容(Alexander Korotkov)

更改了第二个参数(维度选择器)的含义,即使在处理维度数不同的 cube 时也能预测选择哪个值。

这是一个不兼容的更改,但由于该操作符的意义正是在 KNN 搜索中使用,原样似乎相当无用。安装此更新后,使用该操作符的任何表达式索引或物化视图都需要重建/刷新。

关联记录 (1)
改进避免 contrib/hstore 中因对相同源和目标指针使用 memcpy() 而触发 libc 断言

变更

避免 contrib/hstore 中因对相同源和目标指针使用 memcpy() 而触发 libc 断言(Tomas Vondra)

关联记录 (4)
问题修复修复 contrib/pageinspect 中元组空位图的错误显示

变更

修复 contrib/pageinspect 中元组空位图的错误显示(Maksim Milyutin)

关联记录 (1)
改进在 contrib/postgres_fdw 中,构造涉及远程连接的计划时避免 “outer pathkeys do not match mergeclauses” 规划器错误

变更

在 contrib/postgres_fdw 中,构造涉及远程连接的计划时避免 “outer pathkeys do not match mergeclauses” 规划器错误(Robert Haas)

关联记录 (1)
改进提供在 macOS 上自动启动 Postgres 的现代示例

变更

提供在 macOS 上自动启动 Postgres 的现代示例(Tom Lane)

contrib/start-scripts/osx 中的脚本使用已被弃用十多年的基础设施,并且在过去几年的 macOS 版本中已完全不能工作。添加了包含使用较新 launchd 基础设施的脚本的新子目录 contrib/start-scripts/macos。

关联记录 (4)
问题修复修复 Windows 上为 OpenSSL 错误选择配置特定的库

变更

修复 Windows 上为 OpenSSL 错误选择配置特定的库(Andrew Dunstan)

关联记录 (4)
改进支持链接到 MinGW 构建的 libperl 版本

变更

支持链接到 MinGW 构建的 libperl 版本(Noah Misch)

这允许用一些常见的 Windows Perl 发行版构建 PL/Perl。

关联记录 (4)
问题修复修复 MSVC 构建测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T

变更

修复 MSVC 构建测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T(Noah Misch)

可用的 Perl 发行版在这点上不一致,且没有报告它的可靠手段,因此求助于对所使用的库实际行为的构建时测试。

关联记录 (4)
改进在 Windows 上,在 postmaster 启动更早阶段安装崩溃转储处理器

变更

在 Windows 上,在 postmaster 启动更早阶段安装崩溃转储处理器(Takayuki Tsunakawa)

这可以允许为一些以前不产生转储的早期启动失败收集核心转储。

关联记录 (4)
问题修复在 Windows 上,避免 postmaster 启动极早期发出消息时与编码转换相关的崩溃

变更

在 Windows 上,避免 postmaster 启动极早期发出消息时与编码转换相关的崩溃(Takayuki Tsunakawa)

关联记录 (4)
改进把我们现有的 Motorola 68K 自旋锁代码也用于 OpenBSD 而不只是 NetBSD

变更

把我们现有的 Motorola 68K 自旋锁代码也用于 OpenBSD 而不只是 NetBSD(David Carlier)

关联记录 (4)
改进为 Motorola 88K 添加自旋锁支持

变更

为 Motorola 88K 添加自旋锁支持(David Carlier)

关联记录 (4)
改进更新时区数据文件到 tzdata 版本 2018c,涉及巴西以及圣多美和普林西比的夏令时法规变更,加上玻利维亚、日本和南苏丹的历史修正。US/Pacific-New 时区已被移除(它本来只是 America/Los_Angeles 的别名)。

变更

更新时区数据文件到 tzdata 版本 2018c,涉及巴西以及圣多美和普林西比的夏令时法规变更,加上玻利维亚、日本和南苏丹的历史修正。US/Pacific-New 时区已被移除(它本来只是 America/Los_Angeles 的别名)。

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

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

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

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