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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 12.2 的版本变更

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

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

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

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

本次发布的全部变更

12.2

2020-02-13

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

12.2 历史版本维护截止 2024-11-21

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

如果用户能够读取查询中实际指定的表的相应列,则允许规划器对子表统计信息应用可能泄漏信息的测试

4.3
CVE-2020-1720

为 ALTER ... DEPENDS ON EXTENSION 补上缺失的权限检查

3.112.2

PostgreSQL 12.2

升级与兼容性说明

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

但是,如果有任何引用分区表的外键约束,请参阅下方关于该特性缺陷的两项记录。

安全相关为 ALTER ... DEPENDS ON EXTENSION 补上缺失的权限检查

变更

为 ALTER ... DEPENDS ON EXTENSION 补上缺失的权限检查(Álvaro Herrera)§

将对象标记为依赖某个扩展时,没有进行任何权限检查。这一疏漏使任何用户都可以将例程、触发器、物化视图或索引标记为可由任何有权删除该扩展的用户删除。现在要求调用用户拥有指定对象(因而有权删除它)。(CVE-2020-1720)

关联记录(3)

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

BUG 修复修复 TRUNCATE ... CASCADE,确保截断所有相关分区

变更

修复 TRUNCATE ... CASCADE,确保截断所有相关分区(Jehan-Guillaume de Rorthais)§

如果使用 CASCADE 选项截断分区表的一个分区,且另一个表通过外键引用该分区表,则另一个表也必须被截断。当引用表本身也是分区表时,遗漏了这一检查,可能使违反外键约束的行保留下来。

因此,如果分区表之间存在外键约束,且曾对被引用表执行过任何分区级 TRUNCATE,就应检查是否存在违反外键约束的行。最简单的方法是添加一个新的同样的外键约束(添加成功后,删除新约束或原约束)。不过,从锁定的角度看,这样做可能代价过高;在这种情况下,可以选择手动查询不匹配的行。

BUG 修复修复未能将外键约束附加到子分区的问题

变更

修复未能将外键约束附加到子分区的问题(Jehan-Guillaume de Rorthais)§

向多级分区表第一层以下的层级添加分区时,引用顶层分区表的外键约束未被克隆到新分区,可能导致之后违反约束。分离新分区后再重新附加,是修复此问题代价最低的方法。不过,如果需要修复的分区很多,添加一个新的同样的外键约束可能更合适。

BUG 修复修复对分区表或继承树进行并发更新时可能发生的崩溃

变更

修复对分区表或继承树进行并发更新时可能发生的崩溃(Tom Lane)§

其他改进确保在适当情况下,将分区表上的行触发器正确克隆到子分区

变更

确保在适当情况下,将分区表上的行触发器正确克隆到子分区(Álvaro Herrera)§

创建或附加分区时,可能遗漏用户定义的触发器(但不会遗漏外键或延迟唯一约束的触发器)。

关联记录(1)

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

BUG 修复修复逻辑复制订阅者代码,使其在适当情况下执行逐列 UPDATE 触发器

变更

修复逻辑复制订阅者代码,使其在适当情况下执行逐列 UPDATE 触发器(Peter Eisentraut)§

关联记录(2)

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

其他改进避免大事务必须溢写到许多独立临时文件时逻辑解码发生失败

变更

避免大事务必须溢写到许多独立临时文件时逻辑解码发生失败(Amit Khandekar)§ §

关联记录(5)

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

BUG 修复修复逻辑复制订阅者处理行更新时可能发生的崩溃或数据损坏

变更

修复逻辑复制订阅者处理行更新时可能发生的崩溃或数据损坏(Tom Lane,Tomas Vondra)§

只有当订阅者的表包含未从发布者复制、且数据类型按引用传递的列时,此缺陷才会导致可见问题。

关联记录(2)

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

BUG 修复修复对已订阅关系进行 DDL 变更后逻辑复制订阅者的崩溃

变更

修复对已订阅关系进行 DDL 变更后逻辑复制订阅者的崩溃(Jehan-Guillaume de Rorthais,Vignesh C)§

关联记录(2)

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

BUG 修复修复数据库崩溃并重启后逻辑复制发布者的失败

变更

修复数据库崩溃并重启后逻辑复制发布者的失败(Vignesh C)§

关联记录(5)

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

