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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 13.4 的版本变更

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

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

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

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

本次发布的全部变更

13.4

2021-08-12

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

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

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

修复重复应用投影步骤时产生错误计划的问题

6.513.4
CVE-2021-3449

更彻底地禁止 SSL 重新协商

CVE-2006-2313

在 psql 和其他客户端程序中,避免处理编码无效的数据时越过字符串末尾

—

PostgreSQL 13.4

升级与兼容性说明

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

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

安全相关修复重复应用投影步骤时产生错误计划的问题

变更

修复重复应用投影步骤时产生错误计划的问题(Tom Lane)§

当两个 ProjectionPath 相互叠加时,规划器可能生成错误的计划。已知唯一能触发这种情况的方式涉及并行排序操作,但也可能存在其他情形。其结果可能是崩溃或错误的查询结果,也可能泄露服务器内存内容。(CVE-2021-3677)

关联记录(2)

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

安全相关更彻底地禁止 SSL 重新协商

变更

更彻底地禁止 SSL 重新协商(Michael Paquier)§

虽然 SSL 重新协商已被禁用一段时间,但服务器仍会配合客户端发起的重新协商请求。恶意构造的重新协商请求可能导致服务器崩溃(参见 OpenSSL 问题 CVE-2021-3449)。在允许完全禁用此功能的 OpenSSL 版本(即 1.1.0h 及更新版本)上,将其彻底禁用。

关联记录(4)

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

其他改进在过程内部执行 COMMIT 或 ROLLBACK 后恢复 Portal 级快照

变更

在过程内部执行 COMMIT 或 ROLLBACK 后恢复 Portal 级快照(Tom Lane)§ § § § §

此项修改修复了紧接着 COMMIT/ROLLBACK 尝试获取经过 TOAST 处理的值时,出现 “no known snapshots” 或 “missing chunk number 0 for toast value” 等错误的情况。

某些扩展可能尝试在任何 Portal 之外执行 SQL 代码。它们有责任在执行前确保存在外层快照。以前,不提供快照可能行得通,也可能不行;现在则会始终以 “cannot execute SQL without an outer snapshot or portal” 错误失败。

关联记录(2)

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

其他改进避免持久化读取非稳定查询的游标输出时出现异常行为

变更

避免持久化读取非稳定查询的游标输出时出现异常行为(Tom Lane)§ §

以前,我们总会退回起点并重新读取整个查询结果,可能得到与先前执行不同的结果,从而给后续处理造成很大混乱。对于 NO SCROLL 游标,可以只存储查询输出中尚未读取的部分来修复此问题;由于 NO SCROLL 游标不能后退,这样就足够了。带 SCROLL 选项的游标仍存在风险,但文档早已说明,将此选项用于非稳定查询是不安全的。现在进一步加强这些文档警告。

另外,强制 PL/pgSQL 遍历查询结果的 FOR 循环所使用的隐式游标采用 NO SCROLL 模式,以避免在过程内部提交期间持久化这类游标时出现此类问题。

关联记录(2)

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

其他改进拒绝 SELECT ... GROUP BY GROUPING SETS (()) FOR UPDATE

变更

拒绝 SELECT ... GROUP BY GROUPING SETS (()) FOR UPDATE(Tom Lane)§

正如不允许将 FOR UPDATE 与普通 GROUP BY 一起使用一样,这种情况也应被禁止,但相关检查未能正确处理空分组集。最终结果会是执行器中的空指针解引用。

关联记录(4)

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

其他改进拒绝 WITH 中的查询被重写为仅包含 NOTIFY 的情况

变更

拒绝 WITH 中的查询被重写为仅包含 NOTIFY 的情况(Tom Lane)§

以前,这些情况会导致崩溃。

关联记录(4)

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

其他改进在 numeric 乘法中,如果结果的小数点后超过 16383 位,则对结果进行舍入,而不报错

变更

在 numeric 乘法中,如果结果的小数点后超过 16383 位,则对结果进行舍入,而不报错(Dean Rasheed)§

关联记录(4)

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

BUG 修复修复对 numeric 值计算极大次幂时的边界情况错误和精度损失

变更

修复对 numeric 值计算极大次幂时的边界情况错误和精度损失(Dean Rasheed)§ §

关联记录(4)

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

BUG 修复修复 to_char() 使用 EEEE 格式且输入的 numeric 值小于 10^(-1001) 时的除零错误

变更

修复 to_char() 使用 EEEE 格式且输入的 numeric 值小于 10^(-1001) 时的除零错误(Dean Rasheed)§

关联记录(4)

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

BUG 修复修复 pg_size_pretty(bigint),使其对负值的舍入与对正值的舍入方式一致(也与 numeric 版本一致)

变更

修复 pg_size_pretty(bigint),使其对负值的舍入与对正值的舍入方式一致(也与 numeric 版本一致)(Dean Rasheed,David Rowley)§ §

关联记录(4)

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

其他改进使 pg_filenode_relation(0, 0) 返回 NULL,而不报错

变更

使 pg_filenode_relation(0, 0) 返回 NULL,而不报错(Justin Pryzby)§

关联记录(4)

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

其他改进使 ALTER EXTENSION 在添加或移除成员对象时锁定扩展

变更

使 ALTER EXTENSION 在添加或移除成员对象时锁定扩展(Tom Lane)§

以前的代码允许 ALTER EXTENSION ADD/DROP 与 DROP EXTENSION 并发执行,导致崩溃或目录条目损坏。

关联记录(4)

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

BUG 修复修复 ALTER SUBSCRIPTION,使其拒绝空的槽名称

变更

修复 ALTER SUBSCRIPTION,使其拒绝空的槽名称(Japin Li)§

关联记录(3)

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

其他改进将分区表的触发器克隆到新分区时,确保复制其启用状态

变更

将分区表的触发器克隆到新分区时,确保复制其启用状态(Álvaro Herrera)§

关联记录(2)

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

其他改进避免为 REFRESH MATERIALIZED VIEW CONCURRENTLY 生成的查询中的别名冲突

变更

避免为 REFRESH MATERIALIZED VIEW CONCURRENTLY 生成的查询中的别名冲突(Tom Lane,Bharath Rupireddy)§ §

如果物化视图包含某些名称的列,尤其是 mv 和 newdata,此命令就会失败。

关联记录(4)

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

BUG 修复修复 PREPARE TRANSACTION,使其正确检查会话生命周期锁与事务生命周期锁之间的冲突

变更

修复 PREPARE TRANSACTION,使其正确检查会话生命周期锁与事务生命周期锁之间的冲突(Tom Lane)§

如果一个事务在同一个咨询锁 ID 值上同时持有会话生命周期锁和事务生命周期锁,就不能预备该事务。以前没有完整检查这一限制,可能导致 PREPARE TRANSACTION 期间发生 PANIC。

关联记录(4)

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

BUG 修复修复目标角色在 RLS 策略中被列出多次时 DROP OWNED BY 的异常行为

变更

修复目标角色在 RLS 策略中被列出多次时 DROP OWNED BY 的异常行为(Tom Lane)§

关联记录(4)

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

其他改进在 DROP OWNED BY 期间从 RLS 策略中移除角色时,跳过不必要的错误检查

变更

在 DROP OWNED BY 期间从 RLS 策略中移除角色时,跳过不必要的错误检查(Tom Lane)§

值得一提的是,这修复了某些必须是超级用户才能使用 DROP OWNED BY 的情况。

关联记录(4)

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

其他改进重新允许在 CREATE COLLATION 命令中使用旧式 Windows 区域设置名称

变更

重新允许在 CREATE COLLATION 命令中使用旧式 Windows 区域设置名称(Thomas Munro)§

以前,由于操作系统无法提供这些区域设置的版本信息,我们会报错。今后或许会决定要求提供版本信息,但目前尚无此规定,因此暂时重新允许这种情况。

其他改进禁止在 GENERATED 表达式中使用整行变量

变更

禁止在 GENERATED 表达式中使用整行变量(Tom Lane)§

使用整行变量显然违反了生成列不能依赖自身的规则,因此这些情况没有明确定义的行为。实际行为经常包括崩溃。

关联记录(1)

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

BUG 修复修复 GENERATED 表达式中 tableoid 的使用

变更

修复 GENERATED 表达式中 tableoid 的使用(Tom Lane)§

某些代码路径在计算 GENERATED 表达式时,未能为这个系统列提供有效值。

关联记录(1)

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

其他改进向外部表添加列时,不存储“快速默认值”

变更

向外部表添加列时,不存储“快速默认值”(Andrew Dunstan)§

由于此类表没有本地堆存储,快速默认值没有用途,却会干扰后续操作。除了阻止 ALTER TABLE 命令创建此类目录条目之外,还调整后续代码,使其能够应对错误存在的此类条目。

关联记录(2)

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

其他改进允许以事务方式更新索引状态标志

变更

允许以事务方式更新索引状态标志(Michael Paquier,Andrey Lepikhov)§ §

这可以避免处理实际上并非不可变的索引谓词时发生失败。虽然这种情况不被视为受支持的用法,但这里最初采用非事务更新的原因早已不复存在,因此不妨进行修改。

关联记录(4)

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

BUG 修复避免缓存计划中出现 CREATE DOMAIN 或 ALTER DOMAIN 时损坏计划缓存条目

变更

避免缓存计划中出现 CREATE DOMAIN 或 ALTER DOMAIN 时损坏计划缓存条目(Tom Lane)§

关联记录(4)

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

其他改进使 WAL 发送进程在 pg_stat_activity 中显示最新的复制命令

变更

使 WAL 发送进程在 pg_stat_activity 中显示最新的复制命令(Tom Lane)§

以前,WAL 发送进程会显示其最新的 SQL 命令,如果它此时正在执行复制操作,就会令人困惑。现在将复制协议命令与 SQL 命令同等显示。

关联记录(3)

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

其他改进当 postgresql.conf 中的相关条目被移除时,使 pg_settings.pending_restart 显示为 true

变更

当 postgresql.conf 中的相关条目被移除时,使 pg_settings.pending_restart 显示为 true(Álvaro Herrera)§

对于必须重启 postmaster 才能更改的条目,pending_restart 能正确显示条目已被修改的情况,却无法显示条目被完全移除的情况。

关联记录(4)

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

其他改进在 64 位 Windows 上,允许 work_mem 乘以 hash_mem_multiplier 的有效值超过 2GB

变更

在 64 位 Windows 上,允许 work_mem 乘以 hash_mem_multiplier 的有效值超过 2GB(Tom Lane)§

这使 hash_mem_multiplier 能够实现其预期用途,防止大型 hash 聚合溢写到磁盘,即使“大型”意味着数 GB。

BUG 修复修复涉及外部表的普通继承子表的查询所产生的错误计划

变更

修复涉及外部表的普通继承子表的查询所产生的错误计划(Amit Langote)§

在这些情况下,SELECT FOR UPDATE 及相关命令会因断言失败或 “could not find junk column” 错误而失败。

关联记录(1)

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

BUG 修复修复 FROM 项标记为 LATERAL 时,对 FROM 中函数的常量结果的上拉处理

变更

修复 FROM 项标记为 LATERAL 时,对 FROM 中函数的常量结果的上拉处理(Tom Lane)§

BUG 修复修复新备库在边界情况下无法跟随新主库的问题

变更

修复新备库在边界情况下无法跟随新主库的问题(Dilip Kumar,Robert Haas)§ § § § § §

在一组少见的条件组合下,备库可能最终尝试跟随错误的 WAL 时间线。

关联记录(4)

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

其他改进当事务中止记录的 WAL 重放导致文件截断时,更新最小恢复点

变更

当事务中止记录的 WAL 重放导致文件截断时,更新最小恢复点(Fujii Masao)§

文件截断是不可逆的,因此在早于该记录的位置停止恢复已不再安全。事务提交的对应情况多年前就已修复,但这一情况被遗漏了。

关联记录(4)

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

其他改进在复制槽失效后,正确推进最旧所需 WAL 段的边界

变更

在复制槽失效后,正确推进最旧所需 WAL 段的边界(Kyotaro Horiguchi)§ § § §

如果所有槽都失效,该边界就不会再移动,最终可能使服务器的 WAL 存储空间耗尽。

其他改进在 WAL 接收进程中,避免发生错误后尝试查找系统目录

变更

在 WAL 接收进程中,避免发生错误后尝试查找系统目录(Masahiko Sawada,Bharath Rupireddy)§

关联记录(3)

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

其他改进确保备库的启动进程在等待 WAL 到达时及时响应关闭信号

变更

确保备库的启动进程在等待 WAL 到达时及时响应关闭信号(Fujii Masao,Soumyadeep Chakraborty)§

关联记录(4)

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

其他改进在未能成为事务提交组成员后正确清除共享状态

变更

在未能成为事务提交组成员后正确清除共享状态(Amit Kapila)§

在特定时序下,当后续某个会话复用同一个 PGPROC 对象时,这可能导致断言失败。

关联记录(2)

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

其他改进增加锁定,避免其他进程并发写入时读取到错误的 relmapper 数据

变更

增加锁定,避免其他进程并发写入时读取到错误的 relmapper 数据(Heikki Linnakangas)§ §

关联记录(4)

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

其他改进改进并行构建 B-树索引时排序阶段的进度报告

变更

改进并行构建 B-树索引时排序阶段的进度报告(Matthias van de Meent)§

关联记录(1)

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

其他改进改进对违反复制协议的情况的检查

变更

改进对违反复制协议的情况的检查(Tom Lane)§

逻辑复制工作进程经常使用断言来检查可能由无效或乱序复制命令触发的情况。这似乎并不明智,因此将这些检查改为常规错误检查。

关联记录(3)

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

BUG 修复修复逻辑复制分区表更新时的多种崩溃情况

变更

修复逻辑复制分区表更新时的多种崩溃情况(Amit Langote,Tom Lane)§ §

BUG 修复修复逻辑复制工作进程触发分区表的 AFTER 触发器时可能发生的崩溃

变更

修复逻辑复制工作进程触发分区表的 AFTER 触发器时可能发生的崩溃(Tom Lane)§

BUG 修复修复多个逻辑复制工作进程尝试截断同一个表时的死锁

变更

修复多个逻辑复制工作进程尝试截断同一个表时的死锁(Peter Smith,Haiying Tang)§

关联记录(2)

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

BUG 修复修复对推测插入进行逻辑解码时的错误情况和内存泄漏

变更

修复对推测插入进行逻辑解码时的错误情况和内存泄漏(Dilip Kumar)§ §

关联记录(4)

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

BUG 修复修复逻辑复制输出中的内存泄漏

变更

修复逻辑复制输出中的内存泄漏(Amit Langote)§ §

其他改进避免出错后留下无效的记录类型 hash 表条目

变更

避免出错后留下无效的记录类型 hash 表条目(Sait Talha Nisanci)§

这可能导致后续崩溃或内存泄漏。

关联记录(2)

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

BUG 修复修复 CREATE TABLE ... AS EXECUTE 在某些错误情况下的计划缓存引用泄漏

变更

修复 CREATE TABLE ... AS EXECUTE 在某些错误情况下的计划缓存引用泄漏(Tom Lane)§

关联记录(4)

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

BUG 修复修复在并行工作进程之间共享元组描述符的代码中的竞争条件

变更

修复在并行工作进程之间共享元组描述符的代码中的竞争条件(Thomas Munro)§

在特定时序下,可能发生崩溃。

关联记录(2)

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

BUG 修复修复使已过时的复制槽失效与尝试删除或更新该槽并发进行时的竞争条件

变更

修复使已过时的复制槽失效与尝试删除或更新该槽并发进行时的竞争条件(Andres Freund,Álvaro Herrera)§

BUG 修复修复释放 BackgroundWorkerSlots 时可能出现的竞争条件

变更

修复释放 BackgroundWorkerSlots 时可能出现的竞争条件(Tom Lane)§

这可能不会修复 Intel 硬件上任何可观察到的缺陷,但内存排序规则较弱的机器可能存在问题。

关联记录(4)

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

BUG 修复修复排序代码中潜在的崩溃

变更

修复排序代码中潜在的崩溃(Ronan Dunklau)§ §

某个代码路径可能尝试释放空指针。在核心服务器使用排序的方式中,这种情况似乎无法触发,但扩展或许能够触发。

关联记录(4)

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

其他改进增强 B-树倒排列表分裂代码对损坏数据的防御能力

变更

增强 B-树倒排列表分裂代码对损坏数据的防御能力(Peter Geoghegan)§

如果尝试插入的项的 TID 与现有条目相同,则抛出错误,而不崩溃。虽然这种情况本不该发生,但已有报告称,当索引与其表不一致时会出现。

其他改进防止 SP-GiST 索引插入中的无限循环

变更

防止 SP-GiST 索引插入中的无限循环(Tom Lane)§

如果 INCLUDE 列占用的空间很大,使叶子索引元组无论如何都无法放入一页,text_ops 操作符类就会陷入无限循环,徒劳地尝试让该元组放得下。虽然 v11 之前的版本没有 INCLUDE 列,仍将这一防止循环的修复反向移植到这些版本,因为它似乎能有效防范操作符类中的缺陷。

关联记录(4)

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

其他改进确保 SP-GiST 索引插入可以被查询取消请求终止

变更

确保 SP-GiST 索引插入可以被查询取消请求终止(Tom Lane,Álvaro Herrera)§ §

关联记录(4)

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

BUG 修复修复未初始化变量的缺陷,该缺陷可能使 PL/pgSQL 表现得像 INTO 子句指定了 STRICT,即使实际并未指定

变更

修复未初始化变量的缺陷,该缺陷可能使 PL/pgSQL 表现得像 INTO 子句指定了 STRICT,即使实际并未指定(Tom Lane)§

关联记录(4)

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

其他改进不要因 libpq 打印函数中的内存不足而中止进程

变更

不要因 libpq 打印函数中的内存不足而中止进程(Tom Lane)§

关联记录(4)

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

其他改进在 ecpg 中,允许将 numeric 值 INT_MIN(通常为 -2147483648)转换为整数

变更

在 ecpg 中,允许将 numeric 值 INT_MIN(通常为 -2147483648)转换为整数(John Naylor)§

关联记录(4)

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

安全相关在 psql 和其他客户端程序中,避免处理编码无效的数据时越过字符串末尾

变更

在 psql 和其他客户端程序中,避免处理编码无效的数据时越过字符串末尾(Tom Lane)§

字符串末尾附近编码不正确的多字节字符,可能导致各种处理循环越过字符串末尾的 NUL。根据随后内存中的内容,其后果可能从没有可检测的问题到程序崩溃不等。这与 CVE-2006-2313 相似,不过这些具体情况似乎不会造成值得关注的安全后果。

关联记录(4)

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

BUG 修复修复 pg_dump,使其正确处理分区表上启用状态与父触发器不同的触发器

变更

修复 pg_dump,使其正确处理分区表上启用状态与父触发器不同的触发器(Justin Pryzby,Álvaro Herrera)§

关联记录(2)

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

其他改进避免对不同时区创建的归档文件运行 pg_restore 时出现 “invalid creation date in header” 警告

变更

避免对不同时区创建的归档文件运行 pg_restore 时出现 “invalid creation date in header” 警告(Tom Lane)§

关联记录(4)

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

其他改进使 pg_upgrade 沿用旧安装实例的 oldestXID 值

变更

使 pg_upgrade 沿用旧安装实例的 oldestXID 值(Bertrand Drouvot)§

以前,新安装实例的 oldestXID 会被设为一个很旧的值,通常足以强制立即进行防回卷自动清理。从性能角度看,这并不理想;更糟的是,使用较大 autovacuum_freeze_max_age 值的实例可能在升级后不久就遭遇意外的强制关闭。

关联记录(4)

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

其他改进扩展 pg_upgrade,使其检测应升级的扩展并发出警告

变更

扩展 pg_upgrade,使其检测应升级的扩展并发出警告(Bruce Momjian)§ §

现在会生成一个脚本文件,其中包含将扩展升级到新安装实例中默认版本所需的 ALTER EXTENSION UPDATE 命令。

关联记录(4)

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

其他改进避免 pg_receivewal 在压缩与非压缩 WAL 存储之间切换时出现问题

变更

避免 pg_receivewal 在压缩与非压缩 WAL 存储之间切换时出现问题(Michael Paquier)§ §

关联记录(3)

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

BUG 修复修复 contrib/postgres_fdw,使其能够有效地处理生成列

变更

修复 contrib/postgres_fdw,使其能够有效地处理生成列(Etsuro Fujita)§

只要外部表中的生成列对应远程表中的生成列,postgres_fdw 现在就能合理地处理生成列。IMPORT FOREIGN SCHEMA 现在默认会以这种方式导入生成列。

关联记录(1)

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

其他改进在 contrib/postgres_fdw 中,避免发生错误后尝试查找系统目录

变更

在 contrib/postgres_fdw 中,避免发生错误后尝试查找系统目录(Tom Lane)§

虽然这通常能正常工作,但并不十分安全,因为发生的错误可能已经使目录访问无法正常进行。这一修复的副作用是,关于数据转换错误的消息现在会提及查询中的表和列别名(如果使用了别名),而非底层外部表或列的真实名称。

关联记录(4)

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

其他改进改进隔离测试基础设施

变更

改进隔离测试基础设施(Tom Lane,Michael Paquier)§ § § § § § §

允许对隔离测试步骤添加注解,说明预期的完成顺序。这使原本存在竞争的测试用例也能获得稳定结果,无需再像以前那样使用长时间延迟来规避竞争条件(而且以前也并未完全成功)。允许使用不带引号的标识符作为隔离测试的会话或步骤名称(以前,所有此类名称都必须加双引号)。检测隔离测试中未使用的步骤并发出警告。改进隔离测试中查询结果的显示。移除 isolationtester 的“试运行”模式。消除 isolationtester 自身的内存泄漏。

关联记录(4)

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

性能改进减少强制破坏缓存测试的开销

变更

减少强制破坏缓存测试的开销(Tom Lane)§ §

关联记录(4)

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

BUG 修复修复 PL/Python 的回归测试,使其在 Python 3.10 下通过

变更

修复 PL/Python 的回归测试,使其在 Python 3.10 下通过(Honza Horak)§

关联记录(4)

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

其他改进使 printf("%s", NULL) 打印 (null),而不崩溃

变更

使 printf("%s", NULL) 打印 (null),而不崩溃(Tom Lane)§

这应该能提高服务器在边界情况下的稳健性,并使我们的 printf 实现与常见库保持一致。

关联记录(4)

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

BUG 修复修复时间点恢复停止在 ROLLBACK PREPARED 记录处时不正确的日志消息

变更

修复时间点恢复停止在 ROLLBACK PREPARED 记录处时不正确的日志消息(Simon Riggs)§

关联记录(4)

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

其他改进改进 ALTER TABLE 对关系种类错误的消息

变更

改进 ALTER TABLE 对关系种类错误的消息(Kyotaro Horiguchi)§

关联记录(2)

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

其他改进使涉及“非负”值的错误消息更清晰

变更

使涉及“非负”值的错误消息更清晰(Bharath Rupireddy)§

关联记录(4)

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

BUG 修复修复 configure,使其支持不再提供独立 libldap_r 库的 OpenLDAP 2.5

变更

修复 configure,使其支持不再提供独立 libldap_r 库的 OpenLDAP 2.5(Adrian Ho,Tom Lane)§ § § §

如果不存在 libldap_r 库,现在会静默假定 libldap 是线程安全的。

关联记录(4)

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

其他改进增加新的 make 目标 world-bin 和 install-world-bin

变更

增加新的 make 目标 world-bin 和 install-world-bin(Andrew Dunstan)§ §

它们分别与 world 和 install-world 相同,但不构建或安装文档。

关联记录(4)

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

BUG 修复修复 TAP 测试的 make 规则(prove_installcheck),使其在 PGXS 用法下正常工作

变更

修复 TAP 测试的 make 规则(prove_installcheck),使其在 PGXS 用法下正常工作(Andrew Dunstan)§

关联记录(4)

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

其他改进调整 JIT 代码,为即将到来的 LLVM API 变更做好准备

变更

调整 JIT 代码,为即将到来的 LLVM API 变更做好准备(Thomas Munro,Andres Freund)§

LLVM 13 引入了一项不兼容的 API 变更,会使我们以前的 JIT 编译器崩溃。

关联记录(2)

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

其他改进避免假定 GSSAPI 库返回的字符串以空字符结尾

变更

避免假定 GSSAPI 库返回的字符串以空字符结尾(Tom Lane)§

GSSAPI 规范提供字符串指针和长度。在实践中,字符串后的下一个字节似乎通常为零,因此我们以前的代码没有实际失败;但确实收到了 AddressSanitizer 报错的报告。

关联记录(4)

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

其他改进允许在 MSVC 上构建 GSSAPI 支持

变更

允许在 MSVC 上构建 GSSAPI 支持(Michael Paquier)§ § §

修复与现代 Kerberos 构建的各种不兼容问题。

关联记录(4)

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

其他改进在 MSVC 构建中,如果指定了 --with-pgport,则将其包含在 pg_config 报告的 configure 选项中

变更

在 MSVC 构建中,如果指定了 --with-pgport,则将其包含在 pg_config 报告的 configure 选项中(Andrew Dunstan)§ §

关联记录(4)

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

这份对比如何生成?

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

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

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

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

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