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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 13.3 的版本变更

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

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

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

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

本次发布的全部变更

13.3

2021-05-13

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

13.3 历史版本维护截止 2025-11-13

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

修复涉及连接的跨分区更新中 UPDATE ... RETURNING 输出可能计算不正确的问题

6.513.3
CVE-2021-32028

修复 INSERT ... ON CONFLICT ... UPDATE 目标列表中对 “junk” 列的错误处理

6.513.3
CVE-2021-32027

防止数组下标计算中的整数溢出

6.513.3

PostgreSQL 13.3

升级与兼容性说明

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

但是,如果是从早于 13.2 的版本升级,请参见第 E.22 节。

安全相关防止数组下标计算中的整数溢出

变更

防止数组下标计算中的整数溢出(Tom Lane)§

以前,当数组下界加上长度发生整数溢出时,数组代码不会报错。这会使数组中后面的项无法访问(因为它们的下标无法表示为整数),更重要的是还会干扰后续赋值操作。这可能造成内存覆盖,进而导致崩溃或非预期的数据修改。(CVE-2021-32027)

关联记录(4)

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

安全相关修复 INSERT ... ON CONFLICT ... UPDATE 目标列表中对 “junk” 列的错误处理

变更

修复 INSERT ... ON CONFLICT ... UPDATE 目标列表中对 “junk” 列的错误处理(Tom Lane)§

如果 UPDATE 列表包含任何多列子查询(它们除了产生正式结果外,还会产生 junk 列),UPDATE 路径最终会存储包含额外 junk 列值的元组。短期内这基本无害,但如果向表中添加新列,这些值就会变得可访问;如果它们与新增列的数据类型不匹配,就可能导致异常。

此外,在支持跨分区更新的版本中,由此类情况触发的跨分区更新存在相反的问题:junk 列被从目标列表中移除,通常会因多列子查询机制失效而立即崩溃。(CVE-2021-32028)

关联记录(4)

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

安全相关修复涉及连接的跨分区更新中 UPDATE ... RETURNING 输出可能计算不正确的问题

变更

修复涉及连接的跨分区更新中 UPDATE ... RETURNING 输出可能计算不正确的问题(Amit Langote,Etsuro Fujita)§ §

如果对分区表的 UPDATE 使某行被移动到另一个行类型在物理上不同的分区(例如,已删除列的集合不同),为该行计算 RETURNING 结果时可能报错或得到错误的结果。只有当 UPDATE 涉及将其他表连接到目标表时,才会出现此错误。(CVE-2021-32029)

关联记录(2)

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

BUG 修复修复分区表中约束可延迟属性的调整

变更

修复分区表中约束可延迟属性的调整(Álvaro Herrera)§

对分区表的外键约束执行 ALTER TABLE ... ALTER CONSTRAINT 时,未能调整叶子分区的约束和触发器上的 DEFERRABLE 或 INITIALLY DEFERRED 标记。这导致此类约束产生非预期的行为。更新到此版本后,可以执行新的 ALTER 命令设置所需属性,从而修复行为异常的分区表。

此项修改还禁止直接对叶子分区的约束执行这样的 ALTER。唯一受支持的情况是整个分区层次结构具有相同的约束属性,因此此类 ALTER 必须在分区根表上执行。

关联记录(2)

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

其他改进使用 ALTER TABLE ... INHERIT 附加子表时,要求子表中与父表生成列对应的列以相同方式生成

变更

使用 ALTER TABLE ... INHERIT 附加子表时,要求子表中与父表生成列对应的列以相同方式生成(Peter Eisentraut)§

关联记录(1)

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

其他改进禁止将标识列标记为可空

变更

禁止将标识列标记为可空(Vik Fearing)§

GENERATED ... AS IDENTITY 隐含 NOT NULL,因此不允许将其与显式的 NULL 指定结合使用。

关联记录(3)

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

其他改进允许 ALTER ROLE/DATABASE ... SET 设置 role、session_authorization 和 temp_buffers 参数

变更

允许 ALTER ROLE/DATABASE ... SET 设置 role、session_authorization 和 temp_buffers 参数(Tom Lane)§

以前,过于急切的有效性检查可能拒绝这些命令,即使相关值在之后实际使用时本可以正常工作。这使转储/重载和升级场景中出现了命令顺序方面的隐患。

关联记录(4)

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

其他改进确保 REINDEX CONCURRENTLY 保留为索引设置的统计目标

变更

