pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
文档版本对比
POSTGRESQL · VERSION COMPARE
本次发布的完整功能、修复与兼容性说明,以及它们在其他版本中的关联记录。
从起始版本之后,看到目标版本为止。大版本名称代表该系列首个正式版本。
收录 PostgreSQL 9.0 起的 17 个大版本、352 份发布说明;数据更新于 2026-09-26。
本次发布的全部变更
2026-02-26
18.3 受支持版本维护截止 2030-11-14
| CVE / 问题 | 严重程度 | 修复版本 |
|---|---|---|
| CVE-2026-2006 避免在对“经过 TOAST 处理”的数据应用 substring() 时误报无效编码 | 8.8 | 18.2 |
| CVE-2026-2007 修复针对 CVE-2026-2007 的修复中遗漏的问题 | 8.2 | 18.2 |
对于运行 18.X 的用户,不需要执行导出/恢复。
但是,如果你从早于 18.2 的版本升级,请参见第 E.4 节。
变更
修复在重放由较旧小版本生成的 WAL 多事务 ID 截断记录后发生失败的问题(Heikki Linnakangas)§
为兼容旧版本处理多事务 ID 回卷方式而编写的错误逻辑,会导致重放失败,并出现诸如 “could not access status of transaction” 之类的消息。一种典型场景是:最新小版本的备库正在消费来自较旧版本主库的 WAL。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在对“经过 TOAST 处理”的数据应用 substring() 时误报无效编码(Noah Misch)§ § §
针对 CVE-2026-2006 的修复过于激进,在原本合法的情况下也可能报出字符不完整错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复针对 CVE-2026-2007 的修复中遗漏的问题(Zsolt Parragi)§
如果因为输入包含的三字符组比初始估计更多而需要扩展 “bounds” 数组,generate_trgm_only 没有把修改后的数组指针返回给调用者。这会导致 strict_word_similarity() 及相关函数输出错误,极少数情况下还会崩溃。如果输入字符串在转换为小写后变长,就会触发这段错误代码。目前已知仅会在某些单字节编码配合 ICU 区域设置时发生这种情况。
变更
修复 json_strip_nulls() 和 jsonb_strip_nulls() 的波动性标记(Andrew Dunstan)§
这些函数一直被视为不可变,但在版本 18 的重构中却意外被标记为稳定。这会阻止它们被用于索引表达式,并可能导致查询中不必要的重复求值。该修复会纠正在新初始化的数据库集簇中的标记(包括通过 pg_upgrade 升级到 18.3 或更高版本的集簇)。但是,它无法帮助使用 18.0 到 18.2 创建的现有集簇。
如果这一错误影响到了你对这些函数的使用,建议对现有集簇执行手工目录更新。以超级用户身份在每个受影响的数据库中执行:
UPDATE pg_catalog.pg_proc SET provolatile = 'i' WHERE oid IN ('3261','3262');
同时也要更新 template0 和 template1,这样将来新建的数据库也会带有该修复。
变更
修复对 LATERAL UNION ALL 子查询输出可能将其置空的外连接集合的计算(Richard Guo)§
这一错误可能导致系统误以为某些 NOT NULL 测试没有必要,从而跳过这些测试,最终产生错误的查询结果。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免用户自定义约束与自动命名的 NOT NULL 约束发生名称冲突(Laurenz Albe)§
从版本 18 开始,NOT NULL 约束拥有完整的 pg_constraint 条目,因此需要名字。对未命名 NOT NULL 约束选择名称的逻辑,未能避免与同一 CREATE TABLE 语句中用户编写的其他约束发生冲突。
变更
修复 pg_stat_get_backend_wait_event() 和 pg_stat_get_backend_wait_event_type(),使其能够为辅助进程返回值(Heikki Linnakangas)§
此前,这些函数对辅助进程返回 NULL,但这与 pg_stat_activity 视图的行为不一致。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复在从 PL/pgSQL 函数返回其值时,将复合类型变量转换为域类型的问题(Tom Lane)§
如果该变量的值为 NULL,则会出现 “cache lookup failed for type 0” 错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/hstore 二进制输入函数中潜在的空指针解引用问题(Michael Paquier)§
hstore 的接收函数在输入包含重复键时会崩溃。由 PostgreSQL 生成的 hstore 值永远不会包含重复键,因此这一错误一直未被发现。恶意构造或损坏的数据都可能触发该崩溃。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
试试其他关键词,或。
对比以 PostgreSQL 发行说明为依据,汇总起始版本之后、目标版本及之前的变更,支持同一大版本内的小版本更新,以及跨大版本升级。跨大版本时,旧分支的维护记录只纳入到下一大版本首次发布之日,所有记录均不晚于目标版本的发布日期。大版本名称(如 18)指首个正式版本(18.0);测试版与开发快照会单独标注。
条目正文来自本站中文手册,版本清单、条目覆盖与提交依据逐一核对上游英文原文。每条变更保留完整说明与原文链接;分类用于辅助浏览,具体影响、适用条件与升级操作请阅读条目正文和各版本的升级说明。
同一修复可能回补到多个版本分支。对比会保守合并可确认相同的条目,并保留各分支完整说明;已知由起始版本包含的修复会排除。一条说明包含多个独立修复时,只有全部已包含才排除。大版本新功能不因与旧版补丁存在提交关联而合并,不能确认相同的条目继续保留。这是发行说明的累计差异,不能覆盖二进制程序之间的每一处代码变化。
CVE 独立依据 PostgreSQL 官方安全公告与漏洞记录计算:起始版本受影响、目标版本已修复或不受影响的漏洞才计入,按编号去重。目标版本仍受影响的漏洞另行提示;安全变更条数与 CVE 数量分别统计。
交互参考 pgversions.com 与 pgversionreport,内容来自 PostgreSQL 发行说明。更多历史资料见发行说明归档。