diff --git a/fe/fe-core/src/main/java/org/apache/doris/blockrule/SqlBlockRuleMgr.java b/fe/fe-core/src/main/java/org/apache/doris/blockrule/SqlBlockRuleMgr.java index 13df2eb9377b17..ff64c1999b80d8 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/blockrule/SqlBlockRuleMgr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/blockrule/SqlBlockRuleMgr.java @@ -47,6 +47,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.locks.ReentrantReadWriteLock; +import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -169,6 +170,7 @@ public void alterSqlBlockRule(AlterSqlBlockRuleStmt stmt) throws AnalysisExcepti if (sqlBlockRule.getEnable() == null) { sqlBlockRule.setEnable(originRule.getEnable()); } + sqlBlockRule.setSqlPattern(Pattern.compile(sqlBlockRule.getSql())); verifyLimitations(sqlBlockRule); SqlBlockUtil.checkAlterValidate(sqlBlockRule); diff --git a/regression-test/suites/sql_block_rule_p0/test_sql_block_rule.groovy b/regression-test/suites/sql_block_rule_p0/test_sql_block_rule.groovy index 651ee946bd92bb..2864305d25aea1 100644 --- a/regression-test/suites/sql_block_rule_p0/test_sql_block_rule.groovy +++ b/regression-test/suites/sql_block_rule_p0/test_sql_block_rule.groovy @@ -248,4 +248,17 @@ suite("test_sql_block_rule", "nonConcurrent") { """ } + multi_sql """ + drop SQL_BLOCK_RULE if exists rule_drop_r; + + CREATE SQL_BLOCK_RULE rule_drop + PROPERTIES( + "sql"="select \\* from order_analysis", + "global"="true", + "enable"="true"); + + ALTER SQL_BLOCK_RULE rule_drop PROPERTIES("global"="true"); + + select NULL; + """ }