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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 13.2 的版本变更

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

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

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

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

本次发布的全部变更

13.2

2021-02-11

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

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

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

修复违反约束的错误消息中的信息泄漏

3.113.2
CVE-2021-20229

修复某些连接查询中未检查逐列 SELECT 权限的问题

3.113.2

PostgreSQL 13.2

升级与兼容性说明

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

但是,请参阅下方变更记录中的第一项,其中说明了可能需要更新已存储的视图。另外,也请参阅第三项和第四项,其中描述了升级后可能适合重建索引的情况。

安全相关修复某些连接查询中未检查逐列 SELECT 权限的问题

变更

修复某些连接查询中未检查逐列 SELECT 权限的问题(Tom Lane)§

在涉及连接的某些情况下,解析器未能将查询读取的所有列都记录到用于权限检查的列使用位图中。虽然执行器仍会要求某种 SELECT 权限才能运行查询,但这意味着,仅对表中一列拥有 SELECT 权限的用户,仍可以通过特意构造的查询读取该表的所有列。

受此问题影响的已存储视图会具有不完整的列使用位图,因此即使更新后,仍无法对该视图正确执行权限检查。在依靠列级权限保障安全的安装环境中,建议对所有用户定义的视图执行 CREATE OR REPLACE,使它们重新解析。

PostgreSQL 项目感谢 Sven Klemm 报告此问题。(CVE-2021-20229)

安全相关修复违反约束的错误消息中的信息泄漏

变更

修复违反约束的错误消息中的信息泄漏(Heikki Linnakangas)§

如果 UPDATE 命令尝试将某行移动到其他分区,却发现该行违反了新分区上的某个约束,并且该分区中列的物理位置与父表不同,那么错误消息可能泄露用户没有 SELECT 权限的列的内容。(CVE-2021-3393)

关联记录(2)

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

BUG 修复修复向 GiST 索引插入时对并发页面分裂的不正确检测

变更

修复向 GiST 索引插入时对并发页面分裂的不正确检测(Heikki Linnakangas)§

并发插入可能使条目被放到错误的页面中,导致索引损坏。建议重建所有经历过并发插入的 GiST 索引。

关联记录(1)

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

BUG 修复修复 CREATE INDEX CONCURRENTLY,使其等待并发的预备事务

变更

修复 CREATE INDEX CONCURRENTLY,使其等待并发的预备事务(Andrey Borodin)§

CREATE INDEX CONCURRENTLY 等待所有并发事务完成,以便看到它们插入的行时,也必须出于相同原因等待所有预备事务完成。未能这样做意味着,预备事务插入的行可能被遗漏在新索引之外,导致依赖该索引的查询找不到这些行。对于启用了预备事务(max_prepared_transactions > 0)的安装实例,建议重建所有并发构建的索引,以防其构建时发生过此问题。

关联记录(5)

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

BUG 修复避免尝试重新扫描同时具有 hash 分组集和排序分组集的聚合计划节点时发生崩溃

变更

避免尝试重新扫描同时具有 hash 分组集和排序分组集的聚合计划节点时发生崩溃(Jeff Davis)§ § §

BUG 修复修复 hash 聚合节点将部分元组溢写到磁盘时可能产生错误查询结果的问题

变更

修复 hash 聚合节点将部分元组溢写到磁盘时可能产生错误查询结果的问题(Tom Lane)§

重新读入元组时,聚合分组值可能被替换为空值,从而导致错误结果。

BUG 修复修复增量排序中的边界情况

变更

修复增量排序中的边界情况(Neil Chen)§

如果一个排序批次的最后一个元组恰好是下一组已排序元组中的第一个元组,代码就会处理错误。这可能导致 “retrieved too many tuples in a bounded sort” 错误消息,或悄然产生错误的排序结果。

BUG 修复避免通过扩展查询协议执行会回滚事务的 CALL 或 DO 语句时发生崩溃

变更

避免通过扩展查询协议执行会回滚事务的 CALL 或 DO 语句时发生崩溃(Thomas Munro,Tom Lane)§

在 PostgreSQL 13 中,这种情况必然导致空指针解引用。在更早的版本中,此缺陷似乎没有可见症状,但尚不能完全确定它绝不会造成问题。

关联记录(2)

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

