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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 14.18 的版本变更

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

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

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

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

本次发布的全部变更

14.18

2025-05-08

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

14.18 受支持版本维护截止 2026-11-12

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

避免在检查声称为 GB18030 编码的无效编码字符串时发生单字节缓冲区越界读取

5.914.18

PostgreSQL 14.18

升级与兼容性说明

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

不过,如果你在分区表上有自引用外键约束,则可能需要重新创建这些约束,以确保它们得到正确实施。见下文第二条变更记录。

此外,如果你有任何 BRIN bloom 索引,建议在更新后对其重建索引。见下文第三条变更记录。

此外,如果是从早于 14.14 的版本升级,请参见第 E.11 节。

安全相关避免在检查声称为 GB18030 编码的无效编码字符串时发生单字节缓冲区越界读取

变更

避免在检查声称为 GB18030 编码的无效编码字符串时发生单字节缓冲区越界读取(Noah Misch,Andres Freund)§ §

虽然可能性不大,但如果不完整的多字节字符出现在内存末尾,可能会导致 SIGSEGV 崩溃。这在服务器和使用 libpq 的应用程序中都可能发生。(CVE-2025-4207)

关联记录(4)

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

其他改进正确处理分区表上的自引用外键

变更

正确处理分区表上的自引用外键(Álvaro Herrera)§

创建或附加分区时未能为外键约束创建所需的目录条目,如果该约束引用的表就是同一个分区表。这会导致该约束无法被完全执行。

要修复此问题,如果在约束创建之后曾创建或附加过分区,则应删除并重新创建分区表上的任何自引用外键。请注意,可能已经存在违反约束的行,在这种情况下重新创建约束会失败,你需要先修复这些行后再重试。

关联记录(4)

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

其他改进避免在 brin_bloom_union() 中合并压缩的 BRIN 摘要时丢失数据

变更

避免在 brin_bloom_union() 中合并压缩的 BRIN 摘要时丢失数据(Tomas Vondra)§

该代码未能考虑到解压缩结果与输入对象不完全相同的情况,这会导致未能将部分数据添加到合并后的摘要中,从而在索引搜索中遗漏行。

这个错误从引入 BRIN bloom 索引的 v14 就存在了,但当时这个代码路径很少被触及。在 v17 中由于并行索引构建现在使用了该代码,因此更容易被触发。

关联记录(3)

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

BUG 修复修复在 UPDATE、DELETE 和 MERGE 查询中使用对视图或函数的整行表引用(在 FROM 中)时出现的意外 “attribute has wrong type” 错误

变更

修复在 UPDATE、DELETE 和 MERGE 查询中使用对视图或函数的整行表引用(在 FROM 中)时出现的意外 “attribute has wrong type” 错误(Tom Lane)§ § §

关联记录(4)

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

其他改进防止当表具有域数据类型的 GENERATED 列且该域的约束不允许空值时 INSERT 命令失败的问题

变更

防止当表具有域数据类型的 GENERATED 列且该域的约束不允许空值时 INSERT 命令失败的问题(Jian He)§

即使生成表达式产生了完全正常的结果,仍会报告约束违反错误。

关联记录(3)

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

其他改进正确处理出现在附加到 INSERT/UPDATE/DELETE/MERGE 命令(该命令本身在 WITH 内部)的 WITH 子句中对外部 CTE 名称的引用

变更

正确处理出现在附加到 INSERT/UPDATE/DELETE/MERGE 命令(该命令本身在 WITH 内部)的 WITH 子句中对外部 CTE 名称的引用(Tom Lane)§

解析器未能检测到不允许的递归情况,也未能在将 CTE 排列为可用顺序时考虑此类引用。

关联记录(4)

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

BUG 修复修复 ARRAY(subquery) 和 ARRAY[expression, ...] 构造,使其在输入类型为 int2vector 或 oidvector 时产生合理的结果

变更

修复 ARRAY(subquery) 和 ARRAY[expression, ...] 构造,使其在输入类型为 int2vector 或 oidvector 时产生合理的结果(Tom Lane)§

此补丁恢复了 PostgreSQL 9.5 之前的行为:结果类型为 int2vector[] 或 oidvector[]。

关联记录(4)

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

BUG 修复修复解析 Ispell 字典时可能错误报告无效词缀的问题

变更

修复解析 Ispell 字典时可能错误报告无效词缀的问题(Jacob Brazeal)§

关联记录(4)

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

BUG 修复修复 ALTER TABLE ADD COLUMN 以正确处理具有默认值的域类型的情况