其他改进确保 pg_replication_slot_advance() 对物理复制槽的影响在重启后仍然保留

变更

确保 pg_replication_slot_advance() 对物理复制槽的影响在重启后仍然保留(Alexey Kondratov,Michael Paquier)§ §

关联记录(1)

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

其他改进提高使用 REPLICA IDENTITY FULL 的逻辑复制效率

变更

提高使用 REPLICA IDENTITY FULL 的逻辑复制效率(Konstantin Knizhnik)§

更新或删除操作中查找现有元组时,返回第一个匹配元组,而非最后一个。

关联记录(2)

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

BUG 修复修复基础备份,使其能够处理大于 INT32_MAX 的数据库 OID

变更

修复基础备份,使其能够处理大于 INT32_MAX 的数据库 OID(Peter Eisentraut)§

BUG 修复确保并行计划始终在正确的时机关闭

变更

确保并行计划始终在正确的时机关闭(Kyotaro Horiguchi)§

已知这一疏漏会使多批次并行哈希连接产生 “temporary file leak” 警告。

关联记录(1)

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

其他改进防止过早关闭位于 Limit 节点下方的 Gather 或 GatherMerge 计划节点

变更

防止过早关闭位于 Limit 节点下方的 Gather 或 GatherMerge 计划节点(Amit Kapila)§

这可以避免此类计划节点需要被扫描多次时发生失败,例如它位于嵌套循环内侧时。

关联记录(3)

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

其他改进提高多核 CPU 上并行哈希连接的效率

变更

提高多核 CPU 上并行哈希连接的效率(Gang Deng,Thomas Munro)§

关联记录(1)

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

BUG 修复避免没有空闲动态共享内存槽时并行 CREATE INDEX 发生崩溃

变更

避免没有空闲动态共享内存槽时并行 CREATE INDEX 发生崩溃(Thomas Munro)§ §

改为回退到非并行索引构建。

关联记录(1)

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

BUG 修复避免没有空闲动态共享内存槽时发生内存泄漏

变更

避免没有空闲动态共享内存槽时发生内存泄漏(Thomas Munro)§

关联记录(5)

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

其他改进在临时表上创建、删除或重建索引时,忽略 CONCURRENTLY 选项

变更

在临时表上创建、删除或重建索引时,忽略 CONCURRENTLY 选项(Michael Paquier,Heikki Linnakangas,Andres Freund)§

这可以避免临时表具有 ON COMMIT 动作时发生奇怪的失败。对临时表使用 CONCURRENTLY 本来就没有益处,因为其他会话无法访问该表,额外处理没有意义。

关联记录(5)

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

BUG 修复修复重置标记为 ON COMMIT DELETE ROWS 的临时表上的表达式索引时可能发生的失败

变更

修复重置标记为 ON COMMIT DELETE ROWS 的临时表上的表达式索引时可能发生的失败(Tom Lane)§

关联记录(5)

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

BUG 修复修复对 box、range 和 inet 数据类型执行 BRIN 索引操作时可能发生的崩溃

变更

修复对 box、range 和 inet 数据类型执行 BRIN 索引操作时可能发生的崩溃(Heikki Linnakangas)§

关联记录(4)

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

BUG 修复修复构建 GiST 索引时递归页面分裂期间的崩溃

变更

修复构建 GiST 索引时递归页面分裂期间的崩溃(Heikki Linnakangas)§ §

BUG 修复修复 GIN 索引中对已删除页面的处理

变更

修复 GIN 索引中对已删除页面的处理(Alexander Korotkov)§ § § §

避免可能发生的死锁、对已删除页面状态的不正确更新,以及无法遍历最近删除页面的问题。

关联记录(5)

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

BUG 修复修复多行 VALUES 列表中包含 SubPlan(子 SELECT)时可能发生的崩溃

变更

修复多行 VALUES 列表中包含 SubPlan(子 SELECT)时可能发生的崩溃(Tom Lane)§

关联记录(5)

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

BUG 修复修复 ALTER TABLE 的失败:GENERATED 表达式引用的列已在同一 ALTER 命令前面的操作中被添加或更改了类型

变更

修复 ALTER TABLE 的失败:GENERATED 表达式引用的列已在同一 ALTER 命令前面的操作中被添加或更改了类型(Tom Lane)§