其他改进避免分区表上的 BEFORE UPDATE 触发器产生不必要的错误

变更

避免分区表上的 BEFORE UPDATE 触发器产生不必要的错误(Álvaro Herrera)§

只要 BEFORE UPDATE FOR EACH ROW 触发器以任何方式修改了行,就会阻止 UPDATE 在需要时将该行移动到另一个分区;但这一限制已经没有必要。

BUG 修复修复分区剪枝逻辑,使其处理不对称的 hash 分区集合

变更

修复分区剪枝逻辑,使其处理不对称的 hash 分区集合(Tom Lane)§

如果 hash 分区表的分区大小不相等(即模数值不同),或缺少某些余数值对应的分区,规划器的剪枝逻辑就可能错误地认定某些分区无需扫描,导致查询无法找到本应找到的行。

关联记录(2)

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

其他改进避免将 WHERE CURRENT OF 应用于计划中包含 MergeAppend 节点的游标时产生错误结果

变更

避免将 WHERE CURRENT OF 应用于计划中包含 MergeAppend 节点的游标时产生错误结果(Tom Lane)§

这种情况不受支持(一般来说,不能保证使用 ORDER BY 的游标可以简单地用于更新);但以前的代码没有拒绝它,并可能悄然给出错误匹配。

关联记录(5)

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

BUG 修复修复将 WHERE CURRENT OF 应用于计划中包含自定义扫描节点的游标时的崩溃

变更

修复将 WHERE CURRENT OF 应用于计划中包含自定义扫描节点的游标时的崩溃(David Geier)§

关联记录(5)

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

BUG 修复修复规划器对求值应因外连接而延迟的占位符的错误处理

变更

修复规划器对求值应因外连接而延迟的占位符的错误处理(Tom Lane)§

这尤其会发生在包含对外连接输出的横向引用的简单子查询中。此错误可能产生格式错误的计划。已知情况会触发 “failed to assign all NestLoopParams to plan nodes” 错误,但也可能有其他症状。

关联记录(1)

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

BUG 修复修复规划器在移除无用 RESULT RTE 时对占位符的处理

变更

修复规划器在移除无用 RESULT RTE 时对占位符的处理(Tom Lane)§

这一疏漏可能导致 “no relation entry for relid N” 规划器错误。

关联记录(1)

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

BUG 修复修复规划器对在某个连接层级计算、且仅在同一层级使用的占位符的处理

变更

修复规划器对在某个连接层级计算、且仅在同一层级使用的占位符的处理(Tom Lane)§

这一疏漏可能导致 “failed to build any N-way joins” 规划器错误。

关联记录(5)

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

其他改进规划 Gather Merge 操作时考虑未排序的子路径

变更

规划 Gather Merge 操作时考虑未排序的子路径(James Coleman)§

可以通过增加显式 Sort 节点来使用此类路径,在某些情况下,这会产生更好的计划。

其他改进尝试并行化排序时,不考虑涉及并行受限函数或集合返回函数的 ORDER BY 表达式

变更

尝试并行化排序时,不考虑涉及并行受限函数或集合返回函数的 ORDER BY 表达式(James Coleman)§ §

这些情况无法安全地下推到工作进程,但增量排序特性意外地让我们考虑了它们。

其他改进更谨慎地判断索引访问方法是否支持标记/恢复

变更

更谨慎地判断索引访问方法是否支持标记/恢复(Andrew Gierth)§

这可以防止在罕见的边界情况下出现关于缺少支持函数的错误。

关联记录(5)

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

BUG 修复修复对并行查询所需共享内存量的高估

变更

修复对并行查询所需共享内存量的高估(Takayuki Tsunakawa)§

关联记录(2)

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

BUG 修复修复 ALTER DEFAULT PRIVILEGES,使其安全地处理重复参数

变更

修复 ALTER DEFAULT PRIVILEGES,使其安全地处理重复参数(Michael Paquier)§

同一命令中重复的角色名或模式名可能导致 “tuple already updated by self” 错误或违反唯一约束。

关联记录(5)

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

其他改进在 pg_authid 变更时清除 ACL 相关缓存

变更

在 pg_authid 变更时清除 ACL 相关缓存(Noah Misch)§

此项修改确保与权限相关的判断及时反映 ALTER ROLE ... [NO] INHERIT 的结果。

