pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
文档版本对比
POSTGRESQL · VERSION COMPARE
本次发布的完整功能、修复与兼容性说明,以及它们在其他版本中的关联记录。
从起始版本之后,看到目标版本为止。大版本名称代表该系列首个正式版本。
收录 PostgreSQL 9.0 起的 17 个大版本、352 份发布说明;数据更新于 2026-09-26。
本次发布的全部变更
2024-11-14
16.5 受支持版本维护截止 2028-11-09
| CVE / 问题 | 严重程度 | 修复版本 |
|---|---|---|
| CVE-2024-10979 防止受信任的 PL/Perl 代码更改环境变量 | 8.8 | 16.5 |
| CVE-2024-10978 修复 SET SESSION AUTHORIZATION 与 SET ROLE 之间意外的交互 | 4.2 | 16.5 |
| CVE-2024-10976 确保当 RLS 应用于非顶级表引用时,缓存的执行计划被标记为依赖于调用角色 | 4.2 | 16.5 |
| CVE-2024-10977 使 libpq 丢弃在 SSL 或 GSS 协议协商期间收到的错误消息 | 3.1 | 16.5 |
对于运行 16.X 的用户,不需要执行导出/恢复。
不过,如果你曾经从一个引用另一分区表的分区表中分离过某个分区,并且之后没有删除该分区,那么你可能需要修复系统目录和/或数据损坏,详见下文第五条变更记录。
此外,如果你从早于 16.3 的版本升级,请参见第 E.13 节。
变更
确保当 RLS 应用于非顶级表引用时,缓存的执行计划被标记为依赖于调用角色(Nathan Bossart)§
如果查询中的 CTE、子查询、子链接、安全调用者视图或强制类型转换投影引用了具有行级安全策略的表,我们忽略了将结果执行计划标记为可能依赖于执行它的角色。这可能导致同一会话中后续的查询执行使用错误的执行计划,然后返回或隐藏本应被隐藏或返回的行。
PostgreSQL 项目感谢 Wolfgang Walther 报告此问题。(CVE-2024-10976)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
使 libpq 丢弃在 SSL 或 GSS 协议协商期间收到的错误消息(Jacob Champion)§
在加密协商完成之前收到的错误消息可能是由中间人注入的,而不是真正的服务器输出。报告该消息会带来各种安全隐患;例如,该消息可能伪造查询结果,粗心的用户可能会误以为是正确的输出。最好的方案似乎是丢弃这类数据,仅依赖 libpq 自身对连接失败的报告。
PostgreSQL 项目感谢 Jacob Champion 报告此问题。(CVE-2024-10977)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 SET SESSION AUTHORIZATION 与 SET ROLE 之间意外的交互(Tom Lane)§ §
SQL 标准要求 SET SESSION AUTHORIZATION 具有执行 SET ROLE NONE 的副作用。我们对此的实现有缺陷,导致两个设置之间产生了超出预期的交互。值得注意的是,回滚一个执行了 SET SESSION AUTHORIZATION 的事务会将 ROLE 恢复为 NONE,即使之前并非如此,因此有效用户 ID 现在可能与事务之前不同。在函数 SET 子句中临时设置 session_authorization 也有类似的效果。一个相关的错误是,如果并行工作进程检查 current_setting('role'),它会看到 none,即使它应该看到其他值。
PostgreSQL 项目感谢 Tom Lane 报告此问题。(CVE-2024-10978)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止受信任的 PL/Perl 代码更改环境变量(Andrew Dunstan,Noah Misch)§ § § § §
操纵进程环境变量(如 PATH)的能力会给攻击者提供执行任意代码的机会。因此,“受信任的” PL 不应提供这样的能力。为修复 plperl,将 %ENV 替换为一个绑定的 hash,该 hash 会拒绝任何修改尝试并发出警告。不受信任的 plperlu 保留更改环境的能力。
PostgreSQL 项目感谢 Coby Abrams 报告此问题。(CVE-2024-10979)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复在附加或分离表分区时外键约束的目录状态更新(Jehan-Guillaume de Rorthais,Tender Wang,Álvaro Herrera)§ §
如果被引用表是分区表,则独立的引用表与作为分区的引用表需要不同的目录条目。ATTACH/DETACH PARTITION 命令未能正确执行此转换。特别是在 DETACH 之后,现在独立的表将缺少外键强制触发器,这可能导致该表后来包含违反外键约束的行。随后的重新 ATTACH 也可能失败并产生令人意外的错误。
修复方法是对现在独立的表的每个有问题的约束执行 ALTER TABLE DROP CONSTRAINT,然后重新添加该约束。如果重新添加约束失败,说明已经有错误数据混入。需要手动恢复引用表和被引用表之间的一致性,然后重新添加约束。
以下查询可用于识别损坏的约束,并构造重建它们所需的命令:
SELECT conrelid::pg_catalog.regclass AS "constrained table",
conname AS constraint,
confrelid::pg_catalog.regclass AS "references",
pg_catalog.format('ALTER TABLE %s DROP CONSTRAINT %I;',
conrelid::pg_catalog.regclass, conname) AS "drop",
pg_catalog.format('ALTER TABLE %s ADD CONSTRAINT %I %s;',
conrelid::pg_catalog.regclass, conname,
pg_catalog.pg_get_constraintdef(oid)) AS "add"
FROM pg_catalog.pg_constraint c
WHERE contype = 'f' AND conparentid = 0 AND
(SELECT count(*) FROM pg_catalog.pg_constraint c2
WHERE c2.conparentid = c.oid) <>
((SELECT count(*) FROM pg_catalog.pg_inherits i
WHERE (i.inhparent = c.conrelid OR i.inhparent = c.confrelid) AND
EXISTS (SELECT 1 FROM pg_catalog.pg_partitioned_table
WHERE partrelid = i.inhparent)) +
CASE WHEN pg_catalog.pg_partition_root(conrelid) = confrelid THEN
(SELECT count(*) FROM pg_catalog.pg_partition_tree(confrelid)
WHERE level = 1)
ELSE 0 END);
由于一个或多个 ADD CONSTRAINT 步骤可能会失败,应将查询输出保存到文件中,然后尝试执行每个步骤。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在对分区表的查询与 DETACH CONCURRENTLY 及随后立即删除分区并发执行时,可能发生的崩溃和 “could not open relation” 错误(Álvaro Herrera,Kuntal Gosh)§ §
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复当 UNION ALL 成员查询的输出需要排序,且排序列为表达式时,可能出现的 “could not find pathkey item to sort” 错误(Andrei Lepikhov,Tom Lane)§
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复涉及将外连接下的子查询展平后又将外连接简化为普通连接时的性能回退(Tom Lane)§
v16 未能像之前版本那样良好地优化某些查询,原因是查询提升逻辑的过度简化。
变更
允许取消大型 hash 索引构建第二阶段的操作(Pavel Borisov)§
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 COPY ( 中的断言失败或令人困惑的错误消息,当 query) TO ...query 被 DO INSTEAD NOTIFY 规则重写时(Tender Wang,Tom Lane)§
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复当 json_objectagg() 调用包含 volatile 函数时的服务器崩溃(Amit Langote)§
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 JSON 对象构造函数中的键唯一性检查(Junwang Zhao,Tomas Vondra)§
在构建大于一千字节的对象时,可能会接受包含重复对象键的无效输入,或者错误地报告存在重复键。
变更
修复并行哈希连接中倾斜数据的检测(Thomas Munro)§
在对哈希连接的内侧进行重新分区(因为某个分区累积了过多元组)之后,我们会检查该分区的所有元组是否都进入了同一个子分区,这表明它们都具有相同的 hash 值,进一步重新分区无法改善情况。此检查在某些情况下出现故障,允许重复进行无效的重新分区,最终导致资源耗尽错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
禁止包含非 ASCII 字符的区域设置名称(Thomas Munro)§
这仅在 Windows 上是一个问题,因为其他平台不使用此类区域设置名称。它们存在问题是因为完全不清楚此类名称用什么编码表示(因为区域设置本身定义了要使用的编码)。在最近的 PostgreSQL 版本中,由于对此的混淆,可能会在 Windows 运行时库中发生中止。
遇到新错误消息的用户应该使用 Windows Locale Builder 创建一个具有纯 ASCII 名称的重复区域设置,或者考虑使用符合 BCP 47 的区域设置名称,如 tr-TR。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复提交可串行化事务时的竞态条件(Heikki Linnakangas)§
对最近提交的事务的错误处理可能导致断言失败或 “could not access status of transaction” 错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 COMMIT PREPARED 中导致产生孤立 2PC 文件的竞态条件(wuchengwen)§
并发的 PREPARE TRANSACTION 可能导致 COMMIT PREPARED 不删除已完成事务的磁盘上两阶段状态文件。虽然没有立即的不良影响,但随后的崩溃恢复可能因 “could not access status of transaction” 而失败,需要手动删除孤立文件才能恢复服务。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在 VACUUM FULL 期间跳过无效 toast 索引后发生无效内存访问(Tender Wang)§
在此代码路径中,跟踪尚待重建索引的列表未被正确更新,可能导致后续的断言失败或崩溃。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复“就地”目录更新可能丢失的问题(Noah Misch)§ § § § § § §
普通行更新会写入行的新版本以保留事务的回滚能力。然而,某些系统目录更新是有意设计为非事务性的,并通过对行的就地更新来完成。这些补丁修复了可能导致就地更新效果丢失的竞态条件。例如,可能会忘记已将 pg_class.relhasindex 设置为 true,从而阻止新索引的更新,进而导致索引损坏。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在恢复结束时重置系统目录缓存(Noah Misch)§
这可以防止因使用系统目录缓存中的陈旧数据,而导致原地系统目录更新丢失的情况。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在持有中断抑制时使用并行查询(Francesco Degrassi,Noah Misch,Tom Lane)§ §
这种情况在正常情况下不会发生,但可以通过测试场景达到,例如使用 SQL 语言函数作为 B-树支持函数(这对于生产使用来说太慢了)。如果确实发生,将导致无限期等待。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在处理 Bind 和 Execute 协议消息开始时,报告用于统计目的的活跃查询 ID(Sami Imseih)§
这使得扩展查询协议中更多的工作可以归属于正确的查询。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止在过度深层嵌套的 XML 输入中 libxml2 的栈溢出(Tom Lane,致谢 Nick Wellnhofer)§
使用 xmlXPathCtxtCompile() 而非 xmlXPathCompile(),因为后者在 2.13.4 之前的 libxml2 版本中未能保护自身免受递归到栈溢出的影响。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 XMLSERIALIZE(... INDENT) 结果中的一些空白问题(Jim Jones)§
修复对由空白分隔的节点未能缩进的问题,并确保不会添加尾随换行符。
变更
不要忽略正在处理带有谓词或表达式的索引的并发 REINDEX CONCURRENTLY(Michail Nikolaev)§
通常,REINDEX CONCURRENTLY 不需要等待其他表上的其他 REINDEX CONCURRENTLY 操作。但是,如果其他 REINDEX CONCURRENTLY 正在处理带有谓词或表达式的索引,则不应用此优化,因为这些表达式可能包含访问其他表的用户定义代码。粗心的编码造成了一个竞态条件,使得该规则未被统一应用,可能导致不一致的行为。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复存在名称冲突时 ORDER BY 列表的错误反解析(Tom Lane)§
如果 SELECT 中的 ORDER BY 项是一个裸标识符,解析器首先将其作为 SELECT 的输出列名查找,以兼容 SQL92。但是,ruleutils.c 期望 SQL99 的解释,即此类名称是输入列名。因此在(相当不建议的)情况下,当其他列在 SELECT 输出列表中被重命名以匹配 ORDER BY 中使用的输入列名时,可能会产生视图的不正确显示。通过在导出的视图文本中对此类名称添加表限定来修复。
变更
修复 EXPLAIN 中的 “failed to find plan for subquery/CTE” 错误(Richard Guo,Tom Lane)§ §
当试图打印子查询的 RECORD 类型输出的字段引用,而该子查询已从执行计划中完全优化掉时(至少在具有常量为假的 WHERE 条件时可能发生),就会出现这种情况。执行计划中不再有任何内容可以标识原始字段名,因此回退到对第 N 个记录列打印 f。(如果记录输出来自 NROW() 构造器,这实际上也是正确的做法。)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在更改生成列的类型时,禁止使用 USING 子句(Peter Eisentraut)§
生成列已经有一个指定列内容的表达式,因此包含 USING 没有意义。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 pg_cursors 视图中忽略尚未定义的 Portal(Tom Lane)§
用户定义的检查该视图的代码可能在新游标正在设置时被调用,如果发生这种情况,将导致空指针解引用。通过将该视图定义为排除未完全设置的游标来避免此问题。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 32 位机器上 pg_stat_io 视图的不正确输出(Bertrand Drouvot)§
stats_reset 时间戳列在此类硬件上包含垃圾值。
变更
防止 “trailing junk after numeric literal” 错误消息的编码错误(Karina Litskevich)§
我们不允许标识符直接出现在数字文本之后(两者之间必须有空白)。如果一个多字节字符紧跟在数字文本之后,关于它的语法错误消息只包含该字符的第一个字节,导致向客户端报告和 postmaster 日志文件中的编码问题。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在解码涉及插入列默认值的事务时出现 “unexpected table_index_fetch_tuple call during logical decoding” 错误(Takeshi Ideriha,Hou Zhijie)§ §
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
减少逻辑解码的内存消耗(Masahiko Sawada)§
使用较小的默认块大小来存储逻辑复制期间接收的元组数据。这减少了内存浪费,据报告在处理长时间运行的事务时内存浪费会很严重,甚至导致内存不足错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在逻辑复制应用工作进程中,确保在错误或应用工作进程关闭期间不推进源进度(Hayato Kuroda,Shveta Malik)§
这可以避免事务丢失的可能性,因为一旦源进度点被推进,源服务器就不会再次发送该数据。
变更
重新禁用无状态(TLSv1.2)会话票证的发送(Daniel Gustafsson)§
之前为防止发送有状态(TLSv1.3)会话票证所做的更改,意外地重新启用了无状态会话票证的发送。因此,虽然我们打算防止客户端认为支持 TLS 会话恢复,但某些客户端仍然这样认为了。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
允许在并行工作进程中调整 session_authorization 和 role 设置(Tom Lane)§
我们的代码打算允许可修改的服务器设置通过函数 SET 子句来设置,但在并行工作进程中不允许其他方式。这两个设置的 SET 子句却失败了。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复当 CALL 位于 PL/pgSQL 的 EXCEPTION 块中时,从 CALL 语句参数列表中调用的稳定函数的行为(Tom Lane)§
与我们之前季度发布中的类似修复一样,这种情况允许此类函数被传递错误的快照,导致它们看到自外部事务开始以来修改的行的过时值。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 PL/pgSQL 的 CALL 中边缘情况下的 “cache lookup failed for function” 错误(Tom Lane)§
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复我们的备用(非 OpenSSL)MD5 实现在大端硬件上的线程安全问题(Heikki Linnakangas)§
线程安全目前在服务器中不是问题,但对于 libpq 来说是个问题。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
以与其他整数值选项相同的方式解析 libpq 的 keepalives 连接选项(Yuto Sasaki)§
此处使用的代码拒绝选项值中的尾部空白,与其他情况不同。这在 ecpg 的使用中被证明是有问题的。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在 ecpglib 中使用 pnstrdup()(Jacob Champion)§
该函数在内存不足时会调用 exit(),这在库中是不可取的。调用代码已经正确地处理了分配失败。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 ecpglib 中解析不正确日期时间输入时的越界读取(Bruce Momjian,Pavel Nekrasov)§
有可能试图读取常量数组起始位置之前的位置。不过实际影响似乎很小。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 psql 中重复使用 \bind 时的内存泄漏(Michael Paquier)§
变更
避免在 psql 的 \watch 命令中指定小于 1ms 的间隔时挂起(Andrey Borodin,Michael Paquier)§
改为将其视为零间隔(执行之间不等待)。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_dump 对持久性与其所属表不同的标识序列的处理(Tom Lane)§
从 v15 开始,可以将标识序列设置为 LOGGED,而其所属表为 UNLOGGED,反之亦然。但是,pg_dump 用于重建这种情况的方法在二进制升级模式下失败,导致当存在此类序列时 pg_upgrade 失败。通过为 ADD/ALTER COLUMN GENERATED AS IDENTITY 引入新选项来修复,允许在创建时正确设置序列的持久性。请注意,这意味着从包含此类序列的数据库导出的转储只能加载到此小版本或更新版本的服务器中。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 pg_rewind 的调试输出中包含源时间线历史(Heikki Linnakangas)§
这本来就是设计意图,但由于编码错误,源历史总是打印为空。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免尝试在 vacuumdb 和并行 reindexdb 中重新索引临时表和索引(VaibhaveS,Michael Paquier,Fujii Masao,Nathan Bossart)§ § §
重新索引其他会话的临时表是不可能的,但在某些代码路径中缺少跳过它们的检查,导致了不必要的失败。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
允许在 contrib/pageinspect 和 contrib/pgstattuple 的相关函数中检查序列关系(Nathan Bossart,Ayush Vatsa)§ §
过去这是允许的,但在引入表的非默认访问方法时被破坏了。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 ARM64 平台上不正确的 LLVM 生成代码(Thomas Munro,Anthonin Bonnefoy)§
在 ARM 平台上使用 JIT 编译时,生成的代码无法支持超过 32 位的重定位距离,使得在大内存系统上不巧的代码放置可能导致服务器崩溃。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复一些假设进程启动时间(表示为 time_t)能够放入 long 值的地方(Max Johnson,Nathan Bossart)§
在 long 为 32 位的平台上(尤其是 Windows),此代码将在 2038 年后失败。大多数失败看起来只是外观问题,但值得注意的是 pg_ctl start 会挂起。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复在 Windows 上使用 Strawberry Perl 构建的问题(Andrew Dunstan)§
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
将时区数据文件更新为 tzdata 2024b 版本(Tom Lane)§ §
此 tzdata 版本将旧的 System-V 兼容性区域名称更改为与对应地理区域重复;例如 PST8PDT 现在是 America/Los_Angeles 的别名。主要可见后果是,对于标准化时区引入之前的时间戳,该区域被认为代表命名位置的本地平均太阳时。例如,在 PST8PDT 中,timestamptz 输入如 1801-01-01 00:00 之前会被渲染为 1801-01-01 00:00:00-08,但现在会被渲染为 1801-01-01 00:00:00-07:52:58。
另外,包含墨西哥、蒙古和葡萄牙的历史修正。值得注意的是,Asia/Choibalsan 现在是 Asia/Ulaanbaatar 的别名而非独立区域,主要是因为这些区域之间的差异被发现是基于不可靠的数据。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
试试其他关键词,或。
对比以 PostgreSQL 发行说明为依据,汇总起始版本之后、目标版本及之前的变更,支持同一大版本内的小版本更新,以及跨大版本升级。跨大版本时,旧分支的维护记录只纳入到下一大版本首次发布之日,所有记录均不晚于目标版本的发布日期。大版本名称(如 18)指首个正式版本(18.0);测试版与开发快照会单独标注。
条目正文来自本站中文手册,版本清单、条目覆盖与提交依据逐一核对上游英文原文。每条变更保留完整说明与原文链接;分类用于辅助浏览,具体影响、适用条件与升级操作请阅读条目正文和各版本的升级说明。
同一修复可能回补到多个版本分支。对比会保守合并可确认相同的条目,并保留各分支完整说明;已知由起始版本包含的修复会排除。一条说明包含多个独立修复时,只有全部已包含才排除。大版本新功能不因与旧版补丁存在提交关联而合并,不能确认相同的条目继续保留。这是发行说明的累计差异,不能覆盖二进制程序之间的每一处代码变化。
CVE 独立依据 PostgreSQL 官方安全公告与漏洞记录计算:起始版本受影响、目标版本已修复或不受影响的漏洞才计入,按编号去重。目标版本仍受影响的漏洞另行提示;安全变更条数与 CVE 数量分别统计。
交互参考 pgversions.com 与 pgversionreport,内容来自 PostgreSQL 发行说明。更多历史资料见发行说明归档。