文档版本比较
POSTGRESQL · VERSION COMPARE
PostgreSQL 13.21 发布变化
此版本的完整功能、修复与兼容性说明,以及其他版本的关联记录。
包括起始版本之后至目标版本的变化。大版本号表示该分支的首个版本。
从数据库输出识别起始版本
完整发布变化
13.21
2025-05-08
13.21stable支持截止 2025-11-13
安全变化
| CVE / 问题 | 严重程度 | 修复版本 | 所选版本状态 |
|---|---|---|---|
| CVE-2025-4207 避免在检查声称为 GB18030 编码的无效编码字符串时发生单字节缓冲区越界读取 | 13.21 | 已记录修复 |
PostgreSQL 13.21
迁移与兼容性
对于运行 13.X 的用户,不需要执行导出/恢复。
但是,如果分区表上存在自引用外键约束,可能需要重新创建这些约束,以确保它们得到正确执行。请参见下面的第二个变更日志条目。
此外,如果是从早于 13.17 的版本升级,请参见第 E.7 节。
安全避免在检查声称为 GB18030 编码的无效编码字符串时发生单字节缓冲区越界读取
改进正确处理分区表上的自引用外键
变更
正确处理分区表上的自引用外键(Álvaro Herrera)§
创建或附加分区时未能为外键约束创建所需的目录条目,如果该约束引用的表就是同一个分区表。这会导致该约束无法被完全执行。
要修复此问题,如果在约束创建之后曾创建或附加过分区,则应删除并重新创建分区表上的任何自引用外键。请注意,可能已经存在违反约束的行,在这种情况下重新创建约束会失败,你需要先修复这些行后再重试。
问题修复修复在 UPDATE、DELETE 和 MERGE 查询中使用对视图或函数的整行表引用(在 FROM 中)时出现的意外 “attribute has wrong type” 错误
变更
修复在 UPDATE、DELETE 和 MERGE 查询中使用对视图或函数的整行表引用(在 FROM 中)时出现的意外 “attribute has wrong type” 错误(Tom Lane)§ § §
关联记录 (4)
- 相同变化PostgreSQL 17.5 · 修复在 UPDATE、DELETE 和 MERGE 查询中使用对视图或函数的整行表引用(在 FROM 中)时出现的意外 “attribute has wrong type” 错误
- 相同变化PostgreSQL 16.9 · 修复在 UPDATE、DELETE 和 MERGE 查询中使用对视图或函数的整行表引用(在 FROM 中)时出现的意外 “attribute has wrong type” 错误
- 相同变化PostgreSQL 15.13 · 修复在 UPDATE、DELETE 和 MERGE 查询中使用对视图或函数的整行表引用(在 FROM 中)时出现的意外 “attribute has wrong type” 错误
- 相同变化PostgreSQL 14.18 · 修复在 UPDATE、DELETE 和 MERGE 查询中使用对视图或函数的整行表引用(在 FROM 中)时出现的意外 “attribute has wrong type” 错误
改进正确处理出现在附加到 INSERT/UPDATE/DELETE/MERGE 命令(该命令本身在 WITH 内部)的 WITH 子句中对外部 CTE 名称的引用
变更
正确处理出现在附加到 INSERT/UPDATE/DELETE/MERGE 命令(该命令本身在 WITH 内部)的 WITH 子句中对外部 CTE 名称的引用(Tom Lane)§
解析器未能检测到不允许的递归情况,也未能在将 CTE 排列为可用顺序时考虑此类引用。
关联记录 (4)
- 相同变化PostgreSQL 17.5 · 正确处理出现在附加到 INSERT/UPDATE/DELETE/MERGE 命令(该命令本身在 WITH 内部)的 WITH 子句中对外部 CTE 名称的引用
- 相同变化PostgreSQL 16.9 · 正确处理出现在附加到 INSERT/UPDATE/DELETE/MERGE 命令(该命令本身在 WITH 内部)的 WITH 子句中对外部 CTE 名称的引用
- 相同变化PostgreSQL 15.13 · 正确处理出现在附加到 INSERT/UPDATE/DELETE/MERGE 命令(该命令本身在 WITH 内部)的 WITH 子句中对外部 CTE 名称的引用
- 相同变化PostgreSQL 14.18 · 正确处理出现在附加到 INSERT/UPDATE/DELETE/MERGE 命令(该命令本身在 WITH 内部)的 WITH 子句中对外部 CTE 名称的引用
问题修复修复 ARRAY(subquery) 和 ARRAY[expression, ...] 构造,使其在输入类型为 int2vector 或 oidvector 时产生合理的结果
变更
修复 ARRAY( 和 subquery)ARRAY[ 构造,使其在输入类型为 expression, ...]int2vector 或 oidvector 时产生合理的结果(Tom Lane)§
此补丁恢复了 PostgreSQL 9.5 之前的行为:结果类型为 int2vector[] 或 oidvector[]。
关联记录 (4)
- 相同变化PostgreSQL 17.5 · 修复 ARRAY(subquery) 和 ARRAY[expression, ...] 构造,使其在输入类型为 int2vector 或 oidvector 时产生合理的结果
- 相同变化PostgreSQL 16.9 · 修复 ARRAY(subquery) 和 ARRAY[expression, ...] 构造,使其在输入类型为 int2vector 或 oidvector 时产生合理的结果
- 相同变化PostgreSQL 15.13 · 修复 ARRAY(subquery) 和 ARRAY[expression, ...] 构造,使其在输入类型为 int2vector 或 oidvector 时产生合理的结果
- 相同变化PostgreSQL 14.18 · 修复 ARRAY(subquery) 和 ARRAY[expression, ...] 构造,使其在输入类型为 int2vector 或 oidvector 时产生合理的结果
问题修复修复解析 Ispell 字典时可能错误报告无效词缀的问题
变更
修复解析 Ispell 字典时可能错误报告无效词缀的问题(Jacob Brazeal)§
问题修复修复 ALTER TABLE ADD COLUMN 以正确处理具有默认值的域类型的情况
改进改进对不允许的外键约束属性修改尝试的错误消息
变更
改进对不允许的外键约束属性修改尝试的错误消息(Álvaro Herrera)§
改进避免在重置标记为 ON COMMIT DELETE ROWS 的临时表的 relhassubclass 标志时出错
变更
避免在重置标记为 ON COMMIT DELETE ROWS 的临时表的 relhassubclass 标志时出错(Noah Misch)§
关联记录 (4)
- 相同变化PostgreSQL 17.5 · 避免在重置标记为 ON COMMIT DELETE ROWS 的临时表的 relhassubclass 标志时出错
- 相同变化PostgreSQL 16.9 · 避免在重置标记为 ON COMMIT DELETE ROWS 的临时表的 relhassubclass 标志时出错
- 相同变化PostgreSQL 15.13 · 避免在重置标记为 ON COMMIT DELETE ROWS 的临时表的 relhassubclass 标志时出错
- 相同变化PostgreSQL 14.18 · 避免在重置标记为 ON COMMIT DELETE ROWS 的临时表的 relhassubclass 标志时出错
改进禁用位图堆扫描中的“跳过获取”优化
变更
禁用位图堆扫描中的“跳过获取”优化(Matthias van de Meent)§
事实证明,当并发 vacuum 将页面标记为全部可见时,此优化可能会返回死元组。
问题修复修复存在大量搜索键时 GIN 索引搜索启动的性能问题
改进检测 BRIN 索引操作符类中缺失的支持函数,并报告错误而不是崩溃
变更
检测 BRIN 索引操作符类中缺失的支持函数,并报告错误而不是崩溃(Álvaro Herrera)§
问题修复修复启动后立即处理 synchronous_standby_names 时的竞态条件
变更
修复启动后立即处理 synchronous_standby_names 时的竞态条件(Melnikov Maksim,Michael Paquier)§
在系统启动后的短暂时间内,即使 synchronous_standby_names 已启用,后端可能也不会等待同步提交。
问题修复修复 pg_strtof() 在空 endptr 时崩溃的问题
变更
修复 pg_strtof() 在空 endptr 时崩溃的问题(Alexander Lakhin,Tom Lane)§
问题修复避免在 Snowball 词干提取器遇到内存不足条件时崩溃
变更
避免在 Snowball 词干提取器遇到内存不足条件时崩溃(Maksim Korotkov)§
问题修复在归档恢复期间跳过 WAL 回收和预分配,以避免损坏从归档恢复的 WAL 文件
改进防止在逻辑解码的“快进”模式中过度推进 catalog xmin
变更
防止在逻辑解码的“快进”模式中过度推进 catalog xmin(Zhijie Hou)§
这个错误可能导致已删除的目录条目被清理掉,即使 WAL 读取进程仍可能需要它们。
改进避免在不需要强锁的 DDL 操作影响正在进行逻辑复制的表时丢失数据
改进避免在逻辑复制索引查找中重复创建快照
变更
问题修复修复 gistFindCorrectParent() 中过于严格的断言
变更
修复 gistFindCorrectParent() 中过于严格的断言(Heikki Linnakangas)§
改进在 PL/pgSQL 中,避免当可滚动游标定义在简单 SELECT expression 查询上时出现 “unexpected plan node type” 错误
变更
在 PL/pgSQL 中,避免当可滚动游标定义在简单 SELECT 查询上时出现 “unexpected plan node type” 错误(Andrei Lepikhov)§expression
关联记录 (4)
- 相同变化PostgreSQL 17.5 · 在 PL/pgSQL 中,避免当可滚动游标定义在简单 SELECT expression 查询上时出现 “unexpected plan node type” 错误
- 相同变化PostgreSQL 16.9 · 在 PL/pgSQL 中,避免当可滚动游标定义在简单 SELECT expression 查询上时出现 “unexpected plan node type” 错误
- 相同变化PostgreSQL 15.13 · 在 PL/pgSQL 中,避免当可滚动游标定义在简单 SELECT expression 查询上时出现 “unexpected plan node type” 错误
- 相同变化PostgreSQL 14.18 · 在 PL/pgSQL 中,避免当可滚动游标定义在简单 SELECT expression 查询上时出现 “unexpected plan node type” 错误
改进在 pg_dump 的 --clean 模式中不再尝试删除单个索引分区
变更
在 pg_dump 的 --clean 模式中不再尝试删除单个索引分区(Jian He)§
服务器会拒绝这样的 DROP 命令。这实际上没有什么影响,因为这些分区在后续对其父表或分区索引执行 DROP 时会被自动删除。但是,尝试删除时报告的错误会在以 --single-transaction 模式恢复时造成问题。
改进在 pg_dumpall 中,避免在 pg_auth_members 包含无效角色 OID 时生成无效的角色 GRANT 命令
变更
在 pg_dumpall 中,避免在 pg_auth_members 包含无效角色 OID 时生成无效的角色 GRANT 命令(Tom Lane)§
改为打印警告并跳过该条目。这能更好地处理在后端分支中因 GRANT 和 DROP ROLE 之间的竞态条件而导致的目录损坏。
关联记录 (4)
- 相同变化PostgreSQL 17.5 · 在 pg_dumpall 中,避免在 pg_auth_members 包含无效角色 OID 时生成无效的角色 GRANT 命令
- 相同变化PostgreSQL 16.9 · 在 pg_dumpall 中,避免在 pg_auth_members 包含无效角色 OID 时生成无效的角色 GRANT 命令
- 相同变化PostgreSQL 15.13 · 在 pg_dumpall 中,避免在 pg_auth_members 包含无效角色 OID 时生成无效的角色 GRANT 命令
- 相同变化PostgreSQL 14.18 · 在 pg_dumpall 中,避免在 pg_auth_members 包含无效角色 OID 时生成无效的角色 GRANT 命令
改进允许 contrib/dblink 查询被查询取消中断
问题修复避免在 contrib/pageinspect 的 heap_page_items() 中因损坏的输入数据而崩溃
变更
避免在 contrib/pageinspect 的 heap_page_items() 中因损坏的输入数据而崩溃(Dmitry Kovalenko)§
关联记录 (4)
- 相同变化PostgreSQL 17.5 · 避免在 contrib/pageinspect 的 heap_page_items() 中因损坏的输入数据而崩溃
- 相同变化PostgreSQL 16.9 · 避免在 contrib/pageinspect 的 heap_page_items() 中因损坏的输入数据而崩溃
- 相同变化PostgreSQL 15.13 · 避免在 contrib/pageinspect 的 heap_page_items() 中因损坏的输入数据而崩溃
- 相同变化PostgreSQL 14.18 · 避免在 contrib/pageinspect 的 heap_page_items() 中因损坏的输入数据而崩溃
改进防止 contrib/pg_freespacemap 的 pg_freespacemap() 中的断言失败
变更
防止 contrib/pg_freespacemap 的 pg_freespacemap() 中的断言失败(Tender Wang)§
对没有存储的关系(如视图)应用 pg_freespacemap() 会导致断言失败,尽管在非断言构建中没有不良影响。增加了错误检查以拒绝这种情况。
关联记录 (4)
- 相同变化PostgreSQL 17.5 · 防止 contrib/pg_freespacemap 的 pg_freespacemap() 中的断言失败
- 相同变化PostgreSQL 16.9 · 防止 contrib/pg_freespacemap 的 pg_freespacemap() 中的断言失败
- 相同变化PostgreSQL 15.13 · 防止 contrib/pg_freespacemap 的 pg_freespacemap() 中的断言失败
- 相同变化PostgreSQL 14.18 · 防止 contrib/pg_freespacemap 的 pg_freespacemap() 中的断言失败
问题修复修复在 macOS 15.4 上的构建失败
变更
修复在 macOS 15.4 上的构建失败(Tom Lane,Peter Eisentraut)§
此 macOS 更新破坏了我们对 strchrnul() 的配置探测。
改进更新时区数据文件至 tzdata 2025b 版本,包含智利的夏令时法律变更以及伊朗的历史修正
变更
更新时区数据文件至 tzdata 2025b 版本,包含智利的夏令时法律变更以及伊朗的历史修正(Tom Lane)§
新增时区 America/Coyhaique 用于智利的 Aysén 大区,以反映其改为全年使用 UTC-03,从而与 America/Santiago 产生差异。
没有匹配的变化
尝试其他关键词,或 .
如何生成比较结果?
比较依据起始版本之后至目标版本的 PostgreSQL 发布说明。经核实的回补重复项会谨慎合并,保留每条原始说明;相关提交可能涉及独立变化,仍作为不同记录保留。
发布快照: 2026-09-26 · 安全快照: 2026-09-26
内容来自 PostgreSQL 发布说明。交互方式参考 pgversions.com 与 pgversionreport.