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 93081b95154 [opt](Nereids) support drop statement syntax in Nereids (#39506) 93081b95154 is described below commit 93081b9515449e6b4b2f1784f19bd33539c8f748 Author: morrySnow <101034200+morrys...@users.noreply.github.com> AuthorDate: Wed Aug 21 10:39:46 2024 +0800 [opt](Nereids) support drop statement syntax in Nereids (#39506) --- .../antlr4/org/apache/doris/nereids/DorisParser.g4 | 40 ++++++++++++++++++++-- .../apache/doris/analysis/DropAnalyzeJobStmt.java | 2 +- .../apache/doris/analysis/DropCachedStatsStmt.java | 2 +- .../org/apache/doris/analysis/DropCatalogStmt.java | 2 +- .../java/org/apache/doris/analysis/DropDbStmt.java | 2 +- .../apache/doris/analysis/DropEncryptKeyStmt.java | 2 +- .../org/apache/doris/analysis/DropFileStmt.java | 2 +- .../apache/doris/analysis/DropFunctionStmt.java | 2 +- .../doris/analysis/DropMaterializedViewStmt.java | 2 +- .../org/apache/doris/analysis/DropPolicyStmt.java | 2 +- .../apache/doris/analysis/DropRepositoryStmt.java | 2 +- .../apache/doris/analysis/DropResourceStmt.java | 2 +- .../org/apache/doris/analysis/DropRoleStmt.java | 2 +- .../doris/analysis/DropSqlBlockRuleStmt.java | 2 +- .../org/apache/doris/analysis/DropStageStmt.java | 2 +- .../org/apache/doris/analysis/DropStatsStmt.java | 2 +- .../org/apache/doris/analysis/DropTableStmt.java | 2 +- .../doris/analysis/DropWorkloadGroupStmt.java | 2 +- .../analysis/DropWorkloadSchedPolicyStmt.java | 2 +- .../doris/nereids/parser/LogicalPlanBuilder.java | 6 +++- 20 files changed, 60 insertions(+), 22 deletions(-) diff --git a/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4 b/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4 index f5e453ab4a1..cdb27daf9e0 100644 --- a/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4 +++ b/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4 @@ -62,6 +62,8 @@ unsupportedStatement | unsupportedKillStatement | unsupportedDescribeStatement | unsupportedCreateStatement + | unsupportedDropStatement + | unsupportedStatsStatement ; materailizedViewStatement @@ -80,7 +82,8 @@ materailizedViewStatement | (REFRESH (refreshMethod | refreshTrigger | refreshMethod refreshTrigger)) | REPLACE WITH MATERIALIZED VIEW newName=identifier propertyClause? | (SET LEFT_PAREN fileProperties=propertyItemList RIGHT_PAREN)) #alterMTMV - | DROP MATERIALIZED VIEW (IF EXISTS)? mvName=multipartIdentifier #dropMTMV + | DROP MATERIALIZED VIEW (IF EXISTS)? mvName=multipartIdentifier + (ON tableName=multipartIdentifier)? #dropMTMV | PAUSE MATERIALIZED VIEW JOB ON mvName=multipartIdentifier #pauseMTMV | RESUME MATERIALIZED VIEW JOB ON mvName=multipartIdentifier #resumeMTMV | CANCEL MATERIALIZED VIEW TASK taskId=INTEGER_VALUE ON mvName=multipartIdentifier #cancelMTMVTask @@ -164,6 +167,39 @@ supportedDropStatement : DROP CATALOG RECYCLE BIN WHERE idType=STRING_LITERAL EQ id=INTEGER_VALUE #dropCatalogRecycleBin ; +unsupportedDropStatement + : DROP (DATABASE | SCHEMA) (IF EXISTS)? name=multipartIdentifier FORCE? #dropDatabase + | DROP CATALOG (IF EXISTS)? name=identifier #dropCatalog + | DROP (GLOBAL | SESSION | LOCAL)? FUNCTION (IF EXISTS)? + functionIdentifier LEFT_PAREN functionArguments? RIGHT_PAREN #dropFunction + | DROP TABLE (IF EXISTS)? name=multipartIdentifier FORCE? #dropTable + | DROP USER (IF EXISTS)? userIdentify #dropUser + | DROP VIEW (IF EXISTS)? name=multipartIdentifier #dropView + | DROP REPOSITORY name=identifier #dropRepository + | DROP ROLE (IF EXISTS)? name=identifier #dropRole + | DROP FILE name=STRING_LITERAL + ((FROM | IN) database=identifier)? properties=propertyClause #dropFile + | DROP INDEX (IF EXISTS)? name=identifier ON tableName=multipartIdentifier #dropIndex + | DROP RESOURCE (IF EXISTS)? name=identifierOrText #dropResource + | DROP WORKLOAD GROUP (IF EXISTS)? name=identifierOrText #dropWorkloadGroup + | DROP WORKLOAD POLICY (IF EXISTS)? name=identifierOrText #dropWorkloadPolicy + | DROP ENCRYPTKEY (IF EXISTS)? name=multipartIdentifier #dropEncryptkey + | DROP SQL_BLOCK_RULE (IF EXISTS)? identifierSeq #dropSqlBlockRule + | DROP ROW POLICY (IF EXISTS)? policyName=identifier + ON tableName=multipartIdentifier + (FOR (userIdentify | ROLE roleName=identifier))? #dropRowPolicy + | DROP STORAGE POLICY (IF EXISTS)? name=identifier #dropStoragePolicy + | DROP STAGE (IF EXISTS)? name=identifier #dropStage + ; + +unsupportedStatsStatement + : DROP STATS tableName=multipartIdentifier + columns=identifierList? partitionSpec? #dropStats + | DROP CACHED STATS tableName=multipartIdentifier #dropCachedStats + | DROP EXPIRED STATS #dropExpiredStats + | DROP ANALYZE JOB INTEGER_VALUE #dropAanalyzeJob + ; + unsupportedCreateStatement : CREATE (DATABASE | SCHEMA) (IF NOT EXISTS)? name=multipartIdentifier properties=propertyClause? #createDatabase @@ -265,8 +301,6 @@ functionArgument | dataType ; - - unsupportedSetStatement : SET (optionWithType | optionWithoutType) (COMMA (optionWithType | optionWithoutType))* #setOptions diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropAnalyzeJobStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropAnalyzeJobStmt.java index 04562476687..c26252f8f8e 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropAnalyzeJobStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropAnalyzeJobStmt.java @@ -20,7 +20,7 @@ package org.apache.doris.analysis; /** * DROP ANALYZE JOB [JOB_ID] */ -public class DropAnalyzeJobStmt extends DdlStmt { +public class DropAnalyzeJobStmt extends DdlStmt implements NotFallbackInParser { private final long jobId; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropCachedStatsStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropCachedStatsStmt.java index c772c17e121..117c0a2e292 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropCachedStatsStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropCachedStatsStmt.java @@ -34,7 +34,7 @@ import org.apache.doris.qe.ConnectContext; * syntax: * DROP CACHED STATS TableName; */ -public class DropCachedStatsStmt extends DdlStmt { +public class DropCachedStatsStmt extends DdlStmt implements NotFallbackInParser { private final TableName tableName; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropCatalogStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropCatalogStmt.java index 7043066fc47..a9679583698 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropCatalogStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropCatalogStmt.java @@ -30,7 +30,7 @@ import org.apache.doris.qe.ConnectContext; /** * Statement for drop a catalog. */ -public class DropCatalogStmt extends DdlStmt { +public class DropCatalogStmt extends DdlStmt implements NotFallbackInParser { private final boolean ifExists; private final String catalogName; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropDbStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropDbStmt.java index 7ce85a29902..2715bd1f6da 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropDbStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropDbStmt.java @@ -32,7 +32,7 @@ import com.google.common.base.Strings; import org.apache.commons.lang3.StringUtils; // DROP DB表达式 -public class DropDbStmt extends DdlStmt { +public class DropDbStmt extends DdlStmt implements NotFallbackInParser { private boolean ifExists; private String ctlName; private String dbName; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropEncryptKeyStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropEncryptKeyStmt.java index 542f67b029d..d29aba609e5 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropEncryptKeyStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropEncryptKeyStmt.java @@ -25,7 +25,7 @@ import org.apache.doris.common.UserException; import org.apache.doris.mysql.privilege.PrivPredicate; import org.apache.doris.qe.ConnectContext; -public class DropEncryptKeyStmt extends DdlStmt { +public class DropEncryptKeyStmt extends DdlStmt implements NotFallbackInParser { private final boolean ifExists; private final EncryptKeyName encryptKeyName; private EncryptKeySearchDesc encryptKeySearchDesc; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropFileStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropFileStmt.java index 048498050bc..94bdaf463e1 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropFileStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropFileStmt.java @@ -31,7 +31,7 @@ import com.google.common.base.Strings; import java.util.Map; import java.util.Optional; -public class DropFileStmt extends DdlStmt { +public class DropFileStmt extends DdlStmt implements NotFallbackInParser { public static final String PROP_CATALOG = "catalog"; private String fileName; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropFunctionStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropFunctionStmt.java index de4b5576cd1..0f1b637c23f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropFunctionStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropFunctionStmt.java @@ -27,7 +27,7 @@ import org.apache.doris.qe.ConnectContext; import com.google.common.base.Joiner; -public class DropFunctionStmt extends DdlStmt { +public class DropFunctionStmt extends DdlStmt implements NotFallbackInParser { private final boolean ifExists; private final FunctionName functionName; private final FunctionArgsDef argsDef; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropMaterializedViewStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropMaterializedViewStmt.java index 28db2575277..0b9df72ed6d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropMaterializedViewStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropMaterializedViewStmt.java @@ -37,7 +37,7 @@ import com.google.common.base.Strings; * db_name: The name of db to which materialized view belongs. * table_name: The name of table to which materialized view belongs. */ -public class DropMaterializedViewStmt extends DdlStmt { +public class DropMaterializedViewStmt extends DdlStmt implements NotFallbackInParser { private String mvName; private TableName tableName; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropPolicyStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropPolicyStmt.java index 85560a08f0d..6a4514f43bf 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropPolicyStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropPolicyStmt.java @@ -35,7 +35,7 @@ import org.apache.commons.lang3.StringUtils; * DROP [ROW] POLICY [IF EXISTS] test_row_policy ON test_table [FOR user|ROLE role] **/ @AllArgsConstructor -public class DropPolicyStmt extends DdlStmt { +public class DropPolicyStmt extends DdlStmt implements NotFallbackInParser { @Getter private final PolicyTypeEnum type; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropRepositoryStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropRepositoryStmt.java index 036d2b606d3..2375c5181b8 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropRepositoryStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropRepositoryStmt.java @@ -24,7 +24,7 @@ import org.apache.doris.common.UserException; import org.apache.doris.mysql.privilege.PrivPredicate; import org.apache.doris.qe.ConnectContext; -public class DropRepositoryStmt extends DdlStmt { +public class DropRepositoryStmt extends DdlStmt implements NotFallbackInParser { private String repoName; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropResourceStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropResourceStmt.java index 10744acceec..9f7709bc3bd 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropResourceStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropResourceStmt.java @@ -26,7 +26,7 @@ import org.apache.doris.mysql.privilege.PrivPredicate; import org.apache.doris.qe.ConnectContext; // DROP RESOURCE resource_name -public class DropResourceStmt extends DdlStmt { +public class DropResourceStmt extends DdlStmt implements NotFallbackInParser { private boolean ifExists; private String resourceName; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropRoleStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropRoleStmt.java index e27dc4705ea..db9d9b5a2e1 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropRoleStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropRoleStmt.java @@ -27,7 +27,7 @@ import org.apache.doris.common.UserException; import org.apache.doris.mysql.privilege.PrivPredicate; import org.apache.doris.qe.ConnectContext; -public class DropRoleStmt extends DdlStmt { +public class DropRoleStmt extends DdlStmt implements NotFallbackInParser { private boolean ifExists; private String role; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropSqlBlockRuleStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropSqlBlockRuleStmt.java index 11dccab6577..90e4eefc653 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropSqlBlockRuleStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropSqlBlockRuleStmt.java @@ -30,7 +30,7 @@ import lombok.Getter; import java.util.List; @Getter -public class DropSqlBlockRuleStmt extends DdlStmt { +public class DropSqlBlockRuleStmt extends DdlStmt implements NotFallbackInParser { private boolean ifExists; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropStageStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropStageStmt.java index 35550c5c6cd..6f9a60db8e4 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropStageStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropStageStmt.java @@ -28,7 +28,7 @@ import lombok.Getter; * DROP STAGE [IF EXISTS] stage_name **/ @AllArgsConstructor -public class DropStageStmt extends DdlStmt { +public class DropStageStmt extends DdlStmt implements NotFallbackInParser { @Getter private final boolean ifExists; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropStatsStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropStatsStmt.java index 3689af25cda..39af28fc21f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropStatsStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropStatsStmt.java @@ -42,7 +42,7 @@ import java.util.Set; * syntax: * DROP [EXPIRED] STATS [TableName [PARTITIONS(partitionNames)]]; */ -public class DropStatsStmt extends DdlStmt { +public class DropStatsStmt extends DdlStmt implements NotFallbackInParser { public static final int MAX_IN_ELEMENT_TO_DELETE = 100; public final boolean dropExpired; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropTableStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropTableStmt.java index d9a266fdf11..5e06fce75ee 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropTableStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropTableStmt.java @@ -28,7 +28,7 @@ import org.apache.doris.qe.ConnectContext; import com.google.common.base.Strings; // DROP TABLE -public class DropTableStmt extends DdlStmt { +public class DropTableStmt extends DdlStmt implements NotFallbackInParser { private boolean ifExists; private final TableName tableName; private final boolean isView; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropWorkloadGroupStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropWorkloadGroupStmt.java index 1137224c12e..e4e3055f128 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropWorkloadGroupStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropWorkloadGroupStmt.java @@ -25,7 +25,7 @@ import org.apache.doris.common.UserException; import org.apache.doris.mysql.privilege.PrivPredicate; import org.apache.doris.qe.ConnectContext; -public class DropWorkloadGroupStmt extends DdlStmt { +public class DropWorkloadGroupStmt extends DdlStmt implements NotFallbackInParser { private boolean ifExists; private String workloadGroupName; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropWorkloadSchedPolicyStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropWorkloadSchedPolicyStmt.java index fae534f51f6..4f6a4945f58 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DropWorkloadSchedPolicyStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DropWorkloadSchedPolicyStmt.java @@ -25,7 +25,7 @@ import org.apache.doris.common.UserException; import org.apache.doris.mysql.privilege.PrivPredicate; import org.apache.doris.qe.ConnectContext; -public class DropWorkloadSchedPolicyStmt extends DdlStmt { +public class DropWorkloadSchedPolicyStmt extends DdlStmt implements NotFallbackInParser { private boolean ifExists; private String policyName; diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java index 277c00aa00a..92aa6d4d774 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java @@ -813,7 +813,11 @@ public class LogicalPlanBuilder extends DorisParserBaseVisitor<Object> { } @Override - public DropMTMVCommand visitDropMTMV(DropMTMVContext ctx) { + public Command visitDropMTMV(DropMTMVContext ctx) { + if (ctx.tableName != null) { + // TODO support drop sync mv + return new UnsupportedCommand(); + } List<String> nameParts = visitMultipartIdentifier(ctx.mvName); return new DropMTMVCommand(new DropMTMVInfo(new TableNameInfo(nameParts), ctx.EXISTS() != null)); } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org