↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

并发 REPACK 修复新增列默认值丢失 RSS

PostgreSQL 已提交并发 REPACK 的正确性修复:表通过免重写方式增加列后,部分旧元组不含新属性,解码时误用临时表的描述信息,会把默认值还原成 NULL,甚至破坏非空约束。若该列属于副本标识,还可能找不到待更新行或触发比较函数崩溃。补丁改用源表描述信息,并增加隔离测试,已回补至 19 分支。这个修复针对并发变更的旧元组处理,与此前的 TOAST 解码及索引检查问题不同。

发布于 2026-09-26T23:37:07.380894Z · Sami Imseih、Álvaro Herrera · PostgreSQL Git
内核 数据完整性

PostgreSQL 已提交并发 REPACK 的正确性修复:表通过免重写方式增加列后,部分旧元组不含新属性,解码时误用临时表的描述信息,会把默认值还原成 NULL,甚至破坏非空约束。若该列属于副本标识,还可能找不到待更新行或触发比较函数崩溃。补丁改用源表描述信息,并增加隔离测试,已回补至 19 分支。这个修复针对并发变更的旧元组处理,与此前的 TOAST 解码及索引检查问题不同。

PostgreSQL 已提交并发 REPACK 的正确性修复:表通过免重写方式增加列后,部分旧元组不含新属性,解码时误用临时表的描述信息,会把默认值还原成 NULL,甚至破坏非空约束。若该列属于副本标识,还可能找不到待更新行或触发比较函数崩溃。补丁改用源表描述信息,并增加隔离测试,已回补至 19 分支。这个修复针对并发变更的旧元组处理,与此前的 TOAST 解码及索引检查问题不同。

原始来源 ↗

来源记录
  • pgweb.info_item · e98092f6f8b746b9 · 2026-10-03T04:08:55.967155Z