确保 REINDEX CONCURRENTLY 保留为索引设置的统计目标(Michael Paquier)§ §

关联记录(1)

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

BUG 修复修复 COMMIT AND CHAIN,使其在当前事务存在有效保存点时正确工作

变更

修复 COMMIT AND CHAIN,使其在当前事务存在有效保存点时正确工作(Fujii Masao)§

关联记录(1)

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

BUG 修复修复 WITH RECURSIVE 处理中的列表操作缺陷

变更

修复 WITH RECURSIVE 处理中的列表操作缺陷(Michael Paquier,Tom Lane)§

足够深的 WITH 结构嵌套(至少七层)会触发核心转储,或错误地报告 WITH 嵌套有误。

BUG 修复修复将 COLLATE 表达式的结果强制转换为不支持排序规则的类型时的缺陷

变更

修复将 COLLATE 表达式的结果强制转换为不支持排序规则的类型时的缺陷(Tom Lane)§

这会生成一棵语法解析树,其中 COLLATE 看起来被应用于一个不支持排序规则的值。虽然这通常没有实际影响(因为 COLLATE 在运行时没有作用),但仍有可能构造出在转储/重载期间被拒绝的视图。

关联记录(4)

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

BUG 修复修复为 AFTER 触发器保存元组时的释放后使用缺陷

变更

修复为 AFTER 触发器保存元组时的释放后使用缺陷(Amit Langote)§

这在某些情况下可能导致崩溃。

关联记录(1)

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

其他改进禁止通过“快速路径”线协议消息调用窗口函数和过程

变更

禁止通过“快速路径”线协议消息调用窗口函数和过程(Tom Lane)§

这里只支持普通函数。虽然尝试调用聚合函数已经会失败,但调用窗口函数会导致崩溃,而调用过程只有在过程不进行事务控制时才能正常工作。

关联记录(4)

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

其他改进扩展 pg_identify_object_as_address(),使其支持事件触发器

变更

扩展 pg_identify_object_as_address(),使其支持事件触发器(Joel Jacobson)§ §

关联记录(4)

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

BUG 修复修复 to_char() 对负时间间隔使用罗马数字月份格式代码的处理

变更

修复 to_char() 对负时间间隔使用罗马数字月份格式代码的处理(Julien Rouhaud)§

以前,此类情况通常会导致崩溃。

关联记录(4)

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

其他改进检查 pg_import_system_collations() 的参数是否为有效的模式 OID

变更

检查 pg_import_system_collations() 的参数是否为有效的模式 OID(Tom Lane)§

关联记录(3)

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

BUG 修复修复解析 BRE 模式正则表达式中的 \{m,n\} 量词时使用未初始化值的问题

变更

修复解析 BRE 模式正则表达式中的 \{m,n\} 量词时使用未初始化值的问题(Tom Lane)§

此错误可能使量词表现为非贪婪模式,即表现得像完整正则表达式中的 {m,n}? 量词。

关联记录(4)

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

BUG 修复修复排序键涉及聚合函数或窗口函数的某些情况下出现的 “could not find pathkey item to sort” 规划器错误

变更

修复排序键涉及聚合函数或窗口函数的某些情况下出现的 “could not find pathkey item to sort” 规划器错误(James Coleman,Tom Lane)§

其他改进使用扩展统计信息估计分组数量时,不要忽略系统列

变更

使用扩展统计信息估计分组数量时,不要忽略系统列(Tomas Vondra)§

这会导致 SELECT ... GROUP BY a, b, ctid 等查询得到异常的估计值。

关联记录(3)

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

BUG 修复避免估计具有很长固定前缀的正则表达式的选择率时出现除零错误

变更

避免估计具有很长固定前缀的正则表达式的选择率时出现除零错误(Tom Lane)§

这通常会产生 NaN 选择率值,从而导致断言失败或规划器行为异常。

关联记录(4)

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

BUG 修复修复 BRIN 索引位图扫描中访问超出表末尾位置的错误

变更

修复 BRIN 索引位图扫描中访问超出表末尾位置的错误(Tomas Vondra)§

如果 BRIN 索引使用的页范围大小不是二的幂,在某些边界情况下,位图扫描可能尝试获取超出表实际末尾的页面,导致 “could not open file” 错误。

关联记录(4)

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

BUG 修复修复匹配元组很多时,GIN tsvector 索引搜索可能返回错误结果的问题

变更

修复匹配元组很多时,GIN tsvector 索引搜索可能返回错误结果的问题(Tom Lane)§