关联记录(5)

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

BUG 修复修复无法检测当前事务中重写的表上的 “snapshot too old” 情况的问题

变更

修复无法检测当前事务中重写的表上的 “snapshot too old” 情况的问题(Kyotaro Horiguchi,Noah Misch)§

只有当 wal_level 设为 minimal,且重写由 ALTER TABLE SET TABLESPACE 执行时,才存在这一隐患。

BUG 修复修复对当前事务中创建或重写的表执行 CREATE PUBLICATION 时不应发生的失败

变更

修复对当前事务中创建或重写的表执行 CREATE PUBLICATION 时不应发生的失败(Kyotaro Horiguchi)§

只有当 wal_level 设为 minimal 时,才存在这一隐患。

其他改进防止错误处理有歧义的 CREATE TABLE LIKE 子句

变更

防止错误处理有歧义的 CREATE TABLE LIKE 子句(Tom Lane)§

初步创建新表后,会重新检查 LIKE 子句,以处理索引等对象的导入。这次重新检查有可能找到另一个同名表,从而导致意外行为;例如,新表是一个与 LIKE 目标同名的临时表时就会如此。

关联记录(5)

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

其他改进调整 CREATE TABLE LIKE 中的操作顺序,在构建外键约束之前克隆索引

变更

调整 CREATE TABLE LIKE 中的操作顺序,在构建外键约束之前克隆索引(Tom Lane)§

这修复了外层 CREATE TABLE 中声明的自引用外键约束依赖于来自 LIKE 子句的索引的情况。

关联记录(5)

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

其他改进禁止对系统目录执行 CREATE STATISTICS

变更

禁止对系统目录执行 CREATE STATISTICS(Tomas Vondra)§

关联记录(3)

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

其他改进禁止将继承子表转换为视图

变更

禁止将继承子表转换为视图(Tom Lane)§

关联记录(5)

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

其他改进确保为已删除关系分配的磁盘空间在提交时及时释放

变更

确保为已删除关系分配的磁盘空间在提交时及时释放(Thomas Munro)§

以前,如果删除的关系跨越多个 1GB 段,只有第一个段会立即被截断。其他段只是被解除链接;只要其他后端仍打开着这些文件,内核就不能释放其存储空间。

关联记录(5)

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

其他改进防止删除被分区关系引用、但未用于任何实际存储的表空间

变更

防止删除被分区关系引用、但未用于任何实际存储的表空间(Álvaro Herrera)§

以前允许这样做,但之后对分区关系的操作会失败。

关联记录(2)

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

BUG 修复修复 CLUSTER 的进度报告

变更

修复 CLUSTER 的进度报告(Matthias van de Meent)§

关联记录(1)

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

BUG 修复修复 COPY FROM 对反斜杠转义的多字节字符的处理

变更

修复 COPY FROM 对反斜杠转义的多字节字符的处理(Heikki Linnakangas)§

反斜杠后跟多字节字符时未被正确处理。在某些客户端字符编码中,这可能导致多字节字符的一部分被误认为字段分隔符或复制数据结束标记。

关联记录(5)

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

其他改进在不带 ANALYZE 的 EXPLAIN 中,避免预先分配执行器 hash 表

变更

在不带 ANALYZE 的 EXPLAIN 中,避免预先分配执行器 hash 表(Alexey Bashtanov)§

关联记录(5)

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

BUG 修复修复最近在 LISTEN/NOTIFY 队列处理中引入的竞争条件

变更

修复最近在 LISTEN/NOTIFY 队列处理中引入的竞争条件(Tom Lane)§

刚开始侦听的后端可能尝试读取正在被截断的 SLRU 页面,从而可能导致错误。

关联记录(5)

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

其他改进允许 jsonb 连接操作符处理所有 JSON 数据类型组合

变更

允许 jsonb 连接操作符处理所有 JSON 数据类型组合(Tom Lane)§

我们可以连接两个 JSON 对象或两个 JSON 数组。对于其他情况,将非数组输入包装为单元素数组,再进行数组连接。以前,某些输入组合遵循此规则,而其他组合却会无端报错。

关联记录(5)

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

BUG 修复修复解析 BRE 模式正则表达式中的 * 量词时使用未初始化值的问题

变更

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

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

关联记录(5)

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