BUG 修复修复元组转换期间未能为“缺失”属性插入默认值的问题

变更

修复元组转换期间未能为“缺失”属性插入默认值的问题(Vik Fearing,Andrew Gierth)§

当值来自通过 ALTER TABLE ADD COLUMN 添加、且具有常量默认值的列时,这可能导致它们被错误地读取为 NULL。

关联记录(1)

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

BUG 修复修复检查点进程中因打开可能已被删除的关系段而引发的罕见 panic

变更

修复检查点进程中因打开可能已被删除的关系段而引发的罕见 panic(Thomas Munro)§ §

BUG 修复修复 FileClose() 失败后发生的崩溃

变更

修复 FileClose() 失败后发生的崩溃(Noah Misch)§

只有启用 data_sync_retry 时才能观察到此问题,否则 FileClose() 失败会被报告为 PANIC。

关联记录(2)

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

BUG 修复修复对外部表上多个 AFTER ROW 触发器的处理

变更

修复对外部表上多个 AFTER ROW 触发器的处理(Etsuro Fujita)§

BUG 修复修复使用按引用传递的聚合转换状态时发生的罕见崩溃

变更

修复使用按引用传递的聚合转换状态时发生的罕见崩溃(Andres Freund,Teodor Sigaev)§

关联记录(5)

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

其他改进改进 to_date() 和 to_timestamp() 中的错误报告

变更

改进 to_date() 和 to_timestamp() 中的错误报告(Tom Lane,Álvaro Herrera)§ §

报告输入字符串中不正确的月份名或星期名时,可能在多字节字符中间截断输入,导致错误消息的编码不正确,并可能引发后续失败。现在改为在下一个空白处截断。

关联记录(5)

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

BUG 修复修复对公元前日期计算 EXTRACT(ISOYEAR FROM timestamp) 时结果相差一的问题

变更

修复对公元前日期计算 EXTRACT(ISOYEAR FROM timestamp) 时结果相差一的问题(Tom Lane)§

关联记录(5)

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

其他改进确保 char 类型的 <> 操作符将无法确定排序规则的错误如实报告,而非报告为 “cache lookup failed for collation 0”

变更

确保 char 类型的 <> 操作符将无法确定排序规则的错误如实报告,而非报告为 “cache lookup failed for collation 0”(Tom Lane)§

其他改进避免将 TID 扫描当作顺序扫描

变更

避免将 TID 扫描当作顺序扫描(Tatsuhito Kasahara)§ §

重构时的疏漏导致 TID 扫描(按 CTID 选择)在统计视图中被计为顺序扫描,并且像顺序扫描一样获取全表谓词锁。后一种行为可能在可串行化事务模式下导致不必要的串行化错误。

BUG 修复避免系统目录中存在自引用视图时 information_schema 视图发生栈溢出

变更

避免系统目录中存在自引用视图时 information_schema 视图发生栈溢出(Tom Lane)§

自引用视图无法正常工作,它总会导致无限递归。尝试执行视图时,我们已能正确处理这种情况,但在查询它是否可自动更新时却未能正确处理。

关联记录(5)

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

其他改进确保 WAL 发送进程进程在 pg_stat_activity 中的事务开始时间始终显示为 NULL

变更

确保 WAL 发送进程进程在 pg_stat_activity 中的事务开始时间始终显示为 NULL(Álvaro Herrera)§ §

以前,xact_start 列有时会显示进程启动时间。

关联记录(2)

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

性能改进提高内侧关系非常大时的哈希连接性能

变更

提高内侧关系非常大时的哈希连接性能(Thomas Munro)§

关联记录(5)

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

其他改进减少有许多活跃 WAL 发送进程进程时的自旋锁争用

变更

减少有许多活跃 WAL 发送进程进程时的自旋锁争用(Pierre Ducroquet)§

BUG 修复修复 EXPLAIN 输出中 “Subplans Removed” 字段的位置

变更

修复 EXPLAIN 输出中 “Subplans Removed” 字段的位置(Daniel Gustafsson,Tom Lane)§

在非文本输出格式中,此字段被输出到 “Plans” 子组内部,导致输出语法无效。现在按预期将其附加到父级 Append 或 MergeAppend 计划节点。这也会改变该字段在文本输出格式中的位置:如果同一计划节点附加了 InitPlan,“Subplans Removed” 现在会出现在它们之前。

