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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 15.5 的版本变更

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

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

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

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

本次发布的全部变更

15.5

2023-11-09

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

15.5 受支持版本维护截止 2027-11-11

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

检测计算新数组维度时的整数溢出

8.815.5
CVE-2023-5868

修复 DISTINCT "any" 聚合函数中对未知类型参数的处理

4.315.5
CVE-2023-5870

防止 pg_signal_backend 角色向后台工作进程和自动清理进程发送信号

2.215.5

PostgreSQL 15.5

升级与兼容性说明

对于运行 15.X 的用户,不需要执行导出/恢复。

但是,已发现若干错误可能导致特定类型的索引产生错误的搜索结果或不必要的低效。建议在安装此更新后对可能受影响的索引执行 REINDEX。请参阅下面的第四到第七条变更日志条目。

另外,如果你从早于 15.4 的版本升级,请参见第 E.16 节。

安全相关修复 DISTINCT "any" 聚合函数中对未知类型参数的处理

变更

修复 DISTINCT "any" 聚合函数中对未知类型参数的处理(Tom Lane)§

此错误导致 text 类型的值在运行时被解释为 unknown 类型的值(即以零终止的字符串)。这可能导致泄露 text 值之后的服务器内存。

PostgreSQL 项目感谢 Jingzhou Fu 报告此问题。(CVE-2023-5868)

关联记录(5)

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

安全相关检测计算新数组维度时的整数溢出

变更

检测计算新数组维度时的整数溢出(Tom Lane)§

当向超出当前数组边界的数组下标赋予新元素时,在极端情况下可能发生未检测到的整数溢出。可能利用内存越界写入来执行任意代码,也可能泄露服务器内存。

PostgreSQL 项目感谢 Pedro Gallegos 报告此问题。(CVE-2023-5869)

关联记录(5)

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

安全相关防止 pg_signal_backend 角色向后台工作进程和自动清理进程发送信号

变更

防止 pg_signal_backend 角色向后台工作进程和自动清理进程发送信号(Noah Misch,Jelte Fennema-Nio)§ §

文档说明 pg_signal_backend 不能向超级用户拥有的进程发送信号。但它能够向这些后台进程发送信号,因为它们公布的角色 OID 为零。现在将此视为表示超级用户所有权。取消这些进程类型之一的安全影响就核心代码而言相当小(我们只会启动另一个),但扩展可能添加更容易受影响的后台工作进程。

同时确保在这些进程中正确设置 is_superuser 参数。对于该疏忽,目前没有已知的具体安全后果,但对于某些扩展来说可能是重要的。

PostgreSQL 项目感谢 Hemanth Sandrana 和 Mahendrakar Srinivasarao 报告此问题。(CVE-2023-5870)

关联记录(5)

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

BUG 修复修复 GiST 索引构建中递归页面分裂时的错误行为

变更

修复 GiST 索引构建中递归页面分裂时的错误行为(Heikki Linnakangas)§

修复了一个页面下行链接位置被错误跟踪的情况,并引入了一些逻辑来允许从此类情况中恢复,而不是静默地执行错误操作。此错误可能导致后续索引搜索返回不正确的结果。建议在安装此更新后重建所有 GiST 索引。

关联记录(4)

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

其他改进防止对 interval 列的 B-树索引条目进行去重

变更

防止对 interval 列的 B-树索引条目进行去重(Noah Misch)§

存在可区分但比较相等的 interval 值,例如 24:00:00 和 1 day。这违反了 B-树去重所做的假设,因此 interval 列需要从去重中排除。此疏忽可能导致仅索引扫描返回不正确的结果。此外,更新后 amcheck 将对几乎所有此类索引报告错误。用户应当重建 interval 列上的所有 B-树索引。

关联记录(3)

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

其他改进在 BRIN datetime_minmax_multi_ops 索引中更合理地处理 date 值

变更