变更

修复 ALTER TABLE ADD COLUMN 以正确处理具有默认值的域类型的情况(Jian He,Tom Lane,Tender Wang)§ §

如果域类型具有默认值,在不带显式 DEFAULT 子句的情况下添加该类型的列,未能在现有行中安装域的默认值,而是将新列保留为空值。

关联记录(4)

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

其他改进改进对不允许的外键约束属性修改尝试的错误消息

变更

改进对不允许的外键约束属性修改尝试的错误消息(Álvaro Herrera)§

关联记录(4)

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

其他改进避免在重置标记为 ON COMMIT DELETE ROWS 的临时表的 relhassubclass 标志时出错

变更

避免在重置标记为 ON COMMIT DELETE ROWS 的临时表的 relhassubclass 标志时出错(Noah Misch)§

关联记录(4)

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

BUG 修复修复规划器在顶层表达式中无法识别多个可进行 hash 运算的 ScalarArrayOpExpr 子表达式的问题

变更

修复规划器在顶层表达式中无法识别多个可进行 hash 运算的 ScalarArrayOpExpr 子表达式的问题(David Geier)§

这导致了本可以用 hash 表处理的额外子表达式(即右侧全为常量的 IN、NOT IN 或 = ANY 子句)执行效率不必要地低下。

关联记录(3)

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

其他改进禁用位图堆扫描中的“跳过获取”优化

变更

禁用位图堆扫描中的“跳过获取”优化(Matthias van de Meent)§

事实证明,当并发 vacuum 将页面标记为全部可见时,此优化可能会返回死元组。

关联记录(4)

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

BUG 修复修复存在大量搜索键时 GIN 索引搜索启动的性能问题

变更

修复存在大量搜索键时 GIN 索引搜索启动的性能问题(Tom Lane,Vinod Sridharan)§ §

具有大量键的可索引子句(例如,jsonbcol ?| array[...] 包含数万个数组元素)启动时需要 O(N2) 的时间,并且在此期间也无法被取消。

关联记录(4)

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

其他改进检测 BRIN 索引操作符类中缺失的支持函数,并报告错误而不是崩溃

变更

检测 BRIN 索引操作符类中缺失的支持函数,并报告错误而不是崩溃(Álvaro Herrera)§

关联记录(4)

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

其他改进在等待 Append 计划节点的异步子计划时响应中断(如查询取消)

变更

在等待 Append 计划节点的异步子计划时响应中断(如查询取消)(Heikki Linnakangas)§

之前,在某个子计划就绪之前不会发生任何事情。

关联记录(3)

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

BUG 修复修复启动后立即处理 synchronous_standby_names 时的竞态条件

变更

修复启动后立即处理 synchronous_standby_names 时的竞态条件(Melnikov Maksim,Michael Paquier)§

在系统启动后的短暂时间内,即使 synchronous_standby_names 已启用,后端可能也不会等待同步提交。

关联记录(4)

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

BUG 修复修复 pg_strtof() 在空 endptr 时崩溃的问题

变更

修复 pg_strtof() 在空 endptr 时崩溃的问题(Alexander Lakhin,Tom Lane)§

关联记录(4)

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

BUG 修复避免在 Snowball 词干提取器遇到内存不足条件时崩溃

变更

避免在 Snowball 词干提取器遇到内存不足条件时崩溃(Maksim Korotkov)§

关联记录(5)

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

BUG 修复在归档恢复期间跳过 WAL 回收和预分配,以避免损坏从归档恢复的 WAL 文件

变更

在归档恢复期间跳过 WAL 回收和预分配,以避免损坏从归档恢复的 WAL 文件(Noah Misch,Arun Thirupathi)§ § § § § § §

此变更回移了 v15 时代的修复,当时被认为大致是修饰性的,但事实证明能防止后续修复引起的数据损坏。

关联记录(1)

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

其他改进防止在逻辑解码的“快进”模式中过度推进 catalog xmin

变更

防止在逻辑解码的“快进”模式中过度推进 catalog xmin(Zhijie Hou)§

这个错误可能导致已删除的目录条目被清理掉,即使 WAL 读取进程仍可能需要它们。

关联记录(4)

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

其他改进避免在不需要强锁的 DDL 操作影响正在进行逻辑复制的表时丢失数据

变更

避免在不需要强锁的 DDL 操作影响正在进行逻辑复制的表时丢失数据(Shlok Kyal,Hayato Kuroda)§ §

