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

Reply via email to