在 BRIN datetime_minmax_multi_ops 索引中更合理地处理 date 值(Tomas Vondra)§

日期的距离计算是反向的,导致了关于合并哪些条目的错误决策。索引仍然产生正确的结果,但效率远低于应有的水平。建议重建 date 列上的 BRIN minmax_multi 索引。

关联记录(2)

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

其他改进在 BRIN datetime_minmax_multi_ops 索引中更合理地处理较大的 timestamp 和 timestamptz 值

变更

在 BRIN datetime_minmax_multi_ops 索引中更合理地处理较大的 timestamp 和 timestamptz 值(Tomas Vondra)§ §

无穷值被错误地视为与其他值距离为零而非较大距离,导致了关于合并哪些条目的错误决策。此外,有限但非常大的值(接近可表示时间戳范围的端点)可能导致内部溢出,同样导致错误决策。索引仍然产生正确的结果,但效率远低于应有的水平。如果列包含或曾经包含无穷值或非常大的有限值,建议重建 timestamp 和 timestamptz 列上的 BRIN minmax_multi 索引。

关联记录(2)

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

BUG 修复避免在包含极端 interval 值的 BRIN interval_minmax_multi_ops 索引中出现计算溢出

变更

避免在包含极端 interval 值的 BRIN interval_minmax_multi_ops 索引中出现计算溢出(Tomas Vondra)§

此错误可能在尝试向此类索引插入较大的 interval 值时导致意外失败。

关联记录(2)

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

BUG 修复修复具有多个分区键的 hash 分区表的分区步骤生成和运行时分区剪枝

变更

修复具有多个分区键的 hash 分区表的分区步骤生成和运行时分区剪枝(David Rowley)§ §

某些涉及其中一个分区键上 IS NULL 条件的情况可能导致崩溃。

关联记录(5)

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

BUG 修复修复在 MERGE 期间对并发更新行的不一致重新检查

变更

修复在 MERGE 期间对并发更新行的不一致重新检查(Dean Rasheed)§

在 READ COMMITTED 模式下,一个更新如果发现其目标行刚被并发事务更新,将对更新后的行重新检查查询的 WHERE 条件。MERGE 未能确保在此重新检查期间使用其他连接表的正确行,可能导致关于新更新的行是否应再次被 MERGE 更新做出错误决策。

关联记录(1)

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

其他改进在继承的 UPDATE/DELETE/MERGE 中正确标识目标表,即使父表被约束排除

变更

在继承的 UPDATE/DELETE/MERGE 中正确标识目标表,即使父表被约束排除(Amit Langote,Tom Lane)§

如果最初指定的表被约束排除,但并非其所有继承后代都被排除,则第一个未被排除的后代会被标识为主目标表。这会导致触发与该表关联的语句级触发器,而不是本应触发的最初指定的表的触发器。在 v16 中,同样的疏忽还可能导致 “invalid perminfoindex 0 in RTE with relid NNNN” 错误。

关联记录(2)

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

BUG 修复修复 B-树标记/恢复处理 ScalarArrayOpExpr 子句时的边界情况

变更

修复 B-树标记/恢复处理 ScalarArrayOpExpr 子句时的边界情况(Peter Geoghegan)§

将索引扫描恢复到先前标记的位置时,如果扫描恰好前进到 ScalarArrayOpExpr(即 indexcol = ANY(ARRAY[]))子句的匹配末尾,代码可能会遗漏必要的设置步骤。这可能导致漏掉一些应当被获取的行。

关联记录(5)

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

BUG 修复修复 Memoize 执行中的查询内内存泄漏

变更

修复 Memoize 执行中的查询内内存泄漏(Orlov Aleksej,David Rowley)§

关联记录(2)

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

BUG 修复修复当集合返回函数反复返回零行时的查询内内存泄漏

变更

修复当集合返回函数反复返回零行时的查询内内存泄漏(Tom Lane)§

关联记录(5)

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

