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 03688135d8afa95d8de6449f91c410861433f8aa
Author: morrySnow <101034200+morrys...@users.noreply.github.com>
AuthorDate: Mon Sep 2 14:36:27 2024 +0800

    [opt](Nereids) add job, analyze, load and cancel statements syntax (#40203)
---
 .../antlr4/org/apache/doris/nereids/DorisParser.g4 | 171 ++++++++++++++++++---
 .../apache/doris/analysis/AlterJobStatusStmt.java  |   2 +-
 .../org/apache/doris/analysis/AnalyzeDBStmt.java   |   2 +-
 .../org/apache/doris/analysis/AnalyzeTblStmt.java  |   2 +-
 .../doris/analysis/CancelAlterSystemStmt.java      |   2 +-
 .../doris/analysis/CancelAlterTableStmt.java       |   2 +-
 .../apache/doris/analysis/CancelBackupStmt.java    |   2 +-
 .../doris/analysis/CancelCloudWarmUpStmt.java      |   2 +-
 .../apache/doris/analysis/CancelExportStmt.java    |   2 +-
 .../apache/doris/analysis/CancelJobTaskStmt.java   |   2 +-
 .../org/apache/doris/analysis/CancelLoadStmt.java  |   2 +-
 .../org/apache/doris/analysis/CleanLabelStmt.java  |   2 +-
 .../apache/doris/analysis/CleanProfileStmt.java    |   2 +-
 .../apache/doris/analysis/CleanQueryStatsStmt.java |   2 +-
 .../org/apache/doris/analysis/CreateJobStmt.java   |   2 +-
 .../doris/analysis/CreateRoutineLoadStmt.java      |   2 +-
 .../apache/doris/analysis/ImportColumnsStmt.java   |   2 +-
 .../apache/doris/analysis/ImportDeleteOnStmt.java  |   2 +-
 .../apache/doris/analysis/ImportSequenceStmt.java  |   2 +-
 .../org/apache/doris/analysis/ImportWhereStmt.java |   2 +-
 .../apache/doris/analysis/KillAnalysisJobStmt.java |   2 +-
 .../java/org/apache/doris/analysis/LoadStmt.java   |   2 +-
 .../doris/analysis/PauseRoutineLoadStmt.java       |   2 +-
 .../apache/doris/analysis/PauseSyncJobStmt.java    |   2 +-
 .../apache/doris/analysis/RefreshCatalogStmt.java  |   2 +-
 .../org/apache/doris/analysis/RefreshDbStmt.java   |   2 +-
 .../org/apache/doris/analysis/RefreshLdapStmt.java |   2 +-
 .../apache/doris/analysis/RefreshTableStmt.java    |   2 +-
 .../doris/analysis/ResumeRoutineLoadStmt.java      |   2 +-
 .../apache/doris/analysis/ResumeSyncJobStmt.java   |   2 +-
 .../apache/doris/analysis/ShowCreateLoadStmt.java  |   2 +-
 .../doris/analysis/ShowCreateRoutineLoadStmt.java  |   2 +-
 .../apache/doris/analysis/ShowRoutineLoadStmt.java |   2 +-
 .../doris/analysis/ShowRoutineLoadTaskStmt.java    |   2 +-
 .../apache/doris/analysis/StopRoutineLoadStmt.java |   2 +-
 .../org/apache/doris/analysis/StopSyncJobStmt.java |   2 +-
 .../java/org/apache/doris/analysis/SyncStmt.java   |   2 +-
 .../org/apache/doris/analysis/UnifiedLoadStmt.java |   2 +-
 .../doris/nereids/parser/LogicalPlanBuilder.java   |   5 +-
 .../nereids/trees/plans/commands/LoadCommand.java  |   4 +-
 40 files changed, 194 insertions(+), 60 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 c2feafe97f2..013c508b52b 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
@@ -70,6 +70,11 @@ unsupportedStatement
     | unsupportedAdminStatement
     | unsupportedTransactionStatement
     | unsupportedRecoverStatement
+    | unsupportedCancelStatement
+    | unsupportedJobStatement
+    | unsupportedCleanStatement
+    | unsupportedRefreshStatement
+    | unsupportedLoadStatement
     | unsupportedOtherStatement
     ;
 
@@ -121,14 +126,11 @@ supportedDmlStatement
         partitionSpec? tableAlias
         (USING relations)?
         whereClause?                                                   #delete
-    | LOAD LABEL lableName=identifier
+    | LOAD LABEL lableName=multipartIdentifier
         LEFT_PAREN dataDescs+=dataDesc (COMMA dataDescs+=dataDesc)* RIGHT_PAREN
         (withRemoteStorageSystem)?
-        (PROPERTIES LEFT_PAREN properties=propertyItemList RIGHT_PAREN)?
+        propertyClause?
         (commentSpec)?                                                 #load
-    | LOAD mysqlDataDesc
-        (PROPERTIES LEFT_PAREN properties=propertyItemList RIGHT_PAREN)?
-        (commentSpec)?                                                 
#mysqlLoad
     | EXPORT TABLE tableName=multipartIdentifier
         (PARTITION partition=identifierList)?
         (whereClause)?
@@ -200,6 +202,130 @@ lockTable
         (READ (LOCAL)? | (LOW_PRIORITY)? WRITE)
     ;
 
+unsupportedLoadStatement
+    : LOAD mysqlDataDesc
+        (PROPERTIES LEFT_PAREN properties=propertyItemList RIGHT_PAREN)?
+        (commentSpec)?                                                         
     #mysqlLoad
+    | CREATE SYNC label=multipartIdentifier
+          LEFT_PAREN channelDescriptions RIGHT_PAREN
+          FROM BINLOG LEFT_PAREN propertyItemList RIGHT_PAREN
+          properties=propertyClause?                                           
     #createDataSyncJob
+    | STOP SYNC JOB name=multipartIdentifier                                   
     #stopDataSyncJob
+    | RESUME SYNC JOB name=multipartIdentifier                                 
     #resumeDataSyncJob
+    | PAUSE SYNC JOB name=multipartIdentifier                                  
     #pauseDataSyncJob
+    | CREATE ROUTINE LOAD label=multipartIdentifier (ON table=identifier)?
+        (WITH (APPEND | DELETE | MERGE))?
+        (loadProperty (COMMA loadProperty)*)? propertyClause? FROM 
type=identifier
+        LEFT_PAREN customProperties=propertyItemList RIGHT_PAREN
+        commentSpec?                                                           
     #createRoutineLoadJob
+    | PAUSE ROUTINE LOAD FOR label=multipartIdentifier                         
     #pauseRoutineLoad
+    | PAUSE ALL ROUTINE LOAD                                                   
     #pauseAllRoutineLoad
+    | RESUME ROUTINE LOAD FOR label=multipartIdentifier                        
     #resumeRoutineLoad
+    | RESUME ALL ROUTINE LOAD                                                  
     #resumeAllRoutineLoad
+    | STOP ROUTINE LOAD FOR label=multipartIdentifier                          
     #stopRoutineLoad
+    | SHOW ALL? ROUTINE LOAD ((FOR label=multipartIdentifier) | wildWhere?)    
     #showRoutineLoad
+    | SHOW ROUTINE LOAD TASK ((FROM | IN) database=identifier)? wildWhere?     
     #showRoutineLoadTask
+    | SHOW ALL? CREATE ROUTINE LOAD FOR label=multipartIdentifier              
     #showCreateRoutineLoad
+    | SHOW CREATE LOAD FOR label=multipartIdentifier                           
     #showCreateLoad
+    | SYNC                                                                     
     #sync
+    | importSequenceStatement                                                  
     #importSequenceStatementAlias
+    | importPrecedingFilterStatement                                           
     #importPrecedingFilterStatementAlias
+    | importWhereStatement                                                     
     #importWhereStatementAlias
+    | importDeleteOnStatement                                                  
     #importDeleteOnStatementAlias
+    | importColumnsStatement                                                   
     #importColumnsStatementAlias
+    ;
+
+loadProperty
+    : COLUMNS TERMINATED BY STRING_LITERAL                                     
     #separator
+    | importColumnsStatement                                                   
     #importColumns
+    | importPrecedingFilterStatement                                           
     #importPrecedingFilter
+    | importWhereStatement                                                     
     #importWhere
+    | importDeleteOnStatement                                                  
     #importDeleteOn
+    | importSequenceStatement                                                  
     #importSequence
+    | partitionSpec                                                            
     #importPartitions
+    ;
+
+importSequenceStatement
+    : ORDER BY identifier
+    ;
+
+importDeleteOnStatement
+    : DELETE ON booleanExpression
+    ;
+
+importWhereStatement
+    : WHERE booleanExpression
+    ;
+
+importPrecedingFilterStatement
+    : PRECEDING FILTER booleanExpression
+    ;
+
+importColumnsStatement
+    : COLUMNS LEFT_PAREN importColumnDesc (COMMA importColumnDesc)* RIGHT_PAREN
+    ;
+
+importColumnDesc
+    : name=identifier (EQ booleanExpression)?
+    | LEFT_PAREN name=identifier (EQ booleanExpression)? RIGHT_PAREN
+    ;
+
+channelDescriptions
+    : channelDescription (COMMA channelDescription)*
+    ;
+
+channelDescription
+    : FROM source=multipartIdentifier INTO destination=multipartIdentifier
+        partitionSpec? columnList=identifierList?
+    ;
+
+unsupportedRefreshStatement
+    : REFRESH TABLE name=multipartIdentifier                                   
     #refreshTable
+    | REFRESH DATABASE name=multipartIdentifier propertyClause?                
     #refreshDatabase
+    | REFRESH CATALOG name=identifier propertyClause?                          
     #refreshCatalog
+    | REFRESH LDAP (ALL | (FOR user=identifierOrText))                         
     #refreshLdap
+    ;
+
+unsupportedCleanStatement
+    : CLEAN LABEL label=identifier? (FROM | IN) database=identifier            
     #cleanLabel
+    | CLEAN ALL PROFILE                                                        
     #cleanAllProfile
+    | CLEAN QUERY STATS ((FOR database=identifier)
+        | ((FROM | IN) table=multipartIdentifier))                             
     #cleanQueryStats
+    | CLEAN ALL QUERY STATS                                                    
     #cleanAllQueryStats
+    ;
+
+unsupportedJobStatement
+    : CREATE JOB label=multipartIdentifier ON SCHEDULE
+        (
+            (EVERY timeInterval=INTEGER_VALUE timeUnit=identifier
+            (STARTS (startTime=STRING_LITERAL | CURRENT_TIMESTAMP))?
+            (ENDS endsTime=STRING_LITERAL)?)
+            |
+            (AT (atTime=STRING_LITERAL | CURRENT_TIMESTAMP)))
+        commentSpec?
+        DO statement                                                           
     #createJob
+    | PAUSE JOB wildWhere?                                                     
     #pauseJob
+    | DROP JOB (IF EXISTS)? wildWhere?                                         
     #dropJob
+    | RESUME JOB wildWhere?                                                    
     #resumeJob
+    | CANCEL TASK wildWhere?                                                   
     #cancelJobTask
+    ;
+
+unsupportedCancelStatement
+    : CANCEL LOAD ((FROM | IN) database=identifier)? wildWhere?                
     #cancelLoad
+    | CANCEL EXPORT ((FROM | IN) database=identifier)? wildWhere?              
     #cancelExport
+    | CANCEL ALTER TABLE (ROLLUP | (MATERIALIZED VIEW) | COLUMN)
+        FROM tableName=multipartIdentifier (LEFT_PAREN jobIds+=INTEGER_VALUE
+            (COMMA jobIds+=INTEGER_VALUE)* RIGHT_PAREN)?                       
     #cancelAlterTable
+    | CANCEL BUILD INDEX ON tableName=multipartIdentifier
+        (LEFT_PAREN jobIds+=INTEGER_VALUE
+            (COMMA jobIds+=INTEGER_VALUE)* RIGHT_PAREN)?                       
     #cancelBuildIndex
+    | CANCEL DECOMMISSION BACKEND hostPorts+=STRING_LITERAL
+        (COMMA hostPorts+=STRING_LITERAL)*                                     
     #cancelDecommisionBackend
+    | CANCEL BACKUP ((FROM | IN) database=identifier)?                         
     #cancelBackup
+    | CANCEL RESTORE ((FROM | IN) database=identifier)?                        
     #cancelRestore
+    | CANCEL WARM UP JOB wildWhere?                                            
     #cancelWarmUp
+    ;
+
 unsupportedRecoverStatement
     : RECOVER DATABASE name=identifier id=INTEGER_VALUE? (AS 
alias=identifier)?     #recoverDatabase
     | RECOVER TABLE name=multipartIdentifier
@@ -421,7 +547,11 @@ unsupportedDropStatement
     ;
 
 unsupportedStatsStatement
-    : ALTER TABLE name=multipartIdentifier SET STATS
+    : ANALYZE TABLE name=multipartIdentifier partitionSpec?
+        columns=identifierList? (WITH analyzeProperties)* propertyClause?      
 #analyzeTable
+    | ANALYZE DATABASE name=multipartIdentifier
+        (WITH analyzeProperties)* propertyClause?                              
 #analyzeDatabase
+    | ALTER TABLE name=multipartIdentifier SET STATS
         LEFT_PAREN propertyItemList RIGHT_PAREN partitionSpec?                 
 #alterTableStats
     | ALTER TABLE name=multipartIdentifier (INDEX indexName=identifier)?
         MODIFY COLUMN columnName=identifier
@@ -431,6 +561,19 @@ unsupportedStatsStatement
     | DROP CACHED STATS tableName=multipartIdentifier                          
 #dropCachedStats
     | DROP EXPIRED STATS                                                       
 #dropExpiredStats
     | DROP ANALYZE JOB INTEGER_VALUE                                           
 #dropAanalyzeJob
+    | KILL ANALYZE jobId=INTEGER_VALUE                                         
 #killAnalyzeJob
+    ;
+
+analyzeProperties
+    : SYNC
+    | INCREMENTAL
+    | FULL
+    | SQL
+    | HISTOGRAM
+    | (SAMPLE ((ROWS rows=INTEGER_VALUE) | (PERCENT percent=INTEGER_VALUE)) )
+    | (BUCKETS bucket=INTEGER_VALUE)
+    | (PERIOD periodInSecond=INTEGER_VALUE)
+    | (CRON crontabExpr=STRING_LITERAL)
     ;
 
 unsupportedCreateStatement
@@ -470,10 +613,6 @@ unsupportedCreateStatement
         (ACTIONS LEFT_PAREN workloadPolicyActions RIGHT_PAREN)?
         properties=propertyClause?                                             
 #createWorkloadPolicy
     | CREATE ENCRYPTKEY (IF NOT EXISTS)? multipartIdentifier AS STRING_LITERAL 
 #createEncryptkey
-    | CREATE SYNC dbName=identifier DOT jobName=identifierOrText
-        LEFT_PAREN channelDescriptions RIGHT_PAREN
-        FROM BINLOG LEFT_PAREN propertyItemList RIGHT_PAREN
-        properties=propertyClause?                                             
 #createDataSyncJob
     | CREATE SQL_BLOCK_RULE (IF NOT EXISTS)?
         name=identifier properties=propertyClause?                             
 #createSqlBlockRule
     | CREATE STORAGE POLICY (IF NOT EXISTS)?
@@ -483,15 +622,6 @@ unsupportedCreateStatement
     | CREATE STAGE (IF NOT EXISTS)? name=identifier properties=propertyClause? 
 #createStage
     ;
 
-channelDescriptions
-    : channelDescription (COMMA channelDescription)*
-    ;
-
-channelDescription
-    : FROM source=multipartIdentifier INTO destination=multipartIdentifier
-        partitionSpec? columnList=identifierList?
-    ;
-
 workloadPolicyActions
     : workloadPolicyAction (COMMA workloadPolicyAction)*
     ;
@@ -646,6 +776,7 @@ dataDesc
         (COLUMNS TERMINATED BY comma=STRING_LITERAL)?
         (LINES TERMINATED BY separator=STRING_LITERAL)?
         (FORMAT AS format=identifierOrText)?
+        (COMPRESS_TYPE AS compressType=identifierOrText)?
         (columns=identifierList)?
         (columnsFromPath=colFromPath)?
         (columnMapping=colMappingList)?
@@ -791,7 +922,7 @@ resourceDesc
     ;
 
 mysqlDataDesc
-    : DATA (LOCAL booleanValue)?
+    : DATA LOCAL?
         INFILE filePath=STRING_LITERAL
         INTO TABLE tableName=multipartIdentifier
         (PARTITION partition=identifierList)?
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterJobStatusStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterJobStatusStmt.java
index 3dd2a9f27fa..a73d19b9ceb 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterJobStatusStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AlterJobStatusStmt.java
@@ -24,7 +24,7 @@ import org.apache.doris.job.common.JobStatus;
 import com.google.common.base.Strings;
 import lombok.Getter;
 
-public class AlterJobStatusStmt extends DdlStmt {
+public class AlterJobStatusStmt extends DdlStmt implements NotFallbackInParser 
{
 
     private Expr expr;
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyzeDBStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyzeDBStmt.java
index ac880a39d02..17c65ea57ef 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyzeDBStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyzeDBStmt.java
@@ -24,7 +24,7 @@ import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.UserException;
 import org.apache.doris.datasource.CatalogIf;
 
-public class AnalyzeDBStmt extends AnalyzeStmt {
+public class AnalyzeDBStmt extends AnalyzeStmt implements NotFallbackInParser {
 
     private final String ctlName;
     private final String dbName;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyzeTblStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyzeTblStmt.java
index 270c41d71bf..db98f6af706 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyzeTblStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyzeTblStmt.java
@@ -78,7 +78,7 @@ import java.util.stream.Collectors;
  * - 'sample.rows' = '1000'
  * - 'num.buckets' = 10
  */
-public class AnalyzeTblStmt extends AnalyzeStmt {
+public class AnalyzeTblStmt extends AnalyzeStmt implements NotFallbackInParser 
{
     // The properties passed in by the user through "with" or "properties('K', 
'V')"
 
     private final TableName tableName;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelAlterSystemStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelAlterSystemStmt.java
index 9cfde8da4b3..1895549140c 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelAlterSystemStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelAlterSystemStmt.java
@@ -32,7 +32,7 @@ import lombok.Getter;
 
 import java.util.List;
 
-public class CancelAlterSystemStmt extends CancelStmt {
+public class CancelAlterSystemStmt extends CancelStmt implements 
NotFallbackInParser {
 
     protected List<String> params;
     @Getter
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelAlterTableStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelAlterTableStmt.java
index 7dac7c28ff1..10f1d121d79 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelAlterTableStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelAlterTableStmt.java
@@ -34,7 +34,7 @@ import java.util.stream.Collectors;
 /*
  * CANCEL ALTER COLUMN|ROLLUP FROM db_name.table_name
  */
-public class CancelAlterTableStmt extends CancelStmt {
+public class CancelAlterTableStmt extends CancelStmt implements 
NotFallbackInParser {
 
     private AlterType alterType;
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelBackupStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelBackupStmt.java
index 54e9ba8b8ce..06c1d09972c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelBackupStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelBackupStmt.java
@@ -28,7 +28,7 @@ import org.apache.doris.qe.ConnectContext;
 
 import com.google.common.base.Strings;
 
-public class CancelBackupStmt extends CancelStmt {
+public class CancelBackupStmt extends CancelStmt implements 
NotFallbackInParser {
 
     private String dbName;
     private boolean isRestore;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelCloudWarmUpStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelCloudWarmUpStmt.java
index c46a1c18e78..51a2b729be0 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelCloudWarmUpStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelCloudWarmUpStmt.java
@@ -21,7 +21,7 @@ import org.apache.doris.analysis.BinaryPredicate.Operator;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.Config;
 
-public class CancelCloudWarmUpStmt extends CancelStmt {
+public class CancelCloudWarmUpStmt extends CancelStmt implements 
NotFallbackInParser {
     private Expr whereClause;
     private long jobId;
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelExportStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelExportStmt.java
index 039443becd6..63448cf35a0 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelExportStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelExportStmt.java
@@ -33,7 +33,7 @@ import lombok.Getter;
  *     CANCEL EXPORT [FROM db]
  *     WHERE [LABEL = "export_label" | LABEL like "label_pattern" | STATE = 
"PENDING/IN_QUEUE/EXPORTING"]
  **/
-public class CancelExportStmt extends DdlStmt {
+public class CancelExportStmt extends DdlStmt implements NotFallbackInParser {
 
     private static final ImmutableSet<String> SUPPORT_COLUMNS = new 
ImmutableSet.Builder<String>()
             .add("label")
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelJobTaskStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelJobTaskStmt.java
index 841e43a8257..80bcc9a3fe4 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelJobTaskStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelJobTaskStmt.java
@@ -25,7 +25,7 @@ import org.apache.doris.common.UserException;
 
 import lombok.Getter;
 
-public class CancelJobTaskStmt extends DdlStmt {
+public class CancelJobTaskStmt extends DdlStmt implements NotFallbackInParser {
 
     @Getter
     private String jobName;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelLoadStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelLoadStmt.java
index dad9a0ccd2d..1371e308675 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelLoadStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CancelLoadStmt.java
@@ -34,7 +34,7 @@ import java.util.Set;
  * syntax:
  *     CANCEL LOAD [FROM db] WHERE load_label (= "xxx" | LIKE "xxx")
  **/
-public class CancelLoadStmt extends DdlStmt {
+public class CancelLoadStmt extends DdlStmt implements NotFallbackInParser {
 
     private static final Set<String> SUPPORT_COLUMNS = 
Sets.newTreeSet(String.CASE_INSENSITIVE_ORDER);
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CleanLabelStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CleanLabelStmt.java
index 84de16c4e6a..8864a760914 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CleanLabelStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CleanLabelStmt.java
@@ -31,7 +31,7 @@ import com.google.common.base.Strings;
  * CLEAN LABEL FROM db;
  * CLEAN LABEL my_label FROM db;
  */
-public class CleanLabelStmt extends DdlStmt {
+public class CleanLabelStmt extends DdlStmt implements NotFallbackInParser {
     private String db;
     private String label;
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CleanProfileStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CleanProfileStmt.java
index 02a562a328b..e365b459aff 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CleanProfileStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CleanProfileStmt.java
@@ -27,7 +27,7 @@ import org.apache.doris.qe.ConnectContext;
 /**
  * CLEAN ALL PROFILE;
  */
-public class CleanProfileStmt extends DdlStmt {
+public class CleanProfileStmt extends DdlStmt implements NotFallbackInParser {
     public CleanProfileStmt() {
     }
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CleanQueryStatsStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CleanQueryStatsStmt.java
index c0964f796e3..6bf384b7c73 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CleanQueryStatsStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CleanQueryStatsStmt.java
@@ -33,7 +33,7 @@ import org.apache.commons.lang3.StringUtils;
  * CLEAN DATABASE QUERY STATS FROM db;
  * CLEAN TABLE QUERY STATS FROM db.table;
  */
-public class CleanQueryStatsStmt extends DdlStmt {
+public class CleanQueryStatsStmt extends DdlStmt implements 
NotFallbackInParser {
     private String dbName;
     private TableName tableName;
     private Scope scope;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateJobStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateJobStmt.java
index 8a8db0a3d1e..b9d42b249b2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateJobStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateJobStmt.java
@@ -61,7 +61,7 @@ import java.util.HashSet;
  * WEEK | SECOND }
  */
 @Slf4j
-public class CreateJobStmt extends DdlStmt {
+public class CreateJobStmt extends DdlStmt implements NotFallbackInParser {
 
     @Getter
     private StatementBase doStmt;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateRoutineLoadStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateRoutineLoadStmt.java
index 1648d943ae4..a16259dcdb9 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateRoutineLoadStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateRoutineLoadStmt.java
@@ -87,7 +87,7 @@ import java.util.function.Predicate;
       type of routine load:
           KAFKA
 */
-public class CreateRoutineLoadStmt extends DdlStmt {
+public class CreateRoutineLoadStmt extends DdlStmt implements 
NotFallbackInParser {
     private static final Logger LOG = 
LogManager.getLogger(CreateRoutineLoadStmt.class);
 
     // routine load properties
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ImportColumnsStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ImportColumnsStmt.java
index c8f6d6eef73..a67931e9491 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ImportColumnsStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ImportColumnsStmt.java
@@ -19,7 +19,7 @@ package org.apache.doris.analysis;
 
 import java.util.List;
 
-public class ImportColumnsStmt extends StatementBase {
+public class ImportColumnsStmt extends StatementBase implements 
NotFallbackInParser {
     private List<ImportColumnDesc> columns;
 
     public ImportColumnsStmt(List<ImportColumnDesc> columns) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ImportDeleteOnStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ImportDeleteOnStmt.java
index 22db97455ab..a1424056375 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ImportDeleteOnStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ImportDeleteOnStmt.java
@@ -17,7 +17,7 @@
 
 package org.apache.doris.analysis;
 
-public class ImportDeleteOnStmt extends StatementBase {
+public class ImportDeleteOnStmt extends StatementBase implements 
NotFallbackInParser {
     private Expr expr;
 
     public ImportDeleteOnStmt(Expr expr) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ImportSequenceStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ImportSequenceStmt.java
index 01addb9af57..52063c5a1fd 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ImportSequenceStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ImportSequenceStmt.java
@@ -17,7 +17,7 @@
 
 package org.apache.doris.analysis;
 
-public class ImportSequenceStmt extends StatementBase {
+public class ImportSequenceStmt extends StatementBase implements 
NotFallbackInParser {
     private String sequenceColName;
 
     public ImportSequenceStmt(String sequenceColName) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ImportWhereStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ImportWhereStmt.java
index c4cfaa38e30..1e5e1da1f8c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ImportWhereStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ImportWhereStmt.java
@@ -17,7 +17,7 @@
 
 package org.apache.doris.analysis;
 
-public class ImportWhereStmt extends StatementBase {
+public class ImportWhereStmt extends StatementBase implements 
NotFallbackInParser {
     private Expr expr;
     // Only used in load processs to define a "preceding filter" expr
     private boolean isPreceding;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/KillAnalysisJobStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/KillAnalysisJobStmt.java
index 996afb8c8a6..218b77c4fdd 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/KillAnalysisJobStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/KillAnalysisJobStmt.java
@@ -17,7 +17,7 @@
 
 package org.apache.doris.analysis;
 
-public class KillAnalysisJobStmt extends DdlStmt {
+public class KillAnalysisJobStmt extends DdlStmt implements 
NotFallbackInParser {
 
     public final long jobId;
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/LoadStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/LoadStmt.java
index 373b320afa1..d2616438d01 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/LoadStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/LoadStmt.java
@@ -85,7 +85,7 @@ import java.util.Map.Entry;
 //      resource_desc:
 //          WITH RESOURCE name
 //          (key3=value3, ...)
-public class LoadStmt extends DdlStmt {
+public class LoadStmt extends DdlStmt implements NotFallbackInParser {
     private static final Logger LOG = LogManager.getLogger(LoadStmt.class);
 
     public static final String TIMEOUT_PROPERTY = "timeout";
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/PauseRoutineLoadStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/PauseRoutineLoadStmt.java
index 745b6ecf385..cda61b903e8 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/PauseRoutineLoadStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/PauseRoutineLoadStmt.java
@@ -29,7 +29,7 @@ import com.google.common.base.Strings;
   syntax:
       PAUSE ROUTINE LOAD [database.]name
  */
-public class PauseRoutineLoadStmt extends DdlStmt {
+public class PauseRoutineLoadStmt extends DdlStmt implements 
NotFallbackInParser {
 
     private final LabelName labelName;
     private String db;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/PauseSyncJobStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/PauseSyncJobStmt.java
index 14d38a882c3..c66b31be762 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/PauseSyncJobStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/PauseSyncJobStmt.java
@@ -24,7 +24,7 @@ import org.apache.doris.common.UserException;
 //
 // syntax:
 //      PAUSE SYNC JOB [db.]jobName
-public class PauseSyncJobStmt extends DdlStmt {
+public class PauseSyncJobStmt extends DdlStmt implements NotFallbackInParser {
 
     private JobName jobName;
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/RefreshCatalogStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/RefreshCatalogStmt.java
index 7f72a25b7b7..3cada53b4cf 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/RefreshCatalogStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/RefreshCatalogStmt.java
@@ -33,7 +33,7 @@ import java.util.Map;
  * RefreshCatalogStmt
  * Manually refresh the catalog metadata.
  */
-public class RefreshCatalogStmt extends DdlStmt {
+public class RefreshCatalogStmt extends DdlStmt implements NotFallbackInParser 
{
     private static final String INVALID_CACHE = "invalid_cache";
 
     private final String catalogName;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/RefreshDbStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/RefreshDbStmt.java
index 69b312455a0..19f9d339cfb 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/RefreshDbStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/RefreshDbStmt.java
@@ -33,7 +33,7 @@ import org.apache.logging.log4j.Logger;
 
 import java.util.Map;
 
-public class RefreshDbStmt extends DdlStmt {
+public class RefreshDbStmt extends DdlStmt implements NotFallbackInParser {
     private static final Logger LOG = 
LogManager.getLogger(RefreshDbStmt.class);
     private static final String INVALID_CACHE = "invalid_cache";
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/RefreshLdapStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/RefreshLdapStmt.java
index 81296a4961c..b325d8ae93b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/RefreshLdapStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/RefreshLdapStmt.java
@@ -26,7 +26,7 @@ import org.apache.doris.qe.ConnectContext;
 
 import com.google.common.base.Strings;
 
-public class RefreshLdapStmt extends DdlStmt {
+public class RefreshLdapStmt extends DdlStmt implements NotFallbackInParser {
 
     private boolean isAll;
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/RefreshTableStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/RefreshTableStmt.java
index 7d872f70a94..f6ff53a4d12 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/RefreshTableStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/RefreshTableStmt.java
@@ -27,7 +27,7 @@ import org.apache.doris.qe.ConnectContext;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
-public class RefreshTableStmt extends DdlStmt {
+public class RefreshTableStmt extends DdlStmt implements NotFallbackInParser {
     private static final Logger LOG = 
LogManager.getLogger(RefreshTableStmt.class);
 
     private TableName tableName;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ResumeRoutineLoadStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ResumeRoutineLoadStmt.java
index e21a6ca53c5..176c3345c9f 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ResumeRoutineLoadStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ResumeRoutineLoadStmt.java
@@ -29,7 +29,7 @@ import com.google.common.base.Strings;
   syntax:
       RESUME ROUTINE LOAD [database.]name
  */
-public class ResumeRoutineLoadStmt extends DdlStmt {
+public class ResumeRoutineLoadStmt extends DdlStmt implements 
NotFallbackInParser {
 
     private final LabelName labelName;
     private String db;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ResumeSyncJobStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ResumeSyncJobStmt.java
index 2f401a09112..79aff303f67 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ResumeSyncJobStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ResumeSyncJobStmt.java
@@ -24,7 +24,7 @@ import org.apache.doris.common.UserException;
 //
 // syntax:
 //      RESUME SYNC JOB [db.]jobName
-public class ResumeSyncJobStmt extends DdlStmt {
+public class ResumeSyncJobStmt extends DdlStmt implements NotFallbackInParser {
 
     private JobName jobName;
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowCreateLoadStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowCreateLoadStmt.java
index 346fb107c91..fabae023652 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowCreateLoadStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowCreateLoadStmt.java
@@ -28,7 +28,7 @@ import org.apache.doris.qe.ConnectContext;
 import org.apache.doris.qe.ShowResultSetMetaData;
 
 // SHOW CREATE LOAD statement.
-public class ShowCreateLoadStmt extends ShowStmt {
+public class ShowCreateLoadStmt extends ShowStmt implements 
NotFallbackInParser {
 
     private static final ShowResultSetMetaData META_DATA =
             ShowResultSetMetaData.builder()
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowCreateRoutineLoadStmt.java
 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowCreateRoutineLoadStmt.java
index 7450c08d161..6b93920ae7b 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowCreateRoutineLoadStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowCreateRoutineLoadStmt.java
@@ -23,7 +23,7 @@ import org.apache.doris.common.AnalysisException;
 import org.apache.doris.qe.ShowResultSetMetaData;
 
 // SHOW CREATE ROUTINE LOAD statement.
-public class ShowCreateRoutineLoadStmt extends ShowStmt {
+public class ShowCreateRoutineLoadStmt extends ShowStmt implements 
NotFallbackInParser {
 
     private static final ShowResultSetMetaData META_DATA =
             ShowResultSetMetaData.builder()
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowRoutineLoadStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowRoutineLoadStmt.java
index 05ce8be6ade..8220eab9458 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowRoutineLoadStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowRoutineLoadStmt.java
@@ -62,7 +62,7 @@ import java.util.List;
         show routine load in all of database
         please use show proc
  */
-public class ShowRoutineLoadStmt extends ShowStmt {
+public class ShowRoutineLoadStmt extends ShowStmt implements 
NotFallbackInParser {
 
     private static final ImmutableList<String> TITLE_NAMES =
             new ImmutableList.Builder<String>()
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowRoutineLoadTaskStmt.java
 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowRoutineLoadTaskStmt.java
index 570b82d3667..248c0c7a6cf 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowRoutineLoadTaskStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowRoutineLoadTaskStmt.java
@@ -35,7 +35,7 @@ import java.util.List;
 
     where expr: JobName=xxx
  */
-public class ShowRoutineLoadTaskStmt extends ShowStmt {
+public class ShowRoutineLoadTaskStmt extends ShowStmt implements 
NotFallbackInParser {
     private static final List<String> supportColumn = Arrays.asList("jobname");
     private static final ImmutableList<String> TITLE_NAMES =
             new ImmutableList.Builder<String>()
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/StopRoutineLoadStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/StopRoutineLoadStmt.java
index df18979cc7e..b0a340c625c 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/StopRoutineLoadStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/StopRoutineLoadStmt.java
@@ -26,7 +26,7 @@ import org.apache.doris.common.UserException;
   syntax:
       STOP ROUTINE LOAD [database.]name
  */
-public class StopRoutineLoadStmt extends DdlStmt {
+public class StopRoutineLoadStmt extends DdlStmt implements 
NotFallbackInParser {
 
     private final LabelName labelName;
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/StopSyncJobStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/StopSyncJobStmt.java
index e58835a26a9..e83b1825852 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/StopSyncJobStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/StopSyncJobStmt.java
@@ -24,7 +24,7 @@ import org.apache.doris.common.UserException;
 //
 // syntax:
 //      STOP SYNC JOB [db.]jobName
-public class StopSyncJobStmt extends DdlStmt {
+public class StopSyncJobStmt extends DdlStmt implements NotFallbackInParser {
 
     private JobName jobName;
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/SyncStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/SyncStmt.java
index e559b30f420..536d5e6ae66 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/SyncStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/SyncStmt.java
@@ -19,7 +19,7 @@ package org.apache.doris.analysis;
 
 import org.apache.doris.common.UserException;
 
-public class SyncStmt extends DdlStmt {
+public class SyncStmt extends DdlStmt implements NotFallbackInParser {
     @Override
     public void analyze(Analyzer analyzer) throws UserException {
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/UnifiedLoadStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/UnifiedLoadStmt.java
index e8d4e513223..996a3334b4d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/UnifiedLoadStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/UnifiedLoadStmt.java
@@ -28,7 +28,7 @@ import java.util.Map;
  * Used for load refactor, as an adapter for original load stmt, will proxy to 
insert stmt or original load stmt, chosen
  * by configuration
  */
-public class UnifiedLoadStmt extends DdlStmt {
+public class UnifiedLoadStmt extends DdlStmt implements NotFallbackInParser {
 
     private final StatementBase proxyStmt;
 
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 cac51c9bb65..061a58a634d 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
@@ -1150,7 +1150,10 @@ public class LogicalPlanBuilder extends 
DorisParserBaseVisitor<Object> {
                             : 
Optional.of(ddc.sequenceColumn.identifier().getText()), dataProperties));
         }
         String labelName = ctx.lableName.getText();
-        Map<String, String> properties = visitPropertyItemList(ctx.properties);
+        Map<String, String> properties = Collections.emptyMap();
+        if (ctx.propertyClause() != null) {
+            properties = 
visitPropertyItemList(ctx.propertyClause().propertyItemList());
+        }
         String commentSpec = ctx.commentSpec() == null ? "''" : 
ctx.commentSpec().STRING_LITERAL().getText();
         String comment =
                 
LogicalPlanBuilderAssistant.escapeBackSlash(commentSpec.substring(1, 
commentSpec.length() - 1));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/LoadCommand.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/LoadCommand.java
index b439c977c94..aed3cb4c1f2 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/LoadCommand.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/LoadCommand.java
@@ -39,6 +39,7 @@ import org.apache.doris.nereids.analyzer.UnboundSlot;
 import org.apache.doris.nereids.analyzer.UnboundStar;
 import org.apache.doris.nereids.analyzer.UnboundTVFRelation;
 import org.apache.doris.nereids.analyzer.UnboundTableSinkCreator;
+import org.apache.doris.nereids.exceptions.MustFallbackException;
 import org.apache.doris.nereids.trees.expressions.ComparisonPredicate;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import org.apache.doris.nereids.trees.expressions.NamedExpression;
@@ -126,8 +127,7 @@ public class LoadCommand extends Command implements 
ForwardWithSync {
     @Override
     public void run(ConnectContext ctx, StmtExecutor executor) throws 
Exception {
         if (!Config.enable_nereids_load) {
-            ctx.getSessionVariable().enableFallbackToOriginalPlannerOnce();
-            throw new AnalysisException("Fallback to legacy planner 
temporary.");
+            throw new MustFallbackException("Fallback to legacy planner 
temporary.");
         }
         this.profile = new Profile(
                 ctx.getSessionVariable().enableProfile,


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org


Reply via email to