BUG 修复修复 numeric power() 在指数恰好为 INT_MIN(-2147483648)时的行为

变更

修复 numeric power() 在指数恰好为 INT_MIN(-2147483648)时的行为(Dean Rasheed)§ §

以前会产生没有有效数字的结果。

关联记录(4)

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

BUG 修复修复 substring() 函数中的整数溢出情况

变更

修复 substring() 函数中的整数溢出情况(Tom Lane,Pavel Stehule)§

如果指定的起始索引与长度相加时发生整数溢出,substring() 就会行为异常:要么对本应成功的情况抛出虚假的 “negative substring length” 错误,要么未能指出长度为负(而在大多数情况下返回整个字符串)。

关联记录(2)

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

其他改进防止因错误检测 SLRU 日志的回卷点而可能造成的数据丢失

变更

防止因错误检测 SLRU 日志的回卷点而可能造成的数据丢失(Noah Misch)§

回卷点通常位于页面中间,必须将其取整到页边界,但以前没有正确做到这一点。只有当安装实例距离 SLRU 溢出不到一页时,才可能出现问题,而这在正常运行的系统中不太可能发生。如果确实发生,会表现为后续出现 “apparent wraparound” 或 “could not access status of transaction” 错误。

关联记录(5)

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

BUG 修复修复 WAL 读取逻辑,使其正确处理时间线切换

变更

修复 WAL 读取逻辑,使其正确处理时间线切换(Kyotaro Horiguchi,Fujii Masao)§ §

以前,如果启用了 WAL 归档,备库可能无法跟随运行在更新时间线上的主库,并出现 “requested WAL segment has already been removed” 等错误。

BUG 修复修复 WAL 发送进程进程为逻辑解码发送新快照时的内存泄漏

变更

修复 WAL 发送进程进程为逻辑解码发送新快照时的内存泄漏(Amit Kapila)§

关联记录(5)

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

BUG 修复修复逻辑复制期间通过分区关系的根表发送行变更时,WAL 发送进程进程中的关系缓存泄漏

变更

修复逻辑复制期间通过分区关系的根表发送行变更时,WAL 发送进程进程中的关系缓存泄漏(Amit Langote,Mark Zhao)§

BUG 修复修复 WAL 发送进程,使其在终止复制后接受其他命令

变更

修复 WAL 发送进程,使其在终止复制后接受其他命令(Jeff Davis)§

关联记录(5)

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

其他改进确保检测热备后端与启动(WAL 应用)进程之间的死锁

变更

确保检测热备后端与启动(WAL 应用)进程之间的死锁(Fujii Masao)§

启动进程没有运行死锁检测代码,因此当启动进程最后加入循环等待时,死锁可能永远不会被识别。

关联记录(4)

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

BUG 修复修复删除引用 HOT 链的索引条目时可能无法检测恢复冲突的问题

变更

修复删除引用 HOT 链的索引条目时可能无法检测恢复冲突的问题(Peter Geoghegan)§ §

代码未能遍历 HOT 链,因此可能计算出过旧的 XID 视界,导致热备中的冲突处理不正确。此缺陷的实际影响有限;在大多数情况下,附近的其他操作仍会找到正确的 XID 视界。

关联记录(1)

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

其他改进确保 krb_server_keyfile 的非空值始终覆盖服务器环境中 KRB5_KTNAME 的任何设置

变更

确保 krb_server_keyfile 的非空值始终覆盖服务器环境中 KRB5_KTNAME 的任何设置(Tom Lane)§

以前,哪个设置优先取决于客户端是否请求 GSS 加密。

关联记录(1)

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

其他改进在连接无法匹配 pg_hba.conf 条目的服务器日志消息中,包含 GSS 加密是否已启用的详细信息

变更

在连接无法匹配 pg_hba.conf 条目的服务器日志消息中,包含 GSS 加密是否已启用的详细信息(Kyotaro Horiguchi,Tom Lane)§

如果存在 hostgssenc 或 hostnogssenc 条目,这些信息就与问题有关。

关联记录(1)

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

BUG 修复修复服务器 GSS 加密支持中的多种问题

变更

修复服务器 GSS 加密支持中的多种问题(Tom Lane)§