其他改进修复将 cursor_to_xmlschema() 应用于非数据返回 Portal 时的崩溃

变更

修复将 cursor_to_xmlschema() 应用于非数据返回 Portal 时的崩溃(Boyu Yang)§

关联记录(5)

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

其他改进将 pgrowlocks() 应用于分区表时,抛出预期的错误

变更

将 pgrowlocks() 应用于分区表时,抛出预期的错误(David Rowley)§

之前会抛出一个不切题的错误 “only heap AM is supported”。

关联记录(4)

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

其他改进在各种 SQL 函数中更妥善地处理无效索引

变更

在各种 SQL 函数中更妥善地处理无效索引(Noah Misch)§

如果将 pgstatindex()、pgstatginindex()、pgstathashindex() 或 pgstattuple() 应用于无效索引,现在会报告错误。如果将 brin_desummarize_range()、brin_summarize_new_values()、brin_summarize_range() 或 gin_clean_pending_list() 应用于无效索引,则除了报告一条调试级别的消息外不做任何操作。之前这些函数会尝试处理该索引,并可能根据失败的 CREATE INDEX 遗留的内容而以奇怪的方式失败。

关联记录(5)

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

BUG 修复修复 pg_stat_reset_single_table_counters() 使其对共享系统目录执行正确的操作

变更

修复 pg_stat_reset_single_table_counters() 使其对共享系统目录执行正确的操作(Masahiro Ikeda)§

之前重置不会生效。

其他改进避免在 to_tsvector() 处理长输入时过早的内存分配失败

变更

避免在 to_tsvector() 处理长输入时过早的内存分配失败(Tom Lane)§

关联记录(5)

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

BUG 修复修复 tsvectorrecv() 中构造的 tsvector 的过度分配

变更

修复 tsvectorrecv() 中构造的 tsvector 的过度分配(Denis Erokhin)§

如果传入的向量包含位置数据,二进制接收函数会在完成的 tsvector 中留下浪费的空间(大约等于位置数据的大小)。在极端情况下,这可能导致对于发出时在长度限制内的向量产生 “maximum total lexeme length exceeded” 失败。无论如何都可能导致磁盘空间浪费。

关联记录(5)

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

BUG 修复修复 gtsvector_picksplit() 中的不正确编码

变更

修复 gtsvector_picksplit() 中的不正确编码(Alexander Lakhin)§

这可能导致 tsvector 列上 GiST 索引的页面分裂决策不佳。

关联记录(4)

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

其他改进改进对损坏的 PGLZ 压缩数据的检查

变更

改进对损坏的 PGLZ 压缩数据的检查(Flavien Guedez)§

关联记录(3)

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

其他改进在 COPY FROM 中,当需要不支持的编码转换时干净地失败

变更

在 COPY FROM 中,当需要不支持的编码转换时干净地失败(Tom Lane)§

最近的重构意外地移除了预期的错误检查,导致显示 “cache lookup failed for function 0” 而非有用的错误消息。

关联记录(2)

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

BUG 修复避免在 EXPLAIN 中,当标记为由 EXPLAIN 显示的参数具有 NULL 启动时值时发生崩溃

变更

避免在 EXPLAIN 中,当标记为由 EXPLAIN 显示的参数具有 NULL 启动时值时发生崩溃(Xing Guo,Aleksander Alekseev,Tom Lane)§

没有内置参数符合此描述,但扩展可以定义此类参数。

关联记录(4)

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

其他改进确保在删除 ON COMMIT DROP 临时表时拥有快照

变更

确保在删除 ON COMMIT DROP 临时表时拥有快照(Tom Lane)§

这可以防止当临时表的某些目录条目的字段宽度足够大而需要 toast 时(例如非常复杂的 CHECK 条件)可能出现的异常行为。

关联记录(5)

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

其他改进避免在 system() 刚刚 fork 的子进程中对关闭信号的不当响应

变更

