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

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

视图上组合两个特性会让 PG19 解引用空指针 RSS

在视图上同时用 FOR PORTION OF 更新和 INSTEAD OF 触发器,会让 PostgreSQL 19 解引用空指针。修法是禁掉这个组合,争的是该在哪一步拦:解析、重写还是执行。Paul Jungwirth 起初认为解析阶段够用,因为 relcache 失效会强制重新解析;Tom Lane 纠正说视图是以重写规则的形式存在磁盘上的,后续重写并不会触发重新解析。Paul 随后用测试验证了解析阶段拦截会让服务器崩溃,重写和执行阶段都能正确挡住。

发布于 2026-09-10T10:59:45.445857Z · Paul Jungwirth · PostgreSQL hackers
崩溃 视图

在视图上同时用 FOR PORTION OF 更新和 INSTEAD OF 触发器,会让 PostgreSQL 19 解引用空指针。修法是禁掉这个组合,争的是该在哪一步拦:解析、重写还是执行。Paul Jungwirth 起初认为解析阶段够用,因为 relcache 失效会强制重新解析;Tom Lane 纠正说视图是以重写规则的形式存在磁盘上的,后续重写并不会触发重新解析。Paul 随后用测试验证了解析阶段拦截会让服务器崩溃,重写和执行阶段都能正确挡住。

在视图上同时用 FOR PORTION OF 更新和 INSTEAD OF 触发器,会让 PostgreSQL 19 解引用空指针。修法是禁掉这个组合,争的是该在哪一步拦:解析、重写还是执行。Paul Jungwirth 起初认为解析阶段够用,因为 relcache 失效会强制重新解析;Tom Lane 纠正说视图是以重写规则的形式存在磁盘上的,后续重写并不会触发重新解析。Paul 随后用测试验证了解析阶段拦截会让服务器崩溃,重写和执行阶段都能正确挡住。

原始来源 ↗

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