移除 GSS 加密连接只能使用 GSS 认证这一无意义的限制。在连接授权日志消息中添加 GSS 加密信息。计算所需共享内存大小时,计入与 GSS 相关的空间(这一遗漏可能在 max_connections 设置很高时引发问题)。避免在报告不可恢复的 GSS 加密错误时可能出现的无限递归。

关联记录(1)

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

其他改进确保 postmaster 开始 “smart” 或 “fast” 关闭流程时,清理尚未处理的后台工作进程请求

变更

确保 postmaster 开始 “smart” 或 “fast” 关闭流程时,清理尚未处理的后台工作进程请求(Tom Lane)§

以前存在一种竞争条件:如果子进程恰好在关闭前请求了后台工作进程,就可能无限期等待,导致关闭无法完成。

关联记录(3)

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

BUG 修复修复解析 recovery_target_xid 值时的可移植性问题

变更

修复解析 recovery_target_xid 值时的可移植性问题(Michael Paquier)§

目标 XID 可能有 64 位宽,但以前使用 strtoul() 解析,导致在 long 为 32 位的平台(例如 Windows)上行为异常。

关联记录(4)

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

其他改进避免在独立后端中尝试使用并行索引构建

变更

避免在独立后端中尝试使用并行索引构建(Yulin Pei)§

关联记录(2)

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

其他改进允许索引访问方法支持内含列,而不必支持多个键列

变更

允许索引访问方法支持内含列,而不必支持多个键列(Tom Lane)§

关联记录(2)

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

其他改进进行基础备份时,如果不需要备份清单,则避免执行任何 SHA256 代码

变更

进行基础备份时,如果不需要备份清单,则避免执行任何 SHA256 代码(Michael Paquier)§

使用以 FIPS 模式运行的 OpenSSL 时,SHA256 hash 会被拒绝,从而导致错误。此项修改使这类平台上也能进行基础备份,只需指定 --no-manifest。

其他改进避免对具有非严格反序列化函数的聚合进行并行聚合时发生断言失败

变更

避免对具有非严格反序列化函数的聚合进行并行聚合时发生断言失败(Andrew Gierth)§

核心 PostgreSQL 中不存在此类聚合函数,但 PostGIS 等某些扩展提供了此类函数。不过,在未启用断言的构建中,这一错误是无害的。

关联记录(2)

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

其他改进避免 pg_get_functiondef() 检查带有 TRANSFORM 选项的函数时发生断言失败

变更

避免 pg_get_functiondef() 检查带有 TRANSFORM 选项的函数时发生断言失败(Tom Lane)§

关联记录(5)

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

BUG 修复修复 PL/pgSQL CALL 语句中错误的数据结构分配

变更

修复 PL/pgSQL CALL 语句中错误的数据结构分配(Tom Lane)§ §

PL/pgSQL 过程中的 CALL 调用另一个具有 OUT 参数的过程时,如果被调用过程执行了 COMMIT 或 ROLLBACK,就会失败。

关联记录(2)

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

其他改进在 libpq 中,不要在尝试 GSS 加密之后跳过 SSL 尝试

变更

在 libpq 中,不要在尝试 GSS 加密之后跳过 SSL 尝试(Tom Lane)§

如果已成功建立 GSS 加密连接,但随后在认证期间失败,我们会回退到未加密连接,而非接着尝试 SSL 加密连接。这可能导致意外的连接失败,或在期望加密连接时却悄然获得未加密连接。幸运的是,只有客户端和服务器都持有同一 Kerberos 基础设施中的有效票据时,GSS 加密才能成功。在要求使用 SSL 加密的环境中,这种情况似乎不太可能成立。

关联记录(1)

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

BUG 修复使 libpq 的 PQconndefaults() 函数报告正确的 channel_binding 默认值

变更

使 libpq 的 PQconndefaults() 函数报告正确的 channel_binding 默认值(Daniele Varrazzo)§

其他改进在 psql 中,重新允许在 \connect 命令的 connection_string 参数中包含密码

变更

在 psql 中,重新允许在 \connect 命令的 connection_string 参数中包含密码(Tom Lane)§

这以前是可以的,但最近的一项缺陷修复导致密码被忽略(从而提示用户输入密码)。

关联记录(5)

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

其他改进在 psql 的 \d 命令中,不要截断列默认值的显示

变更

在 psql 的 \d 命令中,不要截断列默认值的显示(Tom Lane)§