避免在 system() 刚刚 fork 的子进程中对关闭信号的不当响应(Nathan Bossart)§

此修复避免了一个竞争条件:由 system() fork 出来但尚未 exec 目标子程序的子进程可能接收并处理原本发给父服务器进程的信号。这将导致重复的清理操作,后果不佳。

关联记录(5)

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

其他改进处理前端程序中 pg_control 的撕裂读取

变更

处理前端程序中 pg_control 的撕裂读取(Thomas Munro)§

在某些文件系统上,当服务器并发写入 pg_control 时,读取该文件可能不是原子操作。这可以通过无效的 CRC 来检测。现在在报告错误之前会重试几次以查看文件是否变为有效。

关联记录(4)

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

其他改进避免在相关 SQL 函数中对 pg_control 的撕裂读取

变更

避免在相关 SQL 函数中对 pg_control 的撕裂读取(Thomas Munro)§

在读取 pg_control 之前获取适当的锁,以确保获得该文件的一致视图。

关联记录(5)

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

BUG 修复避免计算后端活动字符串数组大小时的整数溢出

变更

避免计算后端活动字符串数组大小时的整数溢出(Jakub Wartak)§

在 64 位机器上,我们允许 track_activity_query_size 的值大到足以在乘以允许的连接数时导致 32 位溢出。然而,实际分配每个后端本地数组的代码对此不够谨慎,导致数组分配不正确。

关联记录(4)

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

BUG 修复修复在继承表上执行 ANALYZE 时短暂显示不一致的进度统计信息的问题

变更

修复在继承表上执行 ANALYZE 时短暂显示不一致的进度统计信息的问题(Heikki Linnakangas)§

块级别的计数器应在更新当前关系字段的同时重置为零。

关联记录(3)

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

BUG 修复修复后台写入器未将其 WAL 写入报告给统计计数器的问题

变更

修复后台写入器未将其 WAL 写入报告给统计计数器的问题(Nazir Bilal Yavuz)§

关联记录(2)

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

BUG 修复修复 pgstat_report_wal() 中关于强制刷新行为的混淆

变更

修复 pgstat_report_wal() 中关于强制刷新行为的混淆(Ryoga Yoshida,Michael Paquier)§

这可能导致在关闭时丢失某些关于 WAL I/O 的统计信息。

关联记录(1)

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

其他改进跟踪缓存的 CALL 语句的依赖关系,并在需要时重新规划

变更

跟踪缓存的 CALL 语句的依赖关系,并在需要时重新规划(Tom Lane)§

DDL 命令,例如替换已内联到 CALL 参数中的函数,可能需要重新规划已被 PL/pgSQL 缓存的 CALL。之前这不会发生,导致异常行为或诸如 “cache lookup failed” 之类的奇怪错误。

关联记录(5)

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

BUG 修复避免在 OpenSSL 连接设置出错后可能出现的释放空指针崩溃

变更

避免在 OpenSSL 连接设置出错后可能出现的释放空指针崩溃(Sergey Shinderuk)§

关联记录(1)

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

其他改进在检查来自外层查询级别的 RECORD 类型 Var 时正确跟踪嵌套深度

变更

在检查来自外层查询级别的 RECORD 类型 Var 时正确跟踪嵌套深度(Richard Guo)§

此疏忽可能导致断言失败、核心转储或 “bogus varno” 错误。

关联记录(5)

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

其他改进跟踪 ScalarArrayOpExpr 计划节点的 hash 函数和求反器函数依赖

变更

跟踪 ScalarArrayOpExpr 计划节点的 hash 函数和求反器函数依赖(David Rowley)§

在大多数情况下,此疏忽是无害的,因为这些函数不太可能在节点的原始操作符仍然存在的情况下消失。

关联记录(2)

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

BUG 修复修复 RECORD 类型缓存管理中的错误处理缺陷

变更

修复 RECORD 类型缓存管理中的错误处理缺陷(Thomas Munro)§

