发布于 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