This is an automated email from the ASF dual-hosted git repository.

morrysnow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 166b9944e78 [Fix](nereids) add checkBlockRules() check for create view 
and alter view (#34104)
166b9944e78 is described below

commit 166b9944e785644b0320e9ee6ca5ad86e1f13b24
Author: feiniaofeiafei <[email protected]>
AuthorDate: Thu May 23 18:04:19 2024 +0800

    [Fix](nereids) add checkBlockRules() check for create view and alter view 
(#34104)
---
 .../trees/plans/commands/AlterViewCommand.java     |  1 +
 .../trees/plans/commands/CreateViewCommand.java    |  1 +
 .../sql_block_rule_p0/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 ebcbe280532..3a2b551d9bf 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 25cd171959d..a6698bc1f69 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 53ea9a87d4e..14924ed7bb7 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;
+        """
+    }
 
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to