在恰好错误的时刻发生内存不足错误可能留下不一致的状态,导致无限循环。

关联记录(5)

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

BUG 修复修复在同一会话中出错后重试逻辑解码时的断言失败

变更

修复在同一会话中出错后重试逻辑解码时的断言失败(Hou Zhijie)§

关联记录(4)

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

其他改进在读取 WAL 时将内存不足失败视为致命错误

变更

在读取 WAL 时将内存不足失败视为致命错误(Michael Paquier)§

之前这会被视为无效数据条件,导致得出已到达 WAL 末尾的错误结论,这是不正确的,并可能导致不一致的 WAL 重放。

关联记录(4)

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

BUG 修复修复由于尝试基于伪造的 WAL 记录长度字段分配内存而可能导致的恢复失败

变更

修复由于尝试基于伪造的 WAL 记录长度字段分配内存而可能导致的恢复失败(Thomas Munro,Michael Paquier)§ §

关联记录(4)

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

BUG 修复修复删除数据库时可能导致自动清理启动器卡住的竞态条件

变更

修复删除数据库时可能导致自动清理启动器卡住的竞态条件(Andres Freund,Will Mortensen,Jacob Speidel)§

该竞态条件可能导致已删除数据库的统计条目仍然存在,从而干扰启动器对处理哪个数据库的选择。

BUG 修复修复逻辑磁带管理中的数据类型大小混淆

变更

修复逻辑磁带管理中的数据类型大小混淆(Ranier Vilela)§

在 long 类型宽于 int 类型的平台上可能发生整数溢出,但需要一个数 TB 大小的临时文件才能引发问题。

关联记录(2)

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

其他改进避免意外关闭 syslogger 进程的 stdin

变更

避免意外关闭 syslogger 进程的 stdin(Heikki Linnakangas)§

关联记录(2)

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

其他改进避免对在解析分析过程中不接受有意义处理的工具语句进行计划缓存重新验证

变更

避免对在解析分析过程中不接受有意义处理的工具语句进行计划缓存重新验证(Tom Lane)§

除了节省一些开销外,这还可以防止在缓存失效后对于不能设置快照的语句(如 SET TRANSACTION ISOLATION LEVEL)发生失败。

关联记录(4)

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

其他改进在使用期间将按引用传递的 attmissingval 值保存在长生命周期的上下文中

变更

在使用期间将按引用传递的 attmissingval 值保存在长生命周期的上下文中(Andrew Dunstan)§

这避免了当元组槽的生命周期超过用于构造其值的元组描述符时可能出现的悬挂指针使用。

关联记录(4)

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

其他改进在 ALTER ROLE 之后重新计算 search_path 的有效值

变更

在 ALTER ROLE 之后重新计算 search_path 的有效值(Jeff Davis)§ §

这确保在重命名角色后,特殊字符串 $user 的含义会被重新确定。

关联记录(4)

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

BUG 修复修复在 Windows 上当 min_dynamic_shared_memory 设置为大于零时出现的 “could not duplicate handle” 错误

变更

修复在 Windows 上当 min_dynamic_shared_memory 设置为大于零时出现的 “could not duplicate handle” 错误(Thomas Munro)§

关联记录(2)

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

BUG 修复修复 GenericXLogFinish 中的操作顺序

变更

修复 GenericXLogFinish 中的操作顺序(Jeff Davis)§

此代码在将更改的缓冲区标记为脏之前就写入了 WAL,违反了崩溃安全所需的条件。核心代码没有使用此函数,但扩展会使用(例如 contrib/bloom)。

关联记录(5)

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

其他改进移除 PL/Python 异常处理中的不正确断言

变更

移除 PL/Python 异常处理中的不正确断言(Alexander Lakhin)§

关联记录(5)

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

BUG 修复修复当 pg_dump 被要求导出 pg_catalog 模式时的断言失败

变更