关联记录(1)

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

BUG 修复修复 EXPLAIN 的 SETTINGS 选项,使其在非文本输出格式中输出空值

变更

修复 EXPLAIN 的 SETTINGS 选项,使其在非文本输出格式中输出空值(Tom Lane)§

在非文本输出格式中,请求的字段应当显示,即使其值为空或为零。

安全相关如果用户能够读取查询中实际指定的表的相应列,则允许规划器对子表统计信息应用可能泄漏信息的测试

变更

如果用户能够读取查询中实际指定的表的相应列,则允许规划器对子表统计信息应用可能泄漏信息的测试(Dilip Kumar,Amit Langote)§

此项修改修复了 CVE-2017-7484 的修复在分区表上引入的性能问题。那次安全修复禁止将可能泄露信息的操作符应用于当前用户无权直接读取的列的统计信息。然而,常见的做法是只在父分区表上授予权限,而不逐一在各个分区上授予权限。在这种情况下,用户可以通过父表读取该列,因此这一安全限制没有意义,只会让规划器的估计不必要地变差。

关联记录(1)

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

BUG 修复修复过度折叠与单行子查询的连接所导致的规划器错误

变更

修复过度折叠与单行子查询的连接所导致的规划器错误(Tom Lane)§

这一错误导致了 “failed to construct the join relation” 等错误。

BUG 修复修复尝试将 LIKE 或正则表达式模式匹配操作符与二进制兼容的索引操作符类匹配时出现的 “no = operator for opfamily NNNN” 规划器错误

变更

修复尝试将 LIKE 或正则表达式模式匹配操作符与二进制兼容的索引操作符类匹配时出现的 “no = operator for opfamily NNNN” 规划器错误(Tom Lane)§

BUG 修复修复为范围操作符 <@ 和 @> 计算选择率时在边界情况下发生的崩溃和估算错误

变更

修复为范围操作符 <@ 和 @> 计算选择率时在边界情况下发生的崩溃和估算错误(Michael Paquier,Andrey Borodin,Tom Lane)§

关联记录(5)

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

BUG 修复修复使用最常见值扩展统计信息时对 OR 子句的不正确估算

变更

修复使用最常见值扩展统计信息时对 OR 子句的不正确估算(Tomas Vondra)§ §

其他改进应用最常见值扩展统计信息时忽略系统列

变更

应用最常见值扩展统计信息时忽略系统列(Tomas Vondra)§

这可避免受影响查询发生 “negative bitmapset member not allowed” 规划器错误。

关联记录(2)

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

BUG 修复修复 BRIN 索引逻辑,使其支持假想 BRIN 索引

变更

修复 BRIN 索引逻辑,使其支持假想 BRIN 索引(Julien Rouhaud,Heikki Linnakangas)§

以前,如果“索引建议器”扩展尝试让规划器生成包含假想 BRIN 索引的计划,就会失败,因为 BRIN 代价估算代码始终尝试实际访问索引的元页面。现在会检查索引是否只是假想索引;如果是,则使用索引参数的默认假设。

关联记录(2)

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

其他改进改进对带条件 INSTEAD 规则的视图尝试使用自动更新时的错误报告

变更

改进对带条件 INSTEAD 规则的视图尝试使用自动更新时的错误报告(Dean Rasheed)§

这种用法从未得到支持,但以前只在执行时才抛出错误,因此它可能被规划器错误掩盖。

关联记录(5)

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

其他改进防止复合类型通过范围类型间接包含自身

变更

防止复合类型通过范围类型间接包含自身(Tom Lane,Julien Rouhaud)§ §

关联记录(5)

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

其他改进禁止返回 record 等伪类型的分区键表达式

变更

禁止返回 record 等伪类型的分区键表达式(Tom Lane)§

关联记录(2)

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

BUG 修复修复索引表达式使用禁止的类型时的错误报告

变更

修复索引表达式使用禁止的类型时的错误报告(Amit Langote)§

关联记录(5)

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

BUG 修复修复仅包含 VALUES 列表的视图的转储,使其能够处理视图输出列被重命名的情况

变更

修复仅包含 VALUES 列表的视图的转储,使其能够处理视图输出列被重命名的情况(Tom Lane)§

关联记录(5)

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