以前,它们会被任意截断为 128 个字符。

关联记录(1)

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

BUG 修复修复 psql 的 \help 命令中的多种缺陷

变更

修复 psql 的 \help 命令中的多种缺陷(Kyotaro Horiguchi,Tom Lane)§

\help 带有两个参数词时,无法仅使用第一个词找到命令说明,例如 \help reset all 本应显示 RESET 的帮助,但却没有。另外,\help 经常未在应该调用分页器时调用它,也会泄漏内存。

关联记录(5)

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

BUG 修复修复 pg_dump 对继承生成列的转储

变更

修复 pg_dump 对继承生成列的转储(Peter Eisentraut)§

以前的行为会在恢复期间产生无害的错误。

关联记录(1)

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

其他改进在 pg_dump 中,确保恢复脚本以发布所有者的身份运行 ALTER PUBLICATION ADD TABLE 命令,并同样以分区索引所有者的身份运行 ALTER INDEX ATTACH PARTITION 命令

变更

在 pg_dump 中,确保恢复脚本以发布所有者的身份运行 ALTER PUBLICATION ADD TABLE 命令,并同样以分区索引所有者的身份运行 ALTER INDEX ATTACH PARTITION 命令(Tom Lane)§ §

以前,这些命令由启动恢复脚本的角色运行;这通常能够正常工作,但在边界情况下,该角色可能没有足够权限。

关联记录(3)

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

BUG 修复修复 pg_dump,使其处理扩展初始权限中的 WITH GRANT OPTION

变更

修复 pg_dump,使其处理扩展初始权限中的 WITH GRANT OPTION(Noah Misch)§

如果扩展脚本创建一个对象,并授予其带转授权选项的权限,而用户之后撤销了这些权限,pg_dump 就会生成不正确的 SQL 来重现这种情况。(目前,即使有扩展这样做,数量也很少。)

关联记录(4)

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

其他改进在 pg_rewind 中,确保回退备库时计入所有 WAL

变更

在 pg_rewind 中,确保回退备库时计入所有 WAL(Ian Barwick,Heikki Linnakangas)§ § §

关联记录(5)

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

其他改进在 pgbench 中,禁止变量名以数字开头

变更

在 pgbench 中,禁止变量名以数字开头(Fabien Coelho)§

这可以避免尝试在时间戳字面值中替换变量,因为时间戳可能包含 12:34 这样的字符串。

关联记录(2)

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

BUG 修复在某些客户端程序的连接失败错误消息中报告正确的数据库名称

变更

在某些客户端程序的连接失败错误消息中报告正确的数据库名称(Álvaro Herrera)§

如果数据库名称采用默认值,而非通过命令行给出,pg_dumpall、pgbench、oid2name 和 vacuumlo 就会在连接失败后产生误导性的错误消息。

关联记录(5)

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

BUG 修复修复 contrib/auto_explain 中的内存泄漏

变更

修复 contrib/auto_explain 中的内存泄漏(Japin Li)§

生成 EXPLAIN 输出时消耗的内存,直到当前事务结束(对于顶层语句)或外层语句结束(对于嵌套语句)才会释放。启用 log_nested_statements 时,这尤其容易造成问题。

关联记录(5)

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

BUG 修复在 contrib/postgres_fdw 中,避免删除用户映射或外部服务器对象时泄漏已打开的远程服务器连接

变更

在 contrib/postgres_fdw 中,避免删除用户映射或外部服务器对象时泄漏已打开的远程服务器连接(Bharath Rupireddy)§

依赖已删除用户映射或外部服务器的打开连接已无法再被引用,但以前仍会将它们保留到本地会话结束。

关联记录(5)

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

BUG 修复修复 contrib/postgres_fdw 中错误的断言

变更

修复 contrib/postgres_fdw 中错误的断言(Etsuro Fujita)§

其他改进在 contrib/pgcrypto 中,检查 OpenSSL EVP 函数返回的错误

变更

在 contrib/pgcrypto 中,检查 OpenSSL EVP 函数返回的错误(Michael Paquier)§

我们并不真正预期这里会出现错误,但此项修改消除了静态分析工具的警告。

关联记录(5)

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

其他改进使 contrib/pg_prewarm 在预热完成前数据库集簇被关闭时更加稳健

变更

使 contrib/pg_prewarm 在预热完成前数据库集簇被关闭时更加稳健(Tom Lane)§

以前,autoprewarm 会只用截至当时已成功加载的块号重写其状态文件,因而可能在很大程度上使下次启动时的预热功能失效。现在改为在初始加载过程完成前,禁止更新状态文件。

关联记录(2)

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

BUG 修复在 contrib/pg_trgm 的 GiST 索引支持中,避免恰好对两个索引项调用 picksplit 这一罕见情况下的崩溃

变更

在 contrib/pg_trgm 的 GiST 索引支持中,避免恰好对两个索引项调用 picksplit 这一罕见情况下的崩溃(Andrew Gierth,Alexander Korotkov)§

关联记录(5)

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

BUG 修复修复 contrib/pg_prewarm 和 contrib/postgres_fdw 中错误的超时计算

变更

修复 contrib/pg_prewarm 和 contrib/postgres_fdw 中错误的超时计算(Alexey Kondratov,Tom Lane)§

contrib/pg_prewarm 的 autoprewarm 父进程中的主循环,将所需睡眠时间低估为实际值的千分之一,导致 CPU 消耗远高于预期。等待远程服务器返回结果时,contrib/postgres_fdw 则将所需超时时间高估为实际值的 1000 倍(不过,60 秒的上限缓解了这一错误)。

这两个错误都源于将秒和微秒错误地转换为毫秒。引入新的 API TimestampDifferenceMilliseconds(),使今后更容易正确完成这一转换。

关联记录(5)

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

其他改进改进 configure 在 macOS 上选择 PG_SYSROOT 的启发式方法

变更

改进 configure 在 macOS 上选择 PG_SYSROOT 的启发式方法(Tom Lane)§ §

当 Xcode 比底层操作系统更新时,新方法更有可能产生理想结果。选择与操作系统版本不匹配的 sysroot,可能生成无法工作的可执行文件。

关联记录(5)

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

其他改进在 macOS 上构建时,在链接步骤和编译步骤中都指定 -isysroot

变更

在 macOS 上构建时,在链接步骤和编译步骤中都指定 -isysroot(James Hilliard)§

这同样可以改善 Xcode 与操作系统版本不同步时的结果。

关联记录(5)

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

BUG 修复修复 JIT 编译,使其兼容 LLVM 11 和 LLVM 12

变更

修复 JIT 编译,使其兼容 LLVM 11 和 LLVM 12(Andres Freund)§ §

关联记录(3)

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

BUG 修复修复 JIT 表达式编译中对布尔变量引用的潜在错误处理

变更

修复 JIT 表达式编译中对布尔变量引用的潜在错误处理(Andres Freund)§

尚未看到可归因于此问题的实际报告,但它似乎很可能在某些架构上造成问题。

关联记录(2)

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

BUG 修复修复使用 ICU 68 及更新版本时的编译失败

变更

修复使用 ICU 68 及更新版本时的编译失败(Tom Lane)§

关联记录(2)

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

其他改进避免在创建分区索引期间,以 NULL 源指针和零计数调用 memcpy()

变更

避免在创建分区索引期间,以 NULL 源指针和零计数调用 memcpy()(Álvaro Herrera)§

虽然尚未发现此类调用本身会造成问题,但某些编译器假定 memcpy() 的参数永不为 NULL,这可能导致对附近代码进行错误的优化。

关联记录(2)

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

其他改进将时区数据文件更新到 tzdata 2021a 版,以反映俄罗斯(Volgograd 时区)和南苏丹的夏令时法规变更,并修正澳大利亚、巴哈马、伯利兹、百慕大、加纳、以色列、肯尼亚、尼日利亚、巴勒斯坦、塞舌尔和瓦努阿图的历史数据。

变更

将时区数据文件更新到 tzdata 2021a 版,以反映俄罗斯(Volgograd 时区)和南苏丹的夏令时法规变更,并修正澳大利亚、巴哈马、伯利兹、百慕大、加纳、以色列、肯尼亚、尼日利亚、巴勒斯坦、塞舌尔和瓦努阿图的历史数据。(Tom Lane)§

特别是,Australia/Currie 时区经过修正后,已与 Australia/Hobart 完全相同。

关联记录(5)

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

这份对比如何生成?

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

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

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

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

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