This is an automated email from the ASF dual-hosted git repository. dataroaring pushed a commit to branch branch-3.0 in repository https://gitbox.apache.org/repos/asf/doris.git
commit 28eb81cdda703ffdddc37e7b199d7c63a735b1e6 Author: morrySnow <101034200+morrys...@users.noreply.github.com> AuthorDate: Fri Aug 30 14:16:09 2024 +0800 [opt](Nereids) support some statements syntax (#40151) - copy into - backup - help - install plugin - uninstall plugin - lock tables - unlock tables - recover - start transaction --- .../antlr4/org/apache/doris/nereids/DorisParser.g4 | 46 +++++++++++++++++++++- .../java/org/apache/doris/analysis/BackupStmt.java | 2 +- .../java/org/apache/doris/analysis/CopyStmt.java | 2 +- .../java/org/apache/doris/analysis/HelpStmt.java | 2 +- .../apache/doris/analysis/InstallPluginStmt.java | 2 +- .../org/apache/doris/analysis/LockTablesStmt.java | 2 +- .../org/apache/doris/analysis/RecoverDbStmt.java | 2 +- .../doris/analysis/RecoverPartitionStmt.java | 2 +- .../apache/doris/analysis/RecoverTableStmt.java | 2 +- .../org/apache/doris/analysis/RestoreStmt.java | 2 +- .../apache/doris/analysis/UninstallPluginStmt.java | 2 +- .../apache/doris/analysis/UnlockTablesStmt.java | 2 +- .../org/apache/doris/analysis/UnsupportedStmt.java | 2 +- .../apache/doris/analysis/WarmUpClusterStmt.java | 2 +- 14 files changed, 58 insertions(+), 14 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 c8030895f38..c2feafe97f2 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 @@ -69,6 +69,8 @@ unsupportedStatement | unsupportedGrantRevokeStatement | unsupportedAdminStatement | unsupportedTransactionStatement + | unsupportedRecoverStatement + | unsupportedOtherStatement ; materailizedViewStatement @@ -172,6 +174,40 @@ supportedDropStatement : DROP CATALOG RECYCLE BIN WHERE idType=STRING_LITERAL EQ id=INTEGER_VALUE #dropCatalogRecycleBin ; +unsupportedOtherStatement + : HELP mark=identifierOrText #help + | INSTALL PLUGIN FROM source=identifierOrText properties=propertyClause? #installPlugin + | UNINSTALL PLUGIN name=identifierOrText #uninstallPlugin + | LOCK TABLES (lockTable (COMMA lockTable)*)? #lockTables + | UNLOCK TABLES #unlockTables + | WARM UP CLUSTER destination=identifier WITH + (CLUSTER source=identifier | (warmUpItem (COMMA warmUpItem)*)) FORCE? #warmUpCluster + | BACKUP SNAPSHOT label=multipartIdentifier TO repo=identifier + ((ON | EXCLUDE) LEFT_PAREN baseTableRef (COMMA baseTableRef)* RIGHT_PAREN)? + properties=propertyClause? #backup + | RESTORE SNAPSHOT label=multipartIdentifier FROM repo=identifier + ((ON | EXCLUDE) LEFT_PAREN baseTableRef (COMMA baseTableRef)* RIGHT_PAREN)? + properties=propertyClause? #restore + | START TRANSACTION (WITH CONSISTENT SNAPSHOT)? #unsupportedStartTransaction + ; + +warmUpItem + : TABLE tableName=multipartIdentifier (PARTITION partitionName=identifier)? + ; + +lockTable + : name=multipartIdentifier (AS alias=identifierOrText)? + (READ (LOCAL)? | (LOW_PRIORITY)? WRITE) + ; + +unsupportedRecoverStatement + : RECOVER DATABASE name=identifier id=INTEGER_VALUE? (AS alias=identifier)? #recoverDatabase + | RECOVER TABLE name=multipartIdentifier + id=INTEGER_VALUE? (AS alias=identifier)? #recoverTable + | RECOVER PARTITION name=identifier id=INTEGER_VALUE? (AS alias=identifier)? + FROM tableName=multipartIdentifier #recoverPartition + ; + unsupportedAdminStatement : ADMIN SHOW REPLICA STATUS FROM baseTableRef wildWhere? #adminShowReplicaStatus | ADMIN SHOW REPLICA DISTRIBUTION FROM baseTableRef #adminShowReplicaDistribution @@ -551,7 +587,15 @@ unsupportedUseStatement ; unsupportedDmlStatement - : TRUNCATE TABLE multipartIdentifier specifiedPartition? # truncateTable + : TRUNCATE TABLE multipartIdentifier specifiedPartition? #truncateTable + | COPY INTO selectHint? name=multipartIdentifier columns=identifierList FROM + (stageAndPattern | (LEFT_PAREN SELECT selectColumnClause + FROM stageAndPattern whereClause RIGHT_PAREN)) + properties=propertyClause? #copyInto + ; + +stageAndPattern + : AT (stage=identifier | TILDE) (pattern=STRING_LITERAL)? ; unsupportedKillStatement diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/BackupStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/BackupStmt.java index 84b3171c2c1..445db611570 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/BackupStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/BackupStmt.java @@ -27,7 +27,7 @@ import com.google.common.collect.Maps; import java.util.Map; -public class BackupStmt extends AbstractBackupStmt { +public class BackupStmt extends AbstractBackupStmt implements NotFallbackInParser { private static final String PROP_TYPE = "type"; public static final String PROP_CONTENT = "content"; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/CopyStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/CopyStmt.java index 80ba68ac575..db94c106072 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CopyStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CopyStmt.java @@ -51,7 +51,7 @@ import java.util.Map; /** * Copy statement */ -public class CopyStmt extends DdlStmt { +public class CopyStmt extends DdlStmt implements NotFallbackInParser { private static final Logger LOG = LogManager.getLogger(CopyStmt.class); private static final ShowResultSetMetaData COPY_INTO_META_DATA = diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/HelpStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/HelpStmt.java index c44687ac615..f4c75ab48fd 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/HelpStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/HelpStmt.java @@ -24,7 +24,7 @@ import org.apache.doris.qe.ShowResultSetMetaData; import com.google.common.base.Strings; -public class HelpStmt extends ShowStmt { +public class HelpStmt extends ShowStmt implements NotFallbackInParser { private static final ShowResultSetMetaData TOPIC_META_DATA = ShowResultSetMetaData.builder() .addColumn(new Column("name", ScalarType.createVarchar(64))) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/InstallPluginStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/InstallPluginStmt.java index 3d5db0c8840..ef625052107 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/InstallPluginStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/InstallPluginStmt.java @@ -29,7 +29,7 @@ import org.apache.doris.qe.ConnectContext; import java.util.Map; -public class InstallPluginStmt extends DdlStmt { +public class InstallPluginStmt extends DdlStmt implements NotFallbackInParser { private String pluginPath; private Map<String, String> properties; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/LockTablesStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/LockTablesStmt.java index 803d52bf3fb..0f618667ebc 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/LockTablesStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/LockTablesStmt.java @@ -31,7 +31,7 @@ import org.apache.logging.log4j.Logger; import java.util.ArrayList; import java.util.List; -public class LockTablesStmt extends StatementBase { +public class LockTablesStmt extends StatementBase implements NotFallbackInParser { private static final Logger LOG = LogManager.getLogger(LockTablesStmt.class); private List<LockTable> lockTables; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/RecoverDbStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/RecoverDbStmt.java index cfb4ecf4087..ef2805b0d9a 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/RecoverDbStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/RecoverDbStmt.java @@ -28,7 +28,7 @@ import org.apache.doris.qe.ConnectContext; import com.google.common.base.Strings; -public class RecoverDbStmt extends DdlStmt { +public class RecoverDbStmt extends DdlStmt implements NotFallbackInParser { private String dbName; private long dbId = -1; private String newDbName = ""; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/RecoverPartitionStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/RecoverPartitionStmt.java index 05db7a81e83..def1b57f1b8 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/RecoverPartitionStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/RecoverPartitionStmt.java @@ -28,7 +28,7 @@ import org.apache.doris.qe.ConnectContext; import com.google.common.base.Strings; -public class RecoverPartitionStmt extends DdlStmt { +public class RecoverPartitionStmt extends DdlStmt implements NotFallbackInParser { private TableName dbTblName; private String partitionName; private long partitionId = -1; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/RecoverTableStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/RecoverTableStmt.java index 56dfbbfc2c7..978a17dcd06 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/RecoverTableStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/RecoverTableStmt.java @@ -28,7 +28,7 @@ import org.apache.doris.qe.ConnectContext; import com.google.common.base.Strings; -public class RecoverTableStmt extends DdlStmt { +public class RecoverTableStmt extends DdlStmt implements NotFallbackInParser { private TableName dbTblName; private long tableId = -1; private String newTableName = ""; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/RestoreStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/RestoreStmt.java index 45691647001..35120b5fa11 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/RestoreStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/RestoreStmt.java @@ -33,7 +33,7 @@ import com.google.common.collect.Sets; import java.util.Map; import java.util.Set; -public class RestoreStmt extends AbstractBackupStmt { +public class RestoreStmt extends AbstractBackupStmt implements NotFallbackInParser { private static final String PROP_ALLOW_LOAD = "allow_load"; private static final String PROP_BACKUP_TIMESTAMP = "backup_timestamp"; private static final String PROP_META_VERSION = "meta_version"; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/UninstallPluginStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/UninstallPluginStmt.java index c87456dcb37..0ee0c28906b 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/UninstallPluginStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/UninstallPluginStmt.java @@ -26,7 +26,7 @@ import org.apache.doris.common.UserException; import org.apache.doris.mysql.privilege.PrivPredicate; import org.apache.doris.qe.ConnectContext; -public class UninstallPluginStmt extends DdlStmt { +public class UninstallPluginStmt extends DdlStmt implements NotFallbackInParser { private String pluginName; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/UnlockTablesStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/UnlockTablesStmt.java index 4c66198c596..0c37240ff3c 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/UnlockTablesStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/UnlockTablesStmt.java @@ -17,7 +17,7 @@ package org.apache.doris.analysis; -public class UnlockTablesStmt extends StatementBase { +public class UnlockTablesStmt extends StatementBase implements NotFallbackInParser { @Override public String toSql() { return "UNLOCK TABLES"; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/UnsupportedStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/UnsupportedStmt.java index fa2d46782e8..8316b293f01 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/UnsupportedStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/UnsupportedStmt.java @@ -20,7 +20,7 @@ package org.apache.doris.analysis; import org.apache.doris.common.AnalysisException; import org.apache.doris.common.UserException; -public class UnsupportedStmt extends StatementBase { +public class UnsupportedStmt extends StatementBase implements NotFallbackInParser { public UnsupportedStmt() { diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/WarmUpClusterStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/WarmUpClusterStmt.java index 46aca93c9ee..9f386a686a2 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/WarmUpClusterStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/WarmUpClusterStmt.java @@ -39,7 +39,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; -public class WarmUpClusterStmt extends StatementBase { +public class WarmUpClusterStmt extends StatementBase implements NotFallbackInParser { private static final Logger LOG = LogManager.getLogger(WarmUpClusterStmt.class); private List<Map<TableName, String>> tableList; private List<Triple<String, String, String>> tables = new ArrayList<>(); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org