如果索引匹配项的数量足够多,导致存储它们的位图变为有损位图(阈值取决于 work_mem),代码就可能错误判断是否需要重新检查,从而返回实际上并不匹配查询的行。

BUG 修复修复 Windows 上 WAL 段回收的并发问题

变更

修复 Windows 上 WAL 段回收的并发问题(Michael Paquier)§

这撤销了一项会间歇性产生 “could not rename file ...: Permission denied” 日志消息的修改。虽然没有严重后果,但大量无用日志令人困扰。

其他改进避免从 WAL 恢复未提交的两阶段事务时发生不正确的时间线变更

变更

避免从 WAL 恢复未提交的两阶段事务时发生不正确的时间线变更(Soumyadeep Chakraborty,Jimmy Yih,Kevin Yeap)§

此错误可能使后续 WAL 记录在错误的时间线 ID 下写入,导致之后出现一致性问题,甚至完全无法重启服务器。

关联记录(3)

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

其他改进确保关闭备库的启动进程时释放锁

变更

确保关闭备库的启动进程时释放锁(Fujii Masao)§

在备库仍处于恢复状态时将其关闭,可能会留下某些仍被持有的锁。这会导致调试构建中的断言失败;尚不清楚在生产构建中是否可能造成严重后果。

关联记录(4)

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

BUG 修复修复逻辑复制工作进程执行 ALTER SUBSCRIPTION REFRESH 时的崩溃

变更

修复逻辑复制工作进程执行 ALTER SUBSCRIPTION REFRESH 时的崩溃(Peter Smith)§

核心代码不会这样做,但副本触发器可能会。

关联记录(3)

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

其他改进确保在较新版本的 FreeBSD 上默认使用 wal_sync_method = fdatasync

变更

确保在较新版本的 FreeBSD 上默认使用 wal_sync_method = fdatasync(Thomas Munro)§

FreeBSD 13 支持 open_datasync,通常它会成为默认选择。但尚不清楚这对 Postgres 是否确有改进,因此暂时保留现有默认值。

关联记录(4)

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

其他改进禁用 vacuum_cleanup_index_scale_factor 参数及存储选项

变更

禁用 vacuum_cleanup_index_scale_factor 参数及存储选项(Peter Geoghegan)§ §

事实证明,跟踪“过期”索引统计信息的做法与 autovacuum_vacuum_insert_threshold 参数配合不当,会导致不必要的全索引扫描,进而降低自动清理性能。后者的机制似乎更好,因此移除过期统计信息逻辑。控制该逻辑的参数 vacuum_cleanup_index_scale_factor 将在 v14 中完全移除。在 v13 中,为避免破坏现有配置文件,该参数仍然存在,但已不再产生任何作用。

关联记录(1)

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

BUG 修复在 ALTER CONSTRAINT 期间,将正确的触发器 OID 传递给对象修改后钩子

变更

在 ALTER CONSTRAINT 期间,将正确的触发器 OID 传递给对象修改后钩子(Álvaro Herrera)§

在 ALTER CONSTRAINT 期间更新触发器属性时,修改后钩子被告知正在更新触发器,但传入的却是约束的 OID,而非触发器的 OID。

关联记录(1)

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

其他改进确保分离 DSM 段期间被中断时仍能完成清理

变更

确保分离 DSM 段期间被中断时仍能完成清理(Thomas Munro)§

此错误可能导致并行查询后未能及时清理临时文件。

关联记录(4)

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

BUG 修复修复服务器中多种较小的内存泄漏

变更

修复服务器中多种较小的内存泄漏(Tom Lane,Andres Freund)§ § § § § § §

关联记录(4)

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

BUG 修复修复共享内存中 WAL 接收进程统计信息里的未初始化变量

变更

修复共享内存中 WAL 接收进程统计信息里的未初始化变量(Fujii Masao)§

此错误在大多数平台上无害,但在缺乏原子变量或自旋锁支持的平台上可能造成问题。

性能改进在编译时包含了 dtrace 支持但未启用时,降低 LWLock 操作中 dtrace 探针的开销

变更

在编译时包含了 dtrace 支持但未启用时,降低 LWLock 操作中 dtrace 探针的开销(Peter Eisentraut)§ §

BUG 修复修复 PL/pgSQL DO 块同时使用复合类型变量和事务控制时的失败

变更

修复 PL/pgSQL DO 块同时使用复合类型变量和事务控制时的失败(Tom Lane)§

以前,此类情况会导致关于元组描述符泄漏的错误。

