From bd4dd94c247500960d97c722509e8f759918a94a Mon Sep 17 00:00:00 2001 From: feiniaofeiafei <53502832+feiniaofeiafei@users.noreply.github.com> Date: Thu, 23 May 2024 18:04:19 +0800 Subject: [PATCH] [Fix](nereids) add checkBlockRules() check for create view and alter view (#34104) --- .../plans/commands/AlterViewCommand.java | 1 + .../plans/commands/CreateViewCommand.java | 1 + .../test_sql_block_rule.groovy | 30 +++++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/AlterViewCommand.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/AlterViewCommand.java index ebcbe28053..3a2b551d9b 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/AlterViewCommand.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/AlterViewCommand.java @@ -36,6 +36,7 @@ public class AlterViewCommand extends Command implements ForwardWithSync { @Override public void run(ConnectContext ctx, StmtExecutor executor) throws Exception { + executor.checkBlockRules(); alterViewInfo.init(ctx); alterViewInfo.validate(ctx); AlterViewStmt alterViewStmt = alterViewInfo.translateToLegacyStmt(ctx); diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/CreateViewCommand.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/CreateViewCommand.java index 25cd171959..a6698bc1f6 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/CreateViewCommand.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/CreateViewCommand.java @@ -36,6 +36,7 @@ public class CreateViewCommand extends Command implements ForwardWithSync { @Override public void run(ConnectContext ctx, StmtExecutor executor) throws Exception { + executor.checkBlockRules(); createViewInfo.init(ctx); createViewInfo.validate(ctx); CreateViewStmt createViewStmt = createViewInfo.translateToLegacyStmt(ctx); 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 53ea9a87d4..14924ed7bb 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 @@ -216,5 +216,35 @@ suite("test_sql_block_rule", "nonConcurrent") { """ } + sql """ + CREATE SQL_BLOCK_RULE if not exists test_rule_create_view PROPERTIES ( "sql"="create view", "global" = "true", + "enable"="true"); + """ + try { + test { + sql("""create view table_test_rule_create_view as select 1 """, false) + exception """sql match regex sql block rule: test_rule_create_view""" + } + } finally { + sql """ + drop SQL_BLOCK_RULE if exists test_rule_create_view; + """ + } + + sql """ + CREATE SQL_BLOCK_RULE if not exists test_rule_alter_view PROPERTIES ( "sql"="alter view", "global" = "true", + "enable"="true"); + """ + sql "create view table_test_rule_alter_view as select 2" + try { + test { + sql("""alter view table_test_rule_alter_view as select 1""", false) + exception """sql match regex sql block rule: test_rule_alter_view""" + } + } finally { + sql """ + drop SQL_BLOCK_RULE if exists test_rule_alter_view; + """ + } }