Doris 2.1.6 SQL_BLOCK_RULE 命中后错误信息不正确,显示为未知列错误而非规则拦截提示

Viewed 4

问题现象:
在 Doris 2.1.6 集群中,为视图 bi_view.xxxxxx_di创建并启用了一条 SQL_BLOCK_RULE 规则 rule_0001,该规则设置了 cardinality(基数)为 30000000000。
当执行一个本应命中此规则的查询(例如:select app_id from ... limit 10;)时,Doris 前端返回的错误信息不是预期的如 "Query blocked by SQL_BLOCK_RULE: rule_0001"之类的提示,而是一个 ERROR 1054 (42S22): Unknown column 'prdid' in 'bi_rtd.a'。
关键点在于,错误类型不符:
用户期望的是规则拦截的提示,但实际得到的是“SQL解析/语义分析错误”。错误信息具有误导性:
错误信息指向一个不存在的列 'prdid'和表 'bi_rtd.a',这与原始查询中的表、列完全不符,会严重误导开发者去检查不相关的 SQL 语法或表结构,而忽视了真正的原因是规则拦截。

问题如图:
image.png

0 Answers