文档版本比较
POSTGRESQL · VERSION COMPARE
PostgreSQL 18.4 发布变化
此版本的完整功能、修复与兼容性说明,以及其他版本的关联记录。
包括起始版本之后至目标版本的变化。大版本号表示该分支的首个版本。
从数据库输出识别起始版本
完整发布变化
18.4
2026-05-14
18.4stable支持截止 2030-11-14
安全变化
| CVE / 问题 | 严重程度 | 修复版本 | 所选版本状态 |
|---|---|---|---|
| CVE-2026-6637 防止 contrib/spi 中的 SQL 注入和缓冲区越界写 | 18.4 | 已记录修复 | |
| CVE-2026-6477 将 PQfn() 标记为不安全,并避免在 libpq 内部使用它 | 18.4 | 已记录修复 | |
| CVE-2026-6475 防止 pg_basebackup 和 pg_rewind 中的路径遍历 | 18.4 | 已记录修复 | |
| CVE-2026-6473 修复内存分配计算中的多处整数溢出问题 | 18.4 | 已记录修复 | |
| CVE-2026-6479 防止处理启动包时发生无界递归 | 18.4 | 已记录修复 | |
| CVE-2026-6476 在 pg_createsubscriber 中正确为订阅名称加引号 | 18.4 | 已记录修复 | |
| CVE-2026-6478 在认证代码中使用时序安全的字符串比较 | 18.4 | 已记录修复 | |
| CVE-2026-6472 创建多范围类型时,确保用户在为该多范围类型指定的模式上拥有 CREATE 权限 | 18.4 | 已记录修复 | |
| CVE-2026-6575 在恢复属性 MCV 统计信息时检测错误输入 | 18.4 | 已记录修复 | |
| CVE-2026-6474 防范 timeofday() 和 pg_strftime() 中的恶意时区名 | 18.4 | 已记录修复 | |
| CVE-2026-6638 在逻辑复制源检查中正确引用对象名称 | 18.4 | 已记录修复 |
PostgreSQL 18.4
迁移与兼容性
对于运行 18.X 的用户,不需要执行导出/恢复。
但是,如果你从早于 18.2 的版本升级,请参见第 E.4 节。
安全防止处理启动包时发生无界递归
变更
防止处理启动包时发生无界递归(Michael Paquier)§
恶意客户端可以通过无限交替发送被拒绝的 SSL 和 GSS 加密请求,使已连接的后端崩溃。
PostgreSQL 项目感谢 Calif.io(与 Claude 和 Anthropic Research 协作)报告此问题。(CVE-2026-6479)
安全修复内存分配计算中的多处整数溢出问题
安全在 pg_createsubscriber 中正确为订阅名称加引号
变更
在 pg_createsubscriber 中正确为订阅名称加引号(Nathan Bossart)§
给定的订阅名称未经加引号就被插入到 SQL 命令中,因此在订阅名称来自不可信来源的(也许不太可能的)情况下,可能实现 SQL 注入。
PostgreSQL 项目感谢 Yu Kunpeng 报告此问题。(CVE-2026-6476)
安全在逻辑复制源检查中正确引用对象名称
变更
在逻辑复制源检查中正确引用对象名称(Pavel Kohout)§
ALTER SUBSCRIPTION ... REFRESH PUBLICATION 将模式名和关系名未经引用就插入到 SQL 命令中,从而允许在发布者上执行任意 SQL。
PostgreSQL 项目感谢 Pavel Kohout 报告此问题。(CVE-2026-6638)
安全拒绝 ts_headline() 中过长的选项
变更
拒绝 ts_headline() 中过长的选项(Michael Paquier)§
StartSel、StopSel 和 FragmentDelimiter 字符串的长度不得超过 32Kb,但此前没有对此进行检查。过长的值通常会使服务器崩溃。
PostgreSQL 项目感谢 Xint Code 报告此问题。(CVE-2026-6473)
安全在恢复属性 MCV 统计信息时检测错误输入
变更
在恢复属性 MCV 统计信息时检测错误输入(Michael Paquier)§
统计信息恢复函数在验证高频值统计信息时不够谨慎,会接受稍后可能导致规划器崩溃的值。
PostgreSQL 项目感谢 Jeroen Gui 报告此问题。(CVE-2026-6575)
安全防范 timeofday() 和 pg_strftime() 中的恶意时区名
安全创建多范围类型时,确保用户在为该多范围类型指定的模式上拥有 CREATE 权限
变更
创建多范围类型时,确保用户在为该多范围类型指定的模式上拥有 CREATE 权限(Jelte Fennema-Nio)§
多范围类型可以放入不同于其父范围类型的模式中,但此前在这样做时遗漏了必需的权限检查。
PostgreSQL 项目感谢 Jelte Fennema-Nio 报告此问题。(CVE-2026-6472)
安全在认证代码中使用时序安全的字符串比较
变更
在认证代码中使用时序安全的字符串比较(Michael Paquier)§
在检查口令、hash 等值时,使用 timingsafe_bcmp() 而不是 memcmp() 或 strcmp()。尚不清楚这些函数的数据依赖性在这些位置是否真的可被有效利用,但为安全起见,将其替换。
PostgreSQL 项目感谢 Joe Conway 报告此问题。(CVE-2026-6478)
安全将 PQfn() 标记为不安全,并避免在 libpq 内部使用它
变更
将 PQfn() 标记为不安全,并避免在 libpq 内部使用它(Nathan Bossart)§
对于非整数结果类型,PQfn() 不会获得输出缓冲区的大小,因此它无法检查服务器返回的数据能否放入缓冲区。恶意服务器因而可能覆盖客户端内存。若不改变 API 就无法修复这一点,所以将该函数标记为已废弃。在 libpq 内部,改用一个能够执行缺失检查的变体版本。
PostgreSQL 项目感谢 Yu Kunpeng 和 Martin Heistermann 报告此问题。(CVE-2026-6477)
安全防止 pg_basebackup 和 pg_rewind 中的路径遍历
变更
防止 pg_basebackup 和 pg_rewind 中的路径遍历(Michael Paquier)§
这些应用未能验证从其输入中读取的输出文件路径,因而恶意来源可以覆盖这些应用可写的任意文件。通过拒绝绝对路径或包含父目录引用的路径,约束数据可以写入的位置。
PostgreSQL 项目感谢 Tencent Xuanwu Lab 的 XlabAI Team 和 Valery Gubanov 报告此问题。(CVE-2026-6475)
安全防范 contrib/intarray 的 query_int 类型以及 contrib/ltree 的 ltxtquery 类型中的字段溢出
变更
防范 contrib/intarray 的 query_int 类型以及 contrib/ltree 的 ltxtquery 类型中的字段溢出(Tom Lane)§ §
这些查询结构的解析没有检查 16 位字段溢出,因而可能构造出无效的查询树。执行该查询时,这可能使服务器崩溃。
PostgreSQL 项目感谢 Xint Code 报告此问题。(CVE-2026-6473)
关联记录 (4)
- 相同变化PostgreSQL 17.10 · 防范 contrib/intarray 的 query_int 类型以及 contrib/ltree 的 ltxtquery 类型中的字段溢出
- 相同变化PostgreSQL 16.14 · 防范 contrib/intarray 的 query_int 类型以及 contrib/ltree 的 ltxtquery 类型中的字段溢出
- 相同变化PostgreSQL 15.18 · 防范 contrib/intarray 的 query_int 类型以及 contrib/ltree 的 ltxtquery 类型中的字段溢出
- 相同变化PostgreSQL 14.23 · 防范 contrib/intarray 的 query_int 类型以及 contrib/ltree 的 ltxtquery 类型中的字段溢出
安全防范 contrib/ltree 的 lquery 类型中过长的值
变更
防范 contrib/ltree 的 lquery 类型中过长的值(Michael Paquier)§
包含超过 64K 个项的值会导致内部溢出,可能造成栈破坏或错误结果。
PostgreSQL 项目感谢 Vergissmeinnicht、A1ex 和 Jihe Wang 报告此问题。(CVE-2026-6473)
安全防止 contrib/spi 中的 SQL 注入和缓冲区越界写
变更
防止 contrib/spi 中的 SQL 注入和缓冲区越界写(Nathan Bossart)§
check_foreign_key() 在为键值加引号时不够谨慎,并且还使用固定长度缓冲区构造查询。虽然该模块只是作为示例代码,但仍然不应包含此类危险错误。
PostgreSQL 项目感谢 Nikolay Samokhvalov 报告此问题。(CVE-2026-6637)
改进在假定支持排序规则的类型上的等值条件意味着唯一性之前,检查是否存在非确定性排序规则
问题修复修复连接移除期间 RestrictInfo 结构体中关系引用移除不完整的问题
变更
修复连接移除期间 RestrictInfo 结构体中关系引用移除不完整的问题(Tom Lane)§
已经证明这个疏忽会导致规划器失败,例如意外出现 “FULL JOIN is only supported with merge-joinable or hash-joinable join conditions” 错误。它还可能在其他情况下导致未能考虑有效的计划。
改进改进规划器将分区键列匹配到子查询输出的逻辑
变更
改进规划器将分区键列匹配到子查询输出的逻辑(Richard Guo)§
在将操作数与分区键比较之前,去除其中的无操作 PlaceHolderVar。此变更使分区剪枝在某些此前未能识别出无需扫描某个分区的情况下能够成功。
问题修复修复自连接移除,使其能够处理裸布尔列形式的连接子句,例如 ON t1.boolcol
变更
修复自连接移除,使其能够处理裸布尔列形式的连接子句,例如 ON t1.boolcol(Andrei Lepikhov, Tender Wang, Alexander Korotkov)§
以前这种情况会导致 “no relation entry for relid N” 错误。
问题修复修复 UPDATE/DELETE ... WHERE CURRENT OF,使其可用于带有虚拟生成列的表
变更
修复 UPDATE/DELETE ... WHERE CURRENT OF,使其可用于带有虚拟生成列的表(Satyanarayana Narlapuram, Dean Rasheed)§
问题修复修复 INSERT ... ON CONFLICT 中 EXCLUDED 列引用里的虚拟生成列展开问题
变更
修复 INSERT ... ON CONFLICT 中 EXCLUDED 列引用里的虚拟生成列展开问题(Satyanarayana Narlapuram, Dean Rasheed)§
问题修复修正规则动作和规则限定条件中对 NEW 生成列的错误处理
变更
修正规则动作和规则限定条件中对 NEW 生成列的错误处理(Richard Guo,Dean Rasheed)§
此前,在 INSERT 情况下,此类列引用会生成 NULL;在 UPDATE 情况下,则等同于 OLD 值。
问题修复修复虚假的 “indexes on virtual generated columns are not supported” 错误
变更
修复虚假的 “indexes on virtual generated columns are not supported” 错误(Robert Haas)§
创建表达式索引时有时会错误地报告此错误。
问题修复修复虚假的 “generated columns are not supported in COPY FROM WHERE conditions” 错误
变更
修复虚假的 “generated columns are not supported in COPY FROM WHERE conditions” 错误(Tom Lane)§
在 COPY FROM WHERE 条件中使用系统列时,有时会错误报告此错误。
关联记录 (4)
- 相同变化PostgreSQL 17.10 · 修复虚假的 “generated columns are not supported in COPY FROM WHERE conditions” 错误
- 相同变化PostgreSQL 16.14 · 修复虚假的 “generated columns are not supported in COPY FROM WHERE conditions” 错误
- 相同变化PostgreSQL 15.18 · 修复虚假的 “generated columns are not supported in COPY FROM WHERE conditions” 错误
- 相同变化PostgreSQL 14.23 · 修复虚假的 “generated columns are not supported in COPY FROM WHERE conditions” 错误
改进当 MERGE 在可重复读或可串行化模式下遇到被并发更新的元组时,正确报告串行化失败
变更
当 MERGE 在可重复读或可串行化模式下遇到被并发更新的元组时,正确报告串行化失败(Tender Wang)§
此前,这类场景的行为与较低隔离级别中的行为相同。
问题修复修复源表包含已删除列时的 CREATE TABLE ... LIKE ... INCLUDING STATISTICS
变更
修复源表包含已删除列时的 CREATE TABLE ... LIKE ... INCLUDING STATISTICS(Julien Tachoires)§
在这类情况下,扩展统计信息对象可能会被错误复制,或该命令可能给出错误的报错。
关联记录 (4)
- 相同变化PostgreSQL 17.10 · 修复源表包含已删除列时的 CREATE TABLE ... LIKE ... INCLUDING STATISTICS
- 相同变化PostgreSQL 16.14 · 修复源表包含已删除列时的 CREATE TABLE ... LIKE ... INCLUDING STATISTICS
- 相同变化PostgreSQL 15.18 · 修复源表包含已删除列时的 CREATE TABLE ... LIKE ... INCLUDING STATISTICS
- 相同变化PostgreSQL 14.23 · 修复源表包含已删除列时的 CREATE TABLE ... LIKE ... INCLUDING STATISTICS
改进允许 ALTER INDEX ... ATTACH PARTITION 在适当时将父索引标记为有效
变更
允许 ALTER INDEX ... ATTACH PARTITION 在适当时将父索引标记为有效(Sami Imseih)§
存在一些边界情况:即使分区索引的所有叶子索引均有效,该分区索引仍可能保持被标记为无效。此变更提供了一种机制,使用户可以在不借助手工更新系统目录的情况下纠正这种情况。
问题修复修复 ALTER TABLE ... SET NOT NULL,使其只在完成目录更改后才调用对象访问钩子函数
变更
修复 ALTER TABLE ... SET NOT NULL,使其只在完成目录更改后才调用对象访问钩子函数(Artur Zakirov)§
问题修复修复 ALTER FOREIGN DATA WRAPPER,使其不要删除包装器对象对其处理器函数的依赖
问题修复修复外键触发器的可延迟性丢失问题
变更
修复外键触发器的可延迟性丢失问题(Yasuo Honda)§
以前,定义为 DEFERRABLE INITIALLY DEFERRED 的外键,在被设置为 NOT ENFORCED 状态再改回 ENFORCED 后,会表现得像 NOT DEFERRABLE。
如果你有受此问题影响的外键,可以在安装本次更新后,再次将其设置为 NOT ENFORCED,然后改回 ENFORCED 来修复。
问题修复修复 WITHOUT OVERLAPS 以允许域
变更
修复 WITHOUT OVERLAPS 以允许域(Jian He)§
UNIQUE/PRIMARY KEY ... WITHOUT OVERLAPS 要求无重叠列是范围或多范围,但它也应允许基于这类类型的域。
改进不允许复合类型通过多范围成为自身的成员
变更
不允许复合类型通过多范围成为自身的成员(Heikki Linnakangas)§
当中间类型是域、数组、复合类型或范围时,我们已经禁止此类情况;但此前遗漏了多范围。
问题修复修复 Datum 镜像比较,使其不受符号扩展差异影响
变更
修复 Datum 镜像比较,使其不受符号扩展差异影响(David Rowley)§
这修复了一些此前会导致 “could not find memoization table entry” 错误或错误查询结果的情况。
问题修复修复带非严格等值操作符的 hash IN/NOT IN 的错误逻辑
变更
修复带非严格等值操作符的 hash IN/NOT IN 的错误逻辑(Chengpeng Yan)§
此前的代码可能崩溃或给出错误结果。所有内置数据类型都有严格的等值操作符,因此此问题只可能出现在扩展数据类型上。
改进在 to_char() 中截断过长的区域设置相关数字符号
变更
在 to_char() 中截断过长的区域设置相关数字符号(Tom Lane)§
如果某个区域设置指定了长度超过 8 字节的货币符号、千位分隔符、小数符号或正负号符号,就可能出现缓冲区越界写。现实世界中不存在这样的区域设置,而且非特权攻击者也不太可能在 Postgres 服务器下安装恶意区域设置定义;但为安全起见,检查过长符号并在需要时截断。
改进防止解析 Ispell 字典的词缀文件时发生缓冲区越界写
变更
改进防范窗口聚合的帧起始和结束位置计算中的整数溢出
变更
防范窗口聚合的帧起始和结束位置计算中的整数溢出(Richard Guo)§
用户指定的极大偏移量(接近 INT64_MAX)可能导致错误或错误的查询结果。
问题修复修复 array_agg_array_combine(),使其正确组合数组的空值位图
变更
修复 array_agg_array_combine(),使其正确组合数组的空值位图(Dmytro Astapov)§
此错误导致并行化的 array_agg(anyarray) 计算有时产生不正确输出。
改进如果 sync_file_range() 返回错误码 EINTR,则进行重试
变更
如果 sync_file_range() 返回错误码 EINTR,则进行重试(DaeMyung Kang)§
问题修复修复 pg_stat_reset_single_table_counters() 在共享系统目录上的错误行为
变更
修复 pg_stat_reset_single_table_counters() 在共享系统目录上的错误行为(Chao Li)§
这类场景会产生重置当前数据库的 stat_reset_timestamp 的副作用,而这不是有意的。
改进当并行应用工作进程空闲时更新活动统计信息
变更
当并行应用工作进程空闲时更新活动统计信息(Zhijie Hou)§
以前,刚完成事务的统计信息可能长时间不被报告,尤其在工作负载较轻时。
问题修复修复集合操作中估算数组长度时出现的 “no relation entry for relid 0” 失败
变更
修复集合操作中估算数组长度时出现的 “no relation entry for relid 0” 失败(Tender Wang)§
问题修复修复 pglz_decompress() 接收损坏输入时的缓冲区越界读问题
变更
修复 pglz_decompress() 接收损坏输入时的缓冲区越界读问题(Andrew Dunstan)§
此前可能读取输入末尾之后的几个字节,在极其不走运的情况下可能导致崩溃。
问题修复修复增量 JSON 解析器对跨输入缓冲区边界的数字词元的处理
变更
修复增量 JSON 解析器对跨输入缓冲区边界的数字词元的处理(Andrew Dunstan)§
过去可能接受格式不正确的数字,导致后续失败。
改进防止恢复增量备份时关系可见性映射膨胀
改进在文本列上的系统目录缓存查找中使用 C 排序规则,而不是数据库的默认排序规则
变更
在文本列上的系统目录缓存查找中使用 C 排序规则,而不是数据库的默认排序规则(Jeff Davis)§
这避免了某些边缘场景中的失败,例如物理复制启动时没有已确定的数据库,因而无法确定默认排序规则。
改进防止卡住的 slotsync 工作进程阻塞备库提升
变更
关联记录 (1)
问题修复修复空闲 slotsync 工作进程产生过多日志输出的问题
改进确保即使发生错误后,tuplestore 数据结构在内部也保持一致
变更
确保即使发生错误后,tuplestore 数据结构在内部也保持一致(Tom Lane)§
此前代码对此不够谨慎,这在大多数时候没有问题,但对于支撑 WITH HOLD 游标的 tuplestore 则有问题。在 v15 及更早版本中,这会导致容易重现的崩溃;目前尚不知道较新分支是否易受影响,但最好在所有分支中保持一致性。
改进让 pg_aios 系统视图的 pid 列在条目没有所属进程时显示 NULL 而不是 0
变更
让 pg_aios 系统视图的 pid 列在条目没有所属进程时显示 NULL 而不是 0(ChangAo Chen)§
问题修复修复 pg_stat_replication 中过早报告 NULL 延迟的问题
变更
修复 pg_stat_replication 中过早报告 NULL 延迟的问题(Shinya Kato)§
即使复制活动正在发生,延迟列也经常读作 NULL。
问题修复修复并行 B-树索引扫描所用共享内存分配不足的问题
变更
修复并行 B-树索引扫描所用共享内存分配不足的问题(Siddharth Kothari)§
在边界情况下,这可能导致服务器崩溃。
改进避免处理不记录 WAL 的 GiST 索引时罕见的刷盘失败
变更
避免处理不记录 WAL 的 GiST 索引时罕见的刷盘失败(Tomas Vondra)§
不记录 WAL 的 GiST 索引有时仍可能产生 “xlog flush request n/nnnn is not satisfied” 错误,原因是错误地选择了一个“假 LSN” 来表示插入点。
问题修复修复对非常规大小的段所需 DSA 页面映射大小的低估问题
变更
修复对非常规大小的段所需 DSA 页面映射大小的低估问题(Paul Bunn)§
此误算导致越界访问,并进而造成服务器崩溃。
问题修复修复共享内存中 oldest-multixact 数组的索引
问题修复修复安装过多 EXPLAIN 扩展选项时的数组越界写
变更
修复安装过多 EXPLAIN 扩展选项时的数组越界写(Joel Jacobson)§
问题修复修复处理扩展数据类型表达式上的扩展统计信息时可能发生的服务器崩溃
变更
修复处理扩展数据类型表达式上的扩展统计信息时可能发生的服务器崩溃(Michael Paquier)§
如果该数据类型的 typanalyze 函数没有计算任何有用的统计信息,就可能发生 NULL 指针解引用。核心内置的 typanalyze 函数都不会这样表现,但扩展可能会如此。
改进正确显示在 GROUP BY 中使用的连接别名 Vars
变更
正确显示在 GROUP BY 中使用的连接别名 Vars(Tom Lane)§
在包含类似 SELECT ... t1 LEFT JOIN t2 USING (x) GROUP BY x 查询的视图中,GROUP BY 子句可能被逆解析错误显示,从而导致导出/恢复失败。只有当 t1.x 和 t2.x 数据类型并不相同,并且 t1.x 是需要隐式强制转换的一侧时,才会发生该失败。
问题修复修复基于 ICU 的字符串处理中轻微的内存泄漏
变更
修复基于 ICU 的字符串处理中轻微的内存泄漏(Jeff Davis)§
改进如果启动进程失败,在 postmaster 退出前正确关闭其他子进程
变更
如果启动进程失败,在 postmaster 退出前正确关闭其他子进程(Ayush Tiwari)§
对此情况的处理依赖于一个早已过时的假定:启动进程运行时不存在其他 postmaster 子进程,因此可以立即退出 postmaster。孤立的子进程最终会注意到 postmaster 已死亡并自行退出,但更干净的关闭过程仍然是可取的。
问题修复修复检查点 WAL 重放与多事务 ID 创建之间的竞态条件
变更
修复检查点 WAL 重放与多事务 ID 创建之间的竞态条件(Heikki Linnakangas)§
跟随来自较旧小版本主库的 WAL 的备库,可能陷入反复崩溃和重启的循环,并抱怨 “could not access status of transaction”。
改进防止 WAL 发送进程关闭时无限期等待
改进确保恢复期间对表空闲空间映射的更改会被持久化
变更
确保恢复期间对表空闲空间映射的更改会被持久化(Alexey Makhmutov)§
此前,在重放应当改变空闲空间映射的操作时,WAL 重放确实会更新该映射;但如果启用了校验和,映射页缓冲区不会被标记为脏,因此这些更改可能永远不会被写出。在备库上,随着时间推移,这会导致映射与表的实际内容严重不符。虽然该映射只作为提示使用,但在备库被提升为活跃服务器后,直到大部分映射被更新修复之前,这种情况可能在一段时间内造成显著性能下降。
问题修复修复某些 ecpg 函数在没有已建立连接的情况下被调用时的崩溃
变更
修复某些 ecpg 函数在没有已建立连接的情况下被调用时的崩溃(Shruthi Gowda)§
改进加固 tar 文件解析逻辑,使其能够防范无法处理的归档
变更
加固 tar 文件解析逻辑,使其能够防范无法处理的归档(Tom Lane)§
pg_basebackup 和 pg_verifybackup 中使用的 tar 文件读取代码,根本没有验证输入是否为 tar 文件,更不用说验证它是否属于我们能够处理的有效 tar 文件子集。对于输入文件由 PostgreSQL 代码生成的常见场景,这不是问题;但如果输入由其他 tar 程序生成,就可能成为问题。
问题修复修复备份解压和 tar 解析代码中的多项错误
改进在 pg_dump 中,保留 NOT NULL 约束的 NO INHERIT 属性
变更
在 pg_dump 中,保留 NOT NULL 约束的 NO INHERIT 属性(Jian He)§
有些情况遗漏了打印 NO INHERIT 子句。
改进在 pg_dumpall 中,不要跳过具有悬挂授权者 OID 的角色 GRANT
变更
在 pg_dumpall 中,不要跳过具有悬挂授权者 OID 的角色 GRANT(Tom Lane)§
作为替代,像 v16 之前那样,通过发出不带任何 GRANTED BY 子句的 GRANT 来处理此类情况。这可以避免在可预见的情况下丢失授权,因为 v16 之前的服务器不会阻止删除授权者角色。继续针对缺失的授权者发出警告,但仅当源服务器为 v16 或更高版本时才这样做。
问题修复在 pg_upgrade 中,连接到较旧源服务器时注意使用正确的协议版本
变更
在 pg_upgrade 中,连接到较旧源服务器时注意使用正确的协议版本(Jacob Champion)§
在尝试从 2018 年以前的服务器升级时,这可能会造成问题。
改进在 contrib/basic_archive 中,允许启动时归档目录不存在
变更
在 contrib/basic_archive 中,允许启动时归档目录不存在(Nathan Bossart)§
此前,如果 basic_archive.archive_directory 的设置没有指向一个已存在的目录,就会被拒绝。这并不理想,因为即使该目录稍后出现,归档也会无限期卡住。
问题修复修复 contrib/ltree,使其能够处理大小写折叠改变字符串字节长度的情况
变更
问题修复修复 contrib/pg_overexplain 的 RANGE_TABLE 选项输出结构错误的问题
变更
修复 contrib/pg_overexplain 的 RANGE_TABLE 选项输出结构错误的问题(Satyanarayana Narlapuram)§
某些字段在 JSON、YAML 和 XML 格式中位置错误,导致输出在结构上无效。
改进在 contrib/pg_stat_statements 中,如果解析 pgss_query_texts.stat 文件时发生错误,不要泄漏内存
变更
在 contrib/pg_stat_statements 中,如果解析 pgss_query_texts.stat 文件时发生错误,不要泄漏内存(Heikki Linnakangas)§
关联记录 (4)
- 相同变化PostgreSQL 17.10 · 在 contrib/pg_stat_statements 中,如果解析 pgss_query_texts.stat 文件时发生错误,不要泄漏内存
- 相同变化PostgreSQL 16.14 · 在 contrib/pg_stat_statements 中,如果解析 pgss_query_texts.stat 文件时发生错误,不要泄漏内存
- 相同变化PostgreSQL 15.18 · 在 contrib/pg_stat_statements 中,如果解析 pgss_query_texts.stat 文件时发生错误,不要泄漏内存
- 相同变化PostgreSQL 14.23 · 在 contrib/pg_stat_statements 中,如果解析 pgss_query_texts.stat 文件时发生错误,不要泄漏内存
问题修复在 contrib/postgres_fdw 中,避免因过早清理失败连接而崩溃
变更
在 contrib/postgres_fdw 中,避免因过早清理失败连接而崩溃(Etsuro Fujita)§
如果远程连接的中止清理失败,我们就不能再使用它。但要将关闭连接对象延迟到事务结束时执行,因为打开的游标等数据结构中可能仍有对它的引用。
改进将时区数据文件更新到 tzdata 2026b 发布版本
变更
将时区数据文件更新到 tzdata 2026b 发布版本(Tom Lane)§
British Columbia(America/Vancouver)将从 2026 年 11 月开始全年采用 UTC-07(实际上就是永久 DST)。本次发布假定其 TZ 缩写从那时起为 MST。这看起来可能会改变,但尚不清楚会使用什么新缩写。另外还有一项针对 Moldova 的历史修正:自 2022 年以来,他们一直遵循 EU 的 DST 转换时间。
没有匹配的变化
尝试其他关键词,或 .
如何生成比较结果?
比较依据起始版本之后至目标版本的 PostgreSQL 发布说明。经核实的回补重复项会谨慎合并,保留每条原始说明;相关提交可能涉及独立变化,仍作为不同记录保留。
发布快照: 2026-09-26 · 安全快照: 2026-09-26
内容来自 PostgreSQL 发布说明。交互方式参考 pgversions.com 与 pgversionreport.