DDL 命令导致的目录变更未被反映到 WAL 解码进程中,使其可能使用过期的目录数据解码后续变更,很可能导致数据损坏。

关联记录(4)

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

其他改进避免在逻辑复制索引查找中重复创建快照

变更

避免在逻辑复制索引查找中重复创建快照(Heikki Linnakangas)§ §

关联记录(4)

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

BUG 修复修复快照构建中的断言失败

变更

修复快照构建中的断言失败(Masahiko Sawada)§

关联记录(1)

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

BUG 修复修复 gistFindCorrectParent() 中过于严格的断言

变更

修复 gistFindCorrectParent() 中过于严格的断言(Heikki Linnakangas)§

关联记录(4)

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

BUG 修复修复当主库重启时备库中罕见的断言失败

变更

修复当主库重启时备库中罕见的断言失败(Heikki Linnakangas)§

关联记录(3)

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

其他改进在 PL/pgSQL 中,避免当可滚动游标定义在简单 SELECT expression 查询上时出现 “unexpected plan node type” 错误

变更

在 PL/pgSQL 中,避免当可滚动游标定义在简单 SELECT expression 查询上时出现 “unexpected plan node type” 错误(Andrei Lepikhov)§

关联记录(4)

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

其他改进在 pg_dump 的 --clean 模式中不再尝试删除单个索引分区

变更

在 pg_dump 的 --clean 模式中不再尝试删除单个索引分区(Jian He)§

服务器会拒绝这样的 DROP 命令。这实际上没有什么影响,因为这些分区在后续对其父表或分区索引执行 DROP 时会被自动删除。但是,尝试删除时报告的错误会在以 --single-transaction 模式恢复时造成问题。

关联记录(4)

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

其他改进在 pg_dumpall 中,避免在 pg_auth_members 包含无效角色 OID 时生成无效的角色 GRANT 命令

变更

在 pg_dumpall 中,避免在 pg_auth_members 包含无效角色 OID 时生成无效的角色 GRANT 命令(Tom Lane)§

改为打印警告并跳过该条目。这能更好地处理在后端分支中因 GRANT 和 DROP ROLE 之间的竞态条件而导致的目录损坏。

关联记录(4)

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

BUG 修复在 pg_amcheck 和 pg_upgrade 中,使用正确的函数释放由 libpq 分配的内存

变更

在 pg_amcheck 和 pg_upgrade 中,使用正确的函数释放由 libpq 分配的内存(Michael Paquier,Ranier Vilela)§

这些疏忽可能导致在某些 Windows 构建配置下崩溃,例如调试版本的 libpq 被非调试版本的调用程序使用时。

关联记录(3)

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

其他改进允许通过查询取消来中断 contrib/dblink 查询

变更

允许通过查询取消来中断 contrib/dblink 查询(Noah Misch)§ §

此变更回迁了 v17 时代的修复。它防止了由于未能检测到死锁而导致的 CREATE DATABASE 和 DROP DATABASE 可能挂起的情况。

关联记录(3)

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

BUG 修复避免在 contrib/pageinspect 的 heap_page_items() 中因损坏的输入数据而崩溃

变更

避免在 contrib/pageinspect 的 heap_page_items() 中因损坏的输入数据而崩溃(Dmitry Kovalenko)§

关联记录(4)

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

其他改进防止 contrib/pg_freespacemap 的 pg_freespacemap() 中的断言失败

变更

防止 contrib/pg_freespacemap 的 pg_freespacemap() 中的断言失败(Tender Wang)§

对没有存储的关系(如视图)应用 pg_freespacemap() 会导致断言失败,尽管在非断言构建中没有不良影响。增加了错误检查以拒绝这种情况。

关联记录(4)

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

BUG 修复修复在 macOS 15.4 上的构建失败

变更

修复在 macOS 15.4 上的构建失败(Tom Lane,Peter Eisentraut)§

此 macOS 更新破坏了我们对 strchrnul() 的配置探测。

关联记录(4)

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

其他改进更新时区数据文件至 tzdata 2025b 版本,包含智利的夏令时法律变更以及伊朗的历史修正

变更

更新时区数据文件至 tzdata 2025b 版本,包含智利的夏令时法律变更以及伊朗的历史修正(Tom Lane)§

新增时区 America/Coyhaique 用于智利的 Aysén 大区,以反映其改为全年使用 UTC-03,从而与 America/Santiago 产生差异。

关联记录(4)

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

这份对比如何生成?

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

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

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

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

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