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

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

PG19 外键快速路径的批处理修复被指不彻底 RSS

PostgreSQL 19 为外键检查加了快速路径,批量操作下暴露出越界写入和漏掉约束检查的问题,提交 4113873 的做法是把批处理限制在顶层事务。Noah Misch 反对这个修法:用到 SAVEPOINT 时会带来约 1.6 倍的性能回退,也偏离了按子事务跟踪资源的惯例,代码并未变简单。他主张改成按子事务跟踪批处理来源,并指出 AfterTriggerEndSubXact() 没有重置 firing_depth,捕获触发器错误后外键校验可能被错误路由。

发布于 2026-09-10T10:59:45.140371Z · Noah Misch · PostgreSQL hackers
外键 子事务 缺陷

PostgreSQL 19 为外键检查加了快速路径,批量操作下暴露出越界写入和漏掉约束检查的问题,提交 4113873 的做法是把批处理限制在顶层事务。Noah Misch 反对这个修法:用到 SAVEPOINT 时会带来约 1.6 倍的性能回退,也偏离了按子事务跟踪资源的惯例,代码并未变简单。他主张改成按子事务跟踪批处理来源,并指出 AfterTriggerEndSubXact() 没有重置 firing_depth,捕获触发器错误后外键校验可能被错误路由。

PostgreSQL 19 为外键检查加了快速路径,批量操作下暴露出越界写入和漏掉约束检查的问题,提交 4113873 的做法是把批处理限制在顶层事务。Noah Misch 反对这个修法:用到 SAVEPOINT 时会带来约 1.6 倍的性能回退,也偏离了按子事务跟踪资源的惯例,代码并未变简单。他主张改成按子事务跟踪批处理来源,并指出 AfterTriggerEndSubXact() 没有重置 firing_depth,捕获触发器错误后外键校验可能被错误路由。

原始来源 ↗

来源记录
  • center.info_item · 6b8043c3d846803b · 2026-10-03T04:08:35.169032Z
  • pgweb.info_item · 6b8043c3d846803b · 2026-10-03T04:08:55.967155Z