关联记录(2)

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

BUG 修复防止 libpq 收到长度损坏的 ParameterDescription 消息时陷入无限循环

变更

防止 libpq 收到长度损坏的 ParameterDescription 消息时陷入无限循环(Tom Lane)§

关联记录(4)

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

其他改进当 initdb 打印如何启动服务器的说明时,使其在 Windows 上显示的 pg_ctl 路径使用反斜杠分隔符

变更

当 initdb 打印如何启动服务器的说明时,使其在 Windows 上显示的 pg_ctl 路径使用反斜杠分隔符(Nitin Jadhav)§

关联记录(3)

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

BUG 修复修复 psql,恢复 \connect service=something 以前的行为

变更

修复 psql,恢复 \connect service=something 以前的行为(Tom Lane)§

先前的一项缺陷修复导致环境变量(例如 PGPORT)在此情况下覆盖服务文件中的条目。现在恢复以前的行为,使优先级反过来。

关联记录(4)

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

BUG 修复修复 psql 的 ON_ERROR_ROLLBACK 功能,使其正确处理 COMMIT AND CHAIN 命令

变更

修复 psql 的 ON_ERROR_ROLLBACK 功能,使其正确处理 COMMIT AND CHAIN 命令(Arthur Nascimento)§

以前,这种情况会以 “savepoint "pg_psql_temporary_savepoint" does not exist” 错误失败。

关联记录(1)

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

其他改进在 psql 中,避免首次出现 “could not print result table” 错误后反复发生同类错误

变更

在 psql 中,避免首次出现 “could not print result table” 错误后反复发生同类错误(Álvaro Herrera)§

BUG 修复修复 psql 的 \e 及相关命令检测文件修改时的竞争条件

变更

修复 psql 的 \e 及相关命令检测文件修改时的竞争条件(Laurenz Albe)§

输入速度非常快的用户可能使代码基于文件时间戳对临时编辑文件是否更改的判断失准。

关联记录(4)

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

BUG 修复修复 pg_dump 对分区表中生成列的转储

变更

修复 pg_dump 对分区表中生成列的转储(Peter Eisentraut)§

上一个小版本引入的一项修复只应应用于传统继承表,不应应用于分区表。

关联记录(1)

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

BUG 修复修复 pg_restore 中遗漏的文件版本检查

变更

修复 pg_restore 中遗漏的文件版本检查(Tom Lane)§

从不支持定位的来源读取自定义格式归档时,pg_restore 忽略了检查归档版本。如果输入的归档版本比它所支持的版本更新,之后就会以混乱的方式失败。

关联记录(4)

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

其他改进为 pg_upgrade 增加对包含不可升级数据类型的用户表的检查

变更

为 pg_upgrade 增加对包含不可升级数据类型的用户表的检查(Tom Lane)§

修复对不可升级的数据类型嵌入容器类型(例如数组或范围)中的某些情况的检测。另外,如果用户表包含系统定义的复合类型的列,则不允许升级,因为这些类型的 OID 在不同版本之间并不稳定。

关联记录(4)

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

BUG 修复修复 pg_checksums 中不正确的进度报告计算

变更

修复 pg_checksums 中不正确的进度报告计算(Shinya Kato)§

关联记录(1)

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

BUG 修复修复 pg_waldump,使其在生成逐记录统计信息时正确统计 XACT 记录

变更

修复 pg_waldump,使其在生成逐记录统计信息时正确统计 XACT 记录(Kyotaro Horiguchi)§

关联记录(4)

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

BUG 修复修复 contrib/amcheck,使其不再因元组标志 HEAP_XMAX_LOCK_ONLY 和 HEAP_KEYS_UPDATED 同时设置而报错

变更

修复 contrib/amcheck,使其不再因元组标志 HEAP_XMAX_LOCK_ONLY 和 HEAP_KEYS_UPDATED 同时设置而报错(Julien Rouhaud)§

这是 SELECT FOR UPDATE 之后的一种有效状态。

关联记录(4)

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

其他改进调整 VPATH 构建规则,以支持较新版本的 Oracle Developer Studio 编译器

变更

调整 VPATH 构建规则,以支持较新版本的 Oracle Developer Studio 编译器(Noah Misch)§

关联记录(4)

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

BUG 修复修复 Solaris 上针对 Python 3 的 PL/Python 测试

变更

修复 Solaris 上针对 Python 3 的 PL/Python 测试(Noah Misch)§

关联记录(4)

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

这份对比如何生成?

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

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

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

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

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