修复当 pg_dump 被要求导出 pg_catalog 模式时的断言失败(Peter Eisentraut)§ §

BUG 修复修复 pg_restore,使选择性恢复能够同时包含所选表的表级和列级 ACL

变更

修复 pg_restore,使选择性恢复能够同时包含所选表的表级和列级 ACL(Euler Taveira,Tom Lane)§

之前,如果两种类型都存在,只会恢复表级 ACL。

关联记录(5)

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

其他改进在 pg_upgrade 中增加对 abstime、reltime 和 tinterval 数据类型使用的检查

变更

在 pg_upgrade 中增加对 abstime、reltime 和 tinterval 数据类型使用的检查(Álvaro Herrera)§ §

这些过时的数据类型已在 PostgreSQL 版本 12 中移除,因此在声称旧数据库可以升级之前,需要确保其中不存在这些类型。

关联记录(4)

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

其他改进避免在 pg_basebackup 中生成无效的临时槽名

变更

避免在 pg_basebackup 中生成无效的临时槽名(Jelte Fennema)§

这仅在服务器连接通过 pgbouncer 时被观察到。

关联记录(4)

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

其他改进避免在 Windows 上 pgbench 中出现虚假的 “too many client connections” 错误

变更

避免在 Windows 上 pgbench 中出现虚假的 “too many client connections” 错误(Noah Misch)§

关联记录(4)

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

其他改进在 contrib/amcheck 中,不将被中断的页面删除报告为损坏

变更

在 contrib/amcheck 中,不将被中断的页面删除报告为损坏(Noah Misch)§

此修复防止了 “the first child of leftmost target page is not leftmost of its level”、“block NNNN is not leftmost” 或 “left link/right link pair in index XXXX not in agreement” 的误报。这些误报出现在 amcheck 在未完成的 B-树索引页面删除之后且 VACUUM 清理之前运行时。

关联记录(5)

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

BUG 修复修复 contrib/btree_gin 在 interval 列上的索引在执行使用 < 或 <= 操作符的索引扫描时的失败

变更

修复 contrib/btree_gin 在 interval 列上的索引在执行使用 < 或 <= 操作符的索引扫描时的失败(Dean Rasheed)§

这样的索引扫描无法返回所有应返回的条目。

关联记录(5)

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

其他改进增加对 LLVM 16 和 17 的支持

变更

增加对 LLVM 16 和 17 的支持(Thomas Munro,Dmitry Dolgov)§ § §

关联记录(4)

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

其他改进消除在最新 macOS 上的各种编译时警告

变更

消除在最新 macOS 上的各种编译时警告(Tom Lane)§ §

Xcode 15(随 macOS Sonoma 发布)改变了链接器的行为方式,在构建 PostgreSQL 时导致许多重复库警告。这些警告是无害的,但很烦人,因此避免两次引用相同的库。同时移除了 -multiply_defined suppress 链接器选项的使用,该选项显然长期以来一直没有实际作用,而现在使用它会引发警告。

关联记录(5)

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

其他改进在构建 contrib/unaccent 的规则文件时,如果未指定 --with-python 且未设置 make 变量 PYTHON,则回退使用 python

变更

在构建 contrib/unaccent 的规则文件时,如果未指定 --with-python 且未设置 make 变量 PYTHON,则回退使用 python(Japin Li)§

关联记录(3)

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

其他改进从默认时区缩写列表中移除 PHOT(凤凰群岛时间)

变更

从默认时区缩写列表中移除 PHOT(凤凰群岛时间)(Tom Lane)§

此缩写在默认列表中的存在可能导致在最新的 Debian 和 Ubuntu 发行版上出现失败,因为它们不再默认安装底层的 tzdb 条目。由于这是一个为总人口约二十几人的区域编造的缩写,不太可能有人会需要它。如果确有需要,可以通过自定义缩写文件将其恢复。

关联记录(5)

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

这份对比如何生成?

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

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

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

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

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