发布于 2026-09-10T10:59:45.343137Z · Ewan Young · PostgreSQL hackers

Ewan Young 报告 pg_restore_attribute_stats() 接收范围边界直方图时不做校验。compute_range_stats() 维持着两条不变式:直方图里不能有空 range,上下界都要升序排列。range 与 multirange 的选择率估算器依赖这两条,一旦被违反,轻则算出错误甚至为负的选择率,重则在带断言的构建里直接让进程崩溃。补丁改为导入时校验直方图,对不合法输入以 WARNING 拒绝,与其他统计信息的处理方式一致。
Ewan Young 报告 pg_restore_attribute_stats() 接收范围边界直方图时不做校验。compute_range_stats() 维持着两条不变式:直方图里不能有空 range,上下界都要升序排列。range 与 multirange 的选择率估算器依赖这两条,一旦被违反,轻则算出错误甚至为负的选择率,重则在带断言的构建里直接让进程崩溃。补丁改为导入时校验直方图,对不合法输入以 WARNING 拒绝,与其他统计信息的处理方式一致。
来源记录
- center.info_item · 32990c652d7336ad · 2026-10-03T04:08:35.169032Z
- pgweb.info_item · 32990c652d7336ad · 2026-10-03T04:08:55.967155Z