其他改进确保计算视图或规则的依赖关系时,将 XMLTABLE 结构中使用的数据类型和排序规则考虑在内

变更

确保计算视图或规则的依赖关系时,将 XMLTABLE 结构中使用的数据类型和排序规则考虑在内(Tom Lane)§

以前,如果某个类型未在视图中的其他地方被引用,删除该类型就可能破坏使用 XMLTABLE 的视图。此修复不会纠正现有视图已记录的依赖关系,仅对新建视图生效。

关联记录(2)

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

其他改进防止 RADIUS 认证参数被意外转换为小写或截断

变更

防止 RADIUS 认证参数被意外转换为小写或截断(Marcos David)§

pg_hba.conf 解析器错误地将这些字段当作 SQL 标识符,而它们通常并不是。

关联记录(2)

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

其他改进在发送 ReadyForQuery 之前向客户端传送收到的 NOTIFY 消息,而非在之后发送

变更

在发送 ReadyForQuery 之前向客户端传送收到的 NOTIFY 消息,而非在之后发送(Tom Lane)§

此更改确保,对于 libpq 以及行为类似的其他客户端库,当客户端认为事务已完成时,事务期间收到的所有通知都已可用。这在实际应用中可能没有影响(无论如何,应用都需要处理异步通知),但更便于编写行为可重现的测试用例。

关联记录(3)

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

BUG 修复修复使用 GSSAPI 加密时处理非阻塞 I/O 的缺陷

变更

修复使用 GSSAPI 加密时处理非阻塞 I/O 的缺陷(Tom Lane)§

这些错误可能导致数据丢失(通常会引发后续的通信协议违规错误),或造成“活锁”:发送进程在数据尚未全部发送时进入休眠。此外,libpq 未能为每个连接保存独立的加密状态,可能导致使用多个加密数据库连接的应用失败。

其他改进即使未编译 GSSAPI 代码,也允许 libpq 解析所有与 GSS 有关的连接参数

变更

即使未编译 GSSAPI 代码,也允许 libpq 解析所有与 GSS 有关的连接参数(Tom Lane)§

这使其行为与我们的 SSL 支持类似:我们早已认为始终接受所有相关参数是可取的,即使某个构建缺少相应特性,导致部分参数被忽略或受到限制。

关联记录(5)

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

BUG 修复修复 ecpg 的 PGTYPEStimestamp_fmt_asc() 函数对格式代码 %b 和 %B 的不正确处理

变更

修复 ecpg 的 PGTYPEStimestamp_fmt_asc() 函数对格式代码 %b 和 %B 的不正确处理(Tomas Vondra)§

由于索引偏差一的错误,这些代码会输出错误的月份名,或可能导致崩溃。

关联记录(5)

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

BUG 修复避免 ecpglib 中内存不足失败之后发生的崩溃

变更

避免 ecpglib 中内存不足失败之后发生的崩溃(Tom Lane)§

BUG 修复修复并行 pg_dump/pg_restore,使其更妥善地处理无法创建工作进程的情况

变更

修复并行 pg_dump/pg_restore,使其更妥善地处理无法创建工作进程的情况(Tom Lane)§

关联记录(5)

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

BUG 修复防止尝试通过信号终止并行 pg_dump/pg_restore 运行时可能发生的崩溃或卡死

变更

防止尝试通过信号终止并行 pg_dump/pg_restore 运行时可能发生的崩溃或卡死(Tom Lane)§

关联记录(5)

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

其他改进在 pg_upgrade 搜索表中不可升级的数据类型时,检查数组和范围的内部类型

变更

在 pg_upgrade 搜索表中不可升级的数据类型时,检查数组和范围的内部类型(Tom Lane)§

关联记录(5)

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

其他改进对 createuser 的 --connection-limit 选项进行更全面的语法检查

变更

对 createuser 的 --connection-limit 选项进行更全面的语法检查(Álvaro Herrera)§

关联记录(5)

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

其他改进在更多情况下处理 PL/pgSQL 复合类型变量所引用的具体类型发生变更的情况

变更

在更多情况下处理 PL/pgSQL 复合类型变量所引用的具体类型发生变更的情况(Ashutosh Sharma,Tom Lane)§

删除并重新创建 PL/pgSQL 变量所引用的复合类型,可能导致 “could not open relation with OID NNNN” 错误。

关联记录(1)

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

BUG 修复避免 postgres_fdw 尝试向远程服务器发送 UPDATE remote_tab SET (x,y) = (SELECT ...) 之类命令时发生崩溃

变更

避免 postgres_fdw 尝试向远程服务器发送 UPDATE remote_tab SET (x,y) = (SELECT ...) 之类命令时发生崩溃(Tom Lane)§

关联记录(3)

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

其他改进在 contrib/dict_int 中,拒绝小于一的 maxlen 设置

变更

在 contrib/dict_int 中,拒绝小于一的 maxlen 设置(Tomas Vondra)§

这可防止该参数设置不合理时可能发生的崩溃。

关联记录(5)

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

其他改进在 contrib/tablefunc 的 crosstab() 函数中禁止 NULL 类别值

变更

在 contrib/tablefunc 的 crosstab() 函数中禁止 NULL 类别值(Joe Conway)§

这种情况从未产生有用的结果,而且在某些平台上会导致崩溃。

关联记录(5)

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

BUG 修复修复 configure 对 OpenSSL 的 SSL_clear_options() 函数的探测,使其适用于 1.1.0 之前的 OpenSSL 版本

变更

修复 configure 对 OpenSSL 的 SSL_clear_options() 函数的探测,使其适用于 1.1.0 之前的 OpenSSL 版本(Michael Paquier,Daniel Gustafsson)§

使用旧版 OpenSSL 构建 PostgreSQL 时,此问题可能导致无法按预期设置 SSL 压缩选项。

关联记录(1)

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

其他改进将某些超时和统计跟踪 GUC 变量标记为 PGDLLIMPORT,以允许扩展在 Windows 上访问它们

变更

将某些超时和统计跟踪 GUC 变量标记为 PGDLLIMPORT,以允许扩展在 Windows 上访问它们(Pascal Legrand)§

这适用于 idle_in_transaction_session_timeout、lock_timeout、statement_timeout、track_activities、track_counts 和 track_functions。

关联记录(5)

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

BUG 修复避免 “slab” 内存上下文健全性检查中的内存泄漏

变更

避免 “slab” 内存上下文健全性检查中的内存泄漏(Tomas Vondra)§

这不会影响生产构建,因为它们通常不会启用内存上下文检查;但在调试构建中,这种泄漏可能相当严重。

关联记录(2)

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

BUG 修复修复 LWLock 统计机制报告重复统计条目的问题

变更

修复 LWLock 统计机制报告重复统计条目的问题(Fujii Masao)§

由于 hash 表键创建有误,LWLock 统计代码(默认不编译,需要使用 -DLWLOCK_STATS 编译)可能为同一个 LWLock 和后端进程报告多个条目。

关联记录(2)

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

BUG 修复修复导致 Windows 上进程间信号延迟传递的竞争条件

变更

修复导致 Windows 上进程间信号延迟传递的竞争条件(Amit Kapila)§

这使 NOTIFY 出现了可见的时序异常,也可能导致其他错误行为。

关联记录(5)

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

BUG 修复修复对 Windows 的 ReadFile() 函数在边界情况下返回的错误结果的处理

变更

修复对 Windows 的 ReadFile() 函数在边界情况下返回的错误结果的处理(Thomas Munro,Juan José Santamaría Flecha)§

据目前所知,这一疏漏只导致多余的日志消息,并未造成实际的查询错误行为。

其他改进在 Windows 上,发生 ERROR_ACCESS_DENIED 文件访问失败后重试几次

变更

在 Windows 上,发生 ERROR_ACCESS_DENIED 文件访问失败后重试几次(Alexander Lakhin,Tom Lane)§ §

这有助于处理目标文件已被标记为删除、但尚未实际消失,导致打开文件失败的情况。例如,pg_ctl 在探测 postmaster 是否已经关闭时,经常因此类错误而失败。

关联记录(5)

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

其他改进在 Windows 上,规避通过 pg_ctl 在 postmaster 停止后很快将其启动时(例如执行 pg_ctl restart),postmaster 日志文件出现的共享冲突

变更

在 Windows 上,规避通过 pg_ctl 在 postmaster 停止后很快将其启动时(例如执行 pg_ctl restart),postmaster 日志文件出现的共享冲突(Alexander Lakhin)§

这份对比如何生成?

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

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

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

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

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