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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 17.3 的版本变更

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

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

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

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

本次发布的全部变更

17.3

2025-02-13

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

17.3 受支持版本维护截止 2029-11-08

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

加强 PQescapeString 及相关函数对无效编码输入字符串的防护

8.117.3

PostgreSQL 17.3

升级与兼容性说明

对于运行 17.X 的用户,无需执行转储/恢复。

不过,如果你是从早于 17.1 的版本升级,请参见第 E.11 节。

安全相关加强 PQescapeString 及相关函数对无效编码输入字符串的防护

变更

加强 PQescapeString 及相关函数对无效编码输入字符串的防护(Andres Freund,Noah Misch)§ § § § § §

libpq 提供的数据引用函数现在会完全检查其输入的编码有效性。如果检测到无效字符,会尽可能报告错误。对于缺少错误返回机制的函数,输出字符串会被调整以确保服务器会报告无效编码,并且中间处理不会被恰好匹配单引号、反斜杠等的字节所欺骗。

此变更的目的是防范在使用这些函数对精心构造的输入进行引用时可能发生的 SQL 注入攻击。当结果字符串直接发送到 PostgreSQL 服务器时没有风险(服务器无论如何都会检查编码),但当它通过 psql 或其他客户端代码传递时存在风险。历史上此类代码未仔细审查编码,在许多情况下如果检测到此类问题也不清楚应该怎么做。

此修复仅在数据引用函数、服务器以及任何中间处理对所使用的字符编码达成一致时才有效。插入不可信输入到 SQL 命令中的应用程序应特别注意确保这一点。

不使用这些 libpq 函数而引用不可信输入的应用程序和驱动程序可能面临类似问题的风险。它们应首先确认数据在服务器期望的编码中是有效的。

PostgreSQL 项目感谢 Stephen Fewer 报告此问题。(CVE-2025-1094)

关联记录(4)

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

其他改进恢复对连接请求中出现的数据库名和用户名的自动截断

变更

恢复对连接请求中出现的数据库名和用户名的自动截断(Nathan Bossart)§

这撤销了 v17 中一项后来证明给部分用户带来麻烦的变更。过长名称本应以感知编码的方式截断,但目前先恢复为此前在 NAMEDATALEN-1 字节处盲目截断的行为。

其他改进将并行工作进程排除在连接权限检查和限制之外

变更

将并行工作进程排除在连接权限检查和限制之外(Tom Lane)§

启动并行工作进程时不再检查 datallowconn、rolcanlogin 和 ACL_CONNECT 权限,而是假定领导进程最初通过了类似检查就足够了。这避免了例如当领导进程以缺少登录权限的角色运行时,并行化查询出现意外失败的情况。同样,ReservedConnections、datconnlimit 和 rolconnlimit 限制仅对普通后端执行,且仅计算普通后端的数量来检查是否已达到限制。这些限制旨在防止普通后端过度占用进程槽位——而并行工作进程和其他特殊进程有自己的进程槽池和自己的限制检查。

关联记录(4)

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

其他改进从 LWLock 等待事件名称中移除 “Lock” 后缀

变更

从 LWLock 等待事件名称中移除 “Lock” 后缀(Bertrand Drouvot)§

重构意外导致 pg_stat_activity 视图显示的锁相关等待事件名称带上了 “Lock” 后缀,这除其他影响外,还破坏了它与 pg_wait_events 的连接。

BUG 修复修复带有 ScalarArrayOp(= ANY)条件的 B-树索引扫描可能无法返回所有匹配元组的问题

变更

修复带有 ScalarArrayOp(= ANY)条件的 B-树索引扫描可能无法返回所有匹配元组的问题(Peter Geoghegan)§

BUG 修复修复窗口聚合中可能重用过时结果的问题

变更

修复窗口聚合中可能重用过时结果的问题(David Rowley)§

具有“运行条件”优化和按引用传递结果类型的窗口聚合可能错误地返回上一个分区的结果,而不是执行新的计算。

关联记录(2)

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

其他改进保持 TransactionXmin 与 MyProc->xmin 同步

变更

保持 TransactionXmin 与 MyProc->xmin 同步(Heikki Linnakangas)§

此疏忽可能允许进程尝试访问已被清理掉的数据。一个已知的后果是出现临时性的 “could not access status of transaction” 错误。

关联记录(4)

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

BUG 修复修复可能导致无法将新插入的目录条目添加到目录缓存列表中的竞态条件

变更

修复可能导致无法将新插入的目录条目添加到目录缓存列表中的竞态条件(Heikki Linnakangas)§

例如,这可能导致在现有会话中无法使用新创建的函数。

关联记录(4)

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

BUG 修复防止在系统目录被并发更新时进行 vacuum 可能导致的目录损坏

变更

防止在系统目录被并发更新时进行 vacuum 可能导致的目录损坏(Noah Misch)§ §

关联记录(4)

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

BUG 修复修复关系截断失败时的数据损坏问题

变更

修复关系截断失败时的数据损坏问题(Thomas Munro)§ § §

执行关系截断所需的文件系统调用可能会失败,导致磁盘上留下不一致的状态(例如,实际上恢复了已删除的数据)。我们无法真正阻止这种情况,但可以通过将此类失败提升为 PANIC 来进行恢复,这样可以通过从 WAL 重放到尝试截断之前来恢复一致性。这并不是一个非常理想的行为,但由于此类失败足够罕见,因此似乎是一个可以接受的解决方案。

关联记录(4)

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

其他改进防止在关系截断期间启动检查点

变更

防止在关系截断期间启动检查点(Robert Haas)§

这避免了一种竞态条件,即修改后的文件可能在完成检查点之前未被 fsync,从而在操作系统崩溃后不久产生数据损坏的风险。

关联记录(4)

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

其他改进避免在 VACUUM 与更改该数据库所有者的 REASSIGN OWNED 并发运行时可能丢失 pg_database.datfrozenxid 更新

变更

避免在 VACUUM 与更改该数据库所有者的 REASSIGN OWNED 并发运行时可能丢失 pg_database.datfrozenxid 更新(Kirill Reshke)§

关联记录(4)

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

BUG 修复修复传递给 AFTER UPDATE 触发器的不正确 tg_updatedcols 值

变更

修复传递给 AFTER UPDATE 触发器的不正确 tg_updatedcols 值(Tom Lane)§

在某些情况下,tg_updatedcols 位图可能描述的是同一事务中较早命令更新的列集合,从而导致触发器做出错误的操作。

同时,防止由于制作过多 tg_updatedcols 位图副本而导致的内存膨胀。

关联记录(4)

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

BUG 修复修复具有自己引用分区表的外键约束的分区的分离操作

变更

修复具有自己引用分区表的外键约束的分区的分离操作(Amul Sul)§

通常情况下,外键定义在分区表的顶层;但如果外键定义在分区上并引用分区表,且该引用分区被分离,则相关的 pg_constraint 条目会被错误更新。这导致类似 “could not find ON INSERT check triggers of foreign key constraint” 的错误。

关联记录(2)

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

BUG 修复修复 pg_get_constraintdef 对域上的 NOT NULL 约束的支持

变更

修复 pg_get_constraintdef 对域上的 NOT NULL 约束的支持(Álvaro Herrera)§

BUG 修复修复 to_timestamp 的 FFn 格式代码的错误处理

变更

修复 to_timestamp 的 FFn 格式代码的错误处理(Tom Lane)§

紧接在 FFn 之前的整数格式代码会消耗所有可用数字,导致 FFn 没有剩余数字可用。

关联记录(4)

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

其他改进在反解析 SQL/JSON 查询函数中的 PASSING 子句时,确保在必要时对变量名加双引号

变更

在反解析 SQL/JSON 查询函数中的 PASSING 子句时,确保在必要时对变量名加双引号(Dean Rasheed)§

其他改进在反解析 XMLTABLE() 表达式时,确保必要时对 XML 命名空间名称进行双引号引用

变更

在反解析 XMLTABLE() 表达式时,确保必要时对 XML 命名空间名称进行双引号引用(Dean Rasheed)§

关联记录(4)

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

其他改进在 pg_hba_file_rules() 输出中包含 ldapscheme 选项

变更

在 pg_hba_file_rules() 输出中包含 ldapscheme 选项(Laurenz Albe)§ §

关联记录(4)

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

BUG 修复修复在输入列数据类型并不完全匹配时,对预排序 UNION 操作的规划

变更

修复在输入列数据类型并不完全匹配时,对预排序 UNION 操作的规划(David Rowley)§

这个错误可能导致使用错误的排序操作符对数据排序,后果从没有明显问题到 core dump 都有可能。

其他改进当列排序规则不一致时不合并 UNION 操作

变更

当列排序规则不一致时不合并 UNION 操作(Tom Lane)§

之前在判断是否可以安全地将 UNION 步骤合并为单个 N 路 UNION 操作时忽略了排序规则。在引入非确定性排序规则之前这可能是合理的,但现在不再如此,因为使用中的排序规则可以影响唯一性的定义。

关联记录(4)

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

其他改进防止在将位于外连接下方的子查询上拉后出现 “wrong varnullingrels” 规划器错误

变更

防止在将位于外连接下方的子查询上拉后出现 “wrong varnullingrels” 规划器错误(Tom Lane)§ §

关联记录(1)

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

其他改进在查找统计信息时忽略 nulling-relation 标记位

变更

在查找统计信息时忽略 nulling-relation 标记位(Richard Guo)§

此疏忽可能导致未能使用关于表达式的相关统计信息,或出现 “corrupt MVNDistinct entry” 错误。

关联记录(1)

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

BUG 修复修复分区剪枝步骤中遗漏的表达式处理

变更

修复分区剪枝步骤中遗漏的表达式处理(Tom Lane)§

此疏忽可能导致在访问分区表的查询中出现 “unrecognized node type” 错误以及其他可能的问题。

关联记录(4)

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

其他改进为 slotsync 工作进程提供独立的进程槽位

变更

为 slotsync 工作进程提供独立的进程槽位(Tom Lane、Hou Zhijie)§

在加入 slotsync 工作进程时忽略了这一点,结果它的进程槽位实际上是从供常规后端进程使用的池中占用的。如果常规后端进程数量逼近 max_connections,这可能导致该工作进程无法启动,或使后续本应按配置成功的连接请求失败。

其他改进允许 dshash 表增长超过 1GB

变更

允许 dshash 表增长超过 1GB(Matthias van de Meent)§

这避免了诸如 “invalid DSA memory alloc request size” 之类的错误。例如,在处理数百万个表的事务中可能会出现这种情况。

关联记录(4)

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

BUG 修复避免 bringetbitmap() 中可能的整数溢出

变更

避免 bringetbitmap() 中可能的整数溢出(James Hunter,Evgeniy Gorbanyov)§

由于结果仅用于统计目的,此错误的影响大多是修饰性的。

关联记录(4)

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

BUG 修复纠正 SLRU bank 编号的错误计算

变更

纠正 SLRU bank 编号的错误计算(Yura Sokolov)§

这个错误导致实际使用的 bank 数量少于预期,从而增加了争用,但没有造成功能性错误。

其他改进确保已设置的进程锁存器不会阻止 postmaster 注意到套接字事件

变更

确保已设置的进程锁存器不会阻止 postmaster 注意到套接字事件(Thomas Munro)§

在后端启动工作进程和工作进程退出的极重工作负载下,可能导致 postmaster 无法及时响应传入的客户端连接。

关联记录(1)

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

其他改进防止流复制备库在读取跨页的 WAL 记录时无限循环

变更

防止流复制备库在读取跨页的 WAL 记录时无限循环(Kyotaro Horiguchi,Alexander Kukushkin)§

当记录的后续部分位于需要从不同 WAL 源读取的页面上时会发生此问题。

关联记录(4)

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

BUG 修复修复在进程早期启动阶段 FATAL 错误被意外提升为 PANIC 的问题

变更

修复在进程早期启动阶段 FATAL 错误被意外提升为 PANIC 的问题(Noah Misch)§

这修复了一些不太可能发生的情况,这些情况会导致 “PANIC: proc_exit() called in child process”。

关联记录(4)

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

BUG 修复修复操作符族成员操作符或支持函数可能成为悬空引用的情况

变更

修复操作符族成员操作符或支持函数可能成为悬空引用的情况(Tom Lane)§ §

在某些情况下,数据类型可能在其 OID 引用仍然存在于 pg_amop 或 pg_amproc 中时被删除。虽然这不会立即造成问题,但尝试删除所属操作符族会失败,并且 pg_dump 在导出该操作符族时会产生错误的输出。此修复使操作符族/类的创建和修改添加必要的依赖条目,以便删除数据类型时也会删除任何依赖的操作符族元素。但这对已存在的有问题的操作符族没有帮助,因此还在 DROP OPERATOR FAMILY 中增加了一个应急措施,以防止在删除具有悬空成员的族时失败。

关联记录(4)

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

BUG 修复修复逻辑解码输出中的多个内存泄漏

变更

修复逻辑解码输出中的多个内存泄漏(Vignesh C,Masahiko Sawada,Boyu Yang)§ § §

关联记录(4)

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

BUG 修复修复更新 application_name 或 cluster_name 设置时的小型内存泄漏

变更

修复更新 application_name 或 cluster_name 设置时的小型内存泄漏(Tofig Aliev)§

关联记录(1)

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

BUG 修复避免后台进程尝试检查 synchronized_standby_slots 的新值时崩溃

变更

避免后台进程尝试检查 synchronized_standby_slots 的新值时崩溃(Álvaro Herrera)§

BUG 修复避免在测试 wal_skip_threshold 条件时的整数溢出

变更

避免在测试 wal_skip_threshold 条件时的整数溢出(Tom Lane)§

创建非常大的关系的事务可能会错误地决定通过将关系复制到 WAL 而非 fsync 来确保持久性,从而否定了 wal_skip_threshold 的意义。(这仅在 wal_level 设置为 minimal 时才有影响,否则无论如何都需要 WAL 复制。)

关联记录(4)

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

BUG 修复修复缓存查找期间不安全的操作顺序

变更

修复缓存查找期间不安全的操作顺序(Noah Misch)§

唯一已知的后果是在 GRANT TABLESPACE 期间出现通常无害的 “you don't own a lock of type ExclusiveLock” 警告。

关联记录(4)

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

其他改进避免并行清理中潜在的释放后使用问题

变更

避免并行清理中潜在的释放后使用问题(Vallimaharajan G、John Naylor)§

这个 bug 在标准构建中似乎不会造成后果,但理论上仍然存在风险。

BUG 修复修复在较旧 ARM 平台上使用 JIT 时可能出现的 “failed to resolve name” 失败

变更

修复在较旧 ARM 平台上使用 JIT 时可能出现的 “failed to resolve name” 失败(Thomas Munro)§

这可能是由于 gcc 和 clang 之间对 -moutline-atomics 默认设置不一致导致的。至少已知 Debian 和 Ubuntu 提供了针对 armv8-a 的 gcc 和 clang 编译器,但它们在默认使用 outline atomics 方面存在差异。

关联记录(4)

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

BUG 修复修复 WITH RECURSIVE ... UNION 查询中的断言失败

变更

修复 WITH RECURSIVE ... UNION 查询中的断言失败(David Rowley)§

关联记录(4)

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

其他改进避免在集合操作叶查询包含集合操作时规则反解析中的断言失败

变更

避免在集合操作叶查询包含集合操作时规则反解析中的断言失败(Man Zeng,Tom Lane)§

关联记录(4)

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

其他改进避免并行查询启动时的边界情况断言失败

变更

避免并行查询启动时的边界情况断言失败(Tom Lane)§

关联记录(4)

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

BUG 修复修复关闭时写出统计文件的断言失败

变更

修复关闭时写出统计文件的断言失败(Michael Paquier)§

关联记录(2)

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

其他改进避免 valgrind 对字符串 hash 代码发出告警

变更

避免 valgrind 对字符串 hash 代码发出告警(John Naylor)§

其他改进在 NULLIF() 中,避免将可读写的扩展对象指针传递给数据类型的等值函数

变更

在 NULLIF() 中,避免将可读写的扩展对象指针传递给数据类型的等值函数(Tom Lane)§

如果给定可读写指针,等值函数可能会修改或删除该对象,如果我们随后决定将其作为 NULLIF() 的结果返回,这将是有问题的。对于任何内置等值函数可能没有问题,但用 PL/pgSQL 编写的函数很容易展示出故障。

关联记录(4)

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

其他改进确保对 INSERT 中默认空值的表达式预处理被正确应用

变更

确保对 INSERT 中默认空值的表达式预处理被正确应用(Tom Lane)§

如果目标列是域类型,规划器必须插入一个强制转换到域的步骤而不仅仅是一个空常量,而此表达式遗漏了一些必要的处理步骤。对于基于核心数据类型的域没有已知后果,但理论上对于基于扩展类型的域可能会出错。

关联记录(3)

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

其他改进避免在已含有数据的关系 fork 上启动批量写入时发生数据丢失

变更

避免在已含有数据的关系 fork 上启动批量写入时发生数据丢失(Matthias van de Meent)§

任何已有数据都会被零值覆盖。核心 PostgreSQL 本身从不会这么做,因此不受影响;不过某些扩展可能希望这样做。

BUG 修复避免服务器进程试图遍历一个并非由自己创建的共享 radix tree 时崩溃

变更

避免服务器进程试图遍历一个并非由自己创建的共享 radix tree 时崩溃(Masahiko Sawada)§

核心 PostgreSQL 中没有任何代码会这样做,但扩展可能会有这种需求。

BUG 修复修复 PL/Python 中的内存泄漏

变更

修复 PL/Python 中的内存泄漏(Mat Arye,Tom Lane)§

重复使用 PLyPlan.execute 或 plpy.cursor 会导致在调用 PL/Python 函数的持续时间内产生内存泄漏。

关联记录(4)

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

BUG 修复修复 PL/Tcl 使其能在 Tcl 9 下编译

变更

修复 PL/Tcl 使其能在 Tcl 9 下编译(Peter Eisentraut)§

关联记录(4)

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

BUG 修复在 ecpg 预处理器中,修复引用超出作用域变量的游标可能被错误处理的问题

变更

在 ecpg 预处理器中,修复引用超出作用域变量的游标可能被错误处理的问题(Tom Lane)§

关联记录(4)

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

BUG 修复在 ecpg 中,修复关于不支持使用 COPY ... FROM STDIN 的编译时警告

变更

在 ecpg 中,修复关于不支持使用 COPY ... FROM STDIN 的编译时警告(Ryo Kanbayashi)§

之前,由于拼写错误,预期的警告未被发出。

关联记录(4)

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

BUG 修复修复 psql 以安全处理以 SJIS 编码的文件路径名

变更

修复 psql 以安全处理以 SJIS 编码的文件路径名(Tom Lane)§

SJIS 中的一些双字节字符的第二个字节等于 ASCII 反斜杠(\)。这些字符会被路径名规范化所损坏,导致无法访问名称中包含此类字符的文件。

关联记录(4)

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

其他改进为 psql 增加 COPY (MERGE INTO) 的 Tab 补全

变更

为 psql 增加 COPY (MERGE INTO) 的 Tab 补全(Jian He)§

BUG 修复修复 pgbench 和 psql 中使用错误版本的 pqsignal() 的问题

变更

修复 pgbench 和 psql 中使用错误版本的 pqsignal() 的问题(Fujii Masao,Tom Lane)§

此错误可能导致在 pgbench 中使用 -T 选项或在 psql 中使用 \watch 命令时出现异常行为,原因是被中断的系统调用未能按预期恢复。

关联记录(4)

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

BUG 修复修复 pgbench 中某些嵌套 \if 构造的错误执行

变更

修复 pgbench 中某些嵌套 \if 构造的错误执行(Michail Nikolaev)§

出现在为假(未执行)的 \if 分支中的 \if 命令被错误地当作 \elif 处理。

关联记录(4)

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

BUG 修复在 pgbench 中,修复表初始化期间进度消息可能显示错误的问题

变更

在 pgbench 中,修复表初始化期间进度消息可能显示错误的问题(Yushi Ogiwara,Tatsuo Ishii,Fujii Masao)§ §

关联记录(4)

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

其他改进增强 pg_controldata 对损坏的 pg_control 文件的健壮性

变更

增强 pg_controldata 对损坏的 pg_control 文件的健壮性(Ilyasov Ian,Anton Voloshin)§

由于 pg_controldata 即使在 CRC 检查失败时也会尝试打印 pg_control 的内容,因此必须注意不要因无效字段值而出现异常行为。此补丁修复了无效时间戳和看似为负数的 WAL 段大小触发的一些问题。

关联记录(4)

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

BUG 修复修复 pg_dump 中当身份序列附加到作为扩展成员的表时可能崩溃的问题

变更

修复 pg_dump 中当身份序列附加到作为扩展成员的表时可能崩溃的问题(Tom Lane)§

关联记录(4)

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

BUG 修复修复 pg_restore 处理 zstd 压缩数据时的内存泄漏

变更

修复 pg_restore 处理 zstd 压缩数据时的内存泄漏(Tom Lane)§

该泄漏是每次解压缩操作都会发生的,因此在包含许多表或大对象的导出中最为明显。

关联记录(1)

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

BUG 修复修复 pg_basebackup 以正确处理 Windows 上超过 2GB 的 pg_wal.tar 文件

变更

修复 pg_basebackup 以正确处理 Windows 上超过 2GB 的 pg_wal.tar 文件(Davinder Singh,Thomas Munro)§ §

关联记录(4)

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

其他改进在 contrib/earthdistance 的 SQL 语言函数声明中使用 SQL 标准函数体

变更

在 contrib/earthdistance 的 SQL 语言函数声明中使用 SQL 标准函数体(Tom Lane,Ronan Dunklau)§

此变更允许在扩展创建期间解析其对 contrib/cube 的引用,降低了基于搜索路径的失败和可能攻击的风险。

特别是,这恢复了它们在生成列等上下文中的可用性,PostgreSQL v17 出于安全原因限制了这些上下文中的搜索路径。我们收到了由于此原因导致数据库无法升级到 v17 的报告。此补丁包含在 v16 中以提供一个解决方案:事先将 earthdistance 扩展更新到此版本应该可以使升级成功。

关联记录(1)

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

其他改进检测 contrib/pageinspect 的 SQL 声明与底层共享库之间的版本不匹配

变更

检测 contrib/pageinspect 的 SQL 声明与底层共享库之间的版本不匹配(Tomas Vondra)§

此前,这种不匹配在调用 brin_page_items() 时可能导致崩溃。现在则会抛出一条建议更新扩展的错误消息。

其他改进在尝试取消 contrib/postgres_fdw 中的远程查询时,如果取消请求看起来没有生效,则会重发数次

变更

在尝试取消 contrib/postgres_fdw 中的远程查询时,如果取消请求看起来没有生效,则会重发数次(Tom Lane)§

这修复了一种竞争条件:我们可能在远程服务器尚未开始处理刚发出的查询前就尝试取消它,从而导致首次取消请求被忽略。

其他改进更新确定访问 ARM CRC 指令所需编译器开关的配置探测

变更

更新确定访问 ARM CRC 指令所需编译器开关的配置探测(Tom Lane)§

在基线 CPU 目标缺少 CRC 指令的 ARM 平台上,我们需要提供 -march 开关来说服编译器编译此类指令。较新版本的 gcc 会拒绝我们尝试使用的值,导致静默回退到软件 CRC。

关联记录(4)

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

BUG 修复修复 meson 构建系统,使其在 Windows 上支持旧版 OpenSSL 库

变更

修复 meson 构建系统,使其在 Windows 上支持旧版 OpenSSL 库(Darek Slusarczyk)§

新增对旧式库名 ssleay32 和 libeay32 的支持。

关联记录(1)

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

其他改进在使用 meson 的 Windows 构建中,确保所有 libcommon 和 libpgport 函数都被导出

变更

在使用 meson 的 Windows 构建中,确保所有 libcommon 和 libpgport 函数都被导出(Vladlen Popolitov,Heikki Linnakangas)§ §

这修复了扩展的 “unresolved external symbol” 构建错误。

关联记录(1)

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

BUG 修复修复 meson 配置过程,使其能够在 MSVC 下正确检测 OSSP 的 uuid.h 头文件

变更

修复 meson 配置过程,使其能够在 MSVC 下正确检测 OSSP 的 uuid.h 头文件(Andrew Dunstan)§

关联记录(1)

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

其他改进使用 meson 构建时,将 pgevent 安装到 pkglibdir 而不是 bindir

变更

使用 meson 构建时,将 pgevent 安装到 pkglibdir 而不是 bindir(Peter Eisentraut)§

这与基于 make 的构建系统和旧的 MSVC 构建系统的行为一致。

关联记录(1)

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

其他改进使用 meson 构建时,将 sepgsql.sql 安装到 share/contrib/ 而不是 share/extension/

变更

使用 meson 构建时,将 sepgsql.sql 安装到 share/contrib/ 而不是 share/extension/(Peter Eisentraut)§

这与基于 make 的构建系统的行为一致。

关联记录(1)

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

其他改进更新时区数据文件至 tzdata 2025a 版本,包含巴拉圭的夏令时法律变更以及菲律宾的历史修正

变更

更新时区数据文件至 tzdata 2025a 版本,包含巴拉圭的夏令时法律变更以及菲律宾的历史修正(Tom Lane)§

关联记录(4)

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

这份对比如何生成?

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

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

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

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

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