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

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


The following commit(s) were added to refs/heads/master by this push:
     new 2f16fb35b71 Support parsing Doris SHOW PROC and CREATE/PAUSE/RESUME 
SYNC JOB syntax (#38115)
2f16fb35b71 is described below

commit 2f16fb35b71b610eee10f650f4978e6ea48c2a4a
Author: cxy <[email protected]>
AuthorDate: Sat Feb 21 22:19:23 2026 +0800

    Support parsing Doris SHOW PROC and CREATE/PAUSE/RESUME SYNC JOB syntax 
(#38115)
---
 .../core/database/visitor/SQLVisitorRule.java      |   8 ++
 .../src/main/antlr4/imports/doris/BaseRule.g4      |   2 +
 .../src/main/antlr4/imports/doris/DALStatement.g4  |   5 +
 .../src/main/antlr4/imports/doris/DDLStatement.g4  |  20 ++++
 .../src/main/antlr4/imports/doris/DorisKeyword.g4  |   8 ++
 .../sql/parser/autogen/DorisStatement.g4           |   3 +
 .../statement/type/DorisDALStatementVisitor.java   |  10 ++
 .../statement/type/DorisDDLStatementVisitor.java   |  79 ++++++++++++++++
 .../segment/ddl/job/BinlogDescriptionSegment.java  |  39 ++++++++
 .../segment/ddl/job/ChannelDescriptionSegment.java |  46 +++++++++
 .../core/segment/ddl/job/JobNameSegment.java       |  50 ++++++++++
 .../doris/dal/DorisShowProcStatement.java          |  36 +++++++
 .../doris/ddl/DorisCreateSyncJobStatement.java     |  66 +++++++++++++
 .../doris/ddl/DorisPauseSyncJobStatement.java      |  49 ++++++++++
 .../doris/ddl/DorisResumeSyncJobStatement.java     |  49 ++++++++++
 .../dal/dialect/doris/DorisDALStatementAssert.java |   5 +
 .../doris/type/DorisShowProcStatementAssert.java   |  44 +++++++++
 .../doris/DorisCreateSyncJobStatementAssert.java   | 105 +++++++++++++++++++++
 .../ddl/dialect/doris/DorisDDLStatementAssert.java |  12 +++
 .../doris/DorisPauseSyncJobStatementAssert.java    |  50 ++++++++++
 .../doris/DorisResumeSyncJobStatementAssert.java   |  50 ++++++++++
 .../cases/parser/jaxb/RootSQLParserTestCases.java  |  16 ++++
 .../impl/job/ExpectedBinlogDescription.java        |  41 ++++++++
 .../impl/job/ExpectedChannelDescription.java       |  47 +++++++++
 .../doris/DorisShowProcStatementTestCase.java      |  38 ++++++++
 .../doris/DorisCreateSyncJobStatementTestCase.java |  53 +++++++++++
 .../doris/DorisPauseSyncJobStatementTestCase.java  |  43 +++++++++
 .../doris/DorisResumeSyncJobStatementTestCase.java |  43 +++++++++
 .../src/main/resources/case/dal/show-proc.xml      |  30 ++++++
 .../main/resources/case/ddl/create-sync-job.xml    |  67 +++++++++++++
 .../src/main/resources/case/ddl/pause-sync-job.xml |  29 ++++++
 .../main/resources/case/ddl/resume-sync-job.xml    |  29 ++++++
 .../main/resources/sql/supported/dal/show-proc.xml |  30 ++++++
 .../sql/supported/ddl/create-sync-job.xml          |  22 +++++
 .../resources/sql/supported/ddl/pause-sync-job.xml |  25 +++++
 .../sql/supported/ddl/resume-sync-job.xml          |  25 +++++
 36 files changed, 1274 insertions(+)

diff --git 
a/parser/sql/engine/core/src/main/java/org/apache/shardingsphere/sql/parser/engine/core/database/visitor/SQLVisitorRule.java
 
b/parser/sql/engine/core/src/main/java/org/apache/shardingsphere/sql/parser/engine/core/database/visitor/SQLVisitorRule.java
index fe7309c35ef..cbfb46c799c 100644
--- 
a/parser/sql/engine/core/src/main/java/org/apache/shardingsphere/sql/parser/engine/core/database/visitor/SQLVisitorRule.java
+++ 
b/parser/sql/engine/core/src/main/java/org/apache/shardingsphere/sql/parser/engine/core/database/visitor/SQLVisitorRule.java
@@ -291,6 +291,12 @@ public enum SQLVisitorRule {
     
     RESUME_JOB("ResumeJob", SQLStatementType.DDL),
     
+    RESUME_SYNC_JOB("ResumeSyncJob", SQLStatementType.DDL),
+    
+    PAUSE_SYNC_JOB("PauseSyncJob", SQLStatementType.DDL),
+    
+    CREATE_SYNC_JOB("CreateSyncJob", SQLStatementType.DDL),
+    
     ALTER_CATALOG("AlterCatalog", SQLStatementType.DDL),
     
     SET_CONSTRAINTS("SetConstraints", SQLStatementType.TCL),
@@ -447,6 +453,8 @@ public enum SQLVisitorRule {
     
     SHOW_ALTER_TABLE("ShowAlterTable", SQLStatementType.DAL),
     
+    SHOW_PROC("ShowProc", SQLStatementType.DAL),
+    
     SET_VARIABLE("SetVariable", SQLStatementType.DAL),
     
     UNSET_VARIABLE("UnsetVariable", SQLStatementType.DAL),
diff --git 
a/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/BaseRule.g4 
b/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/BaseRule.g4
index 3930e451602..dfc371092bd 100644
--- a/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/BaseRule.g4
+++ b/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/BaseRule.g4
@@ -390,6 +390,7 @@ identifierKeywordsUnambiguous
     | PASSWORD
     | PASSWORD_LOCK_TIME
     | PATH
+    | PAUSE
     | PHASE
     | PLUGINS
     | PLUGIN_DIR
@@ -402,6 +403,7 @@ identifierKeywordsUnambiguous
     | PREV
     | PRIVILEGES
     | PRIVILEGE_CHECKS_USER
+    | PROC
     | PROCESSLIST
     | PROFILES
     | PROFILE
diff --git 
a/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/DALStatement.g4 
b/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/DALStatement.g4
index 62c7703cea5..b019faa979a 100644
--- 
a/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/DALStatement.g4
+++ 
b/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/DALStatement.g4
@@ -497,6 +497,10 @@ showQueryStats
     : SHOW QUERY STATS (FOR databaseName | fromTable)? ALL? VERBOSE?
     ;
 
+showProc
+    : SHOW PROC string_
+    ;
+
 binlog
     : BINLOG stringLiterals
     ;
@@ -821,4 +825,5 @@ show
     | showSqlBlockRule
     | showRoutineLoadTask
     | showRoutineLoad
+    | showProc
     ;
diff --git 
a/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/DDLStatement.g4 
b/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/DDLStatement.g4
index 73db4baadb4..077ec7bf497 100644
--- 
a/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/DDLStatement.g4
+++ 
b/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/DDLStatement.g4
@@ -965,6 +965,26 @@ resumeJob
     : RESUME JOB WHERE jobName EQ_ stringLiterals
     ;
 
+resumeSyncJob
+    : RESUME SYNC JOB (owner DOT_)? identifier
+    ;
+
+pauseSyncJob
+    : PAUSE SYNC JOB (owner DOT_)? identifier
+    ;
+
+createSyncJob
+    : CREATE SYNC (owner DOT_)? identifier LP_ channelDescription (COMMA_ 
channelDescription)* RP_ binlogDescription
+    ;
+
+channelDescription
+    : FROM tableName INTO tableName (LP_ columnNames RP_)?
+    ;
+
+binlogDescription
+    : FROM BINLOG LP_ properties RP_
+    ;
+
 prepare
     : PREPARE identifier FROM (stringLiterals | userVariable)
     ;
diff --git 
a/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/DorisKeyword.g4 
b/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/DorisKeyword.g4
index 20b41379057..00228a93593 100644
--- 
a/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/DorisKeyword.g4
+++ 
b/parser/sql/engine/dialect/doris/src/main/antlr4/imports/doris/DorisKeyword.g4
@@ -1942,6 +1942,10 @@ PATH
     : P A T H
     ;
 
+PAUSE
+    : P A U S E
+    ;
+
 PERCENT_RANK
     : P E R C E N T UL_ R A N K
     ;
@@ -2018,6 +2022,10 @@ PRIVILEGE_CHECKS_USER
     : P R I V I L E G E UL_ C H E C K S UL_ U S E R
     ;
 
+PROC
+    : P R O C
+    ;
+
 PROCEDURE
     : P R O C E D U R E
     ;
diff --git 
a/parser/sql/engine/dialect/doris/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/DorisStatement.g4
 
b/parser/sql/engine/dialect/doris/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/DorisStatement.g4
index f84560d01ad..9a219f6f7db 100644
--- 
a/parser/sql/engine/dialect/doris/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/DorisStatement.g4
+++ 
b/parser/sql/engine/dialect/doris/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/DorisStatement.g4
@@ -136,6 +136,9 @@ execute
     | startReplica
     | createMaterializedView
     | resumeJob
+    | resumeSyncJob
+    | pauseSyncJob
+    | createSyncJob
     | dorisAlterSystem
     | createSqlBlockRule
     | alterSqlBlockRule
diff --git 
a/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/type/DorisDALStatementVisitor.java
 
b/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/type/DorisDALStatementVisitor.java
index 9b523208c90..2ad85bc5d5c 100644
--- 
a/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/type/DorisDALStatementVisitor.java
+++ 
b/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/type/DorisDALStatementVisitor.java
@@ -144,6 +144,7 @@ import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.Propert
 import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.PropertyContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.DorisAlterSystemActionContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.ShowQueryStatsContext;
+import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.ShowProcContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.AlterSqlBlockRuleContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.DropSqlBlockRuleContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.ShowSqlBlockRuleContext;
@@ -211,6 +212,7 @@ import 
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisDescFunctio
 import 
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisDropRepositoryStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisDropSqlBlockRuleStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowFunctionsStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowProcStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowSqlBlockRuleStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowRoutineLoadTaskStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowRoutineLoadStatement;
@@ -1368,4 +1370,12 @@ public final class DorisDALStatementVisitor extends 
DorisStatementVisitor implem
     public ASTNode visitRefresh(final RefreshContext ctx) {
         return new RefreshStatement(getDatabaseType());
     }
+    
+    @Override
+    public ASTNode visitShowProc(final ShowProcContext ctx) {
+        String procPath = SQLUtils.getExactlyValue(ctx.string_().getText());
+        DorisShowProcStatement result = new 
DorisShowProcStatement(getDatabaseType(), procPath);
+        result.addParameterMarkers(getParameterMarkerSegments());
+        return result;
+    }
 }
diff --git 
a/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/type/DorisDDLStatementVisitor.java
 
b/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/type/DorisDDLStatementVisitor.java
index a8b18799195..201a216ae24 100644
--- 
a/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/type/DorisDDLStatementVisitor.java
+++ 
b/parser/sql/engine/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/engine/doris/visitor/statement/type/DorisDDLStatementVisitor.java
@@ -25,6 +25,12 @@ import org.apache.shardingsphere.sql.parser.api.ASTNode;
 import 
org.apache.shardingsphere.sql.parser.api.visitor.statement.type.DDLStatementVisitor;
 import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.AlterCatalogContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.ResumeJobContext;
+import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.ResumeSyncJobContext;
+import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.PauseSyncJobContext;
+import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.CreateSyncJobContext;
+import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.ChannelDescriptionContext;
+import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.BinlogDescriptionContext;
+import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.ColumnNameContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.AddColumnContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.AddTableConstraintContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.AlterAlgorithmOptionContext;
@@ -160,6 +166,9 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.rollup.Ro
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.routine.FunctionNameSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.routine.RoutineBodySegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.routine.ValidStatementSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.job.JobNameSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.job.ChannelDescriptionSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.job.BinlogDescriptionSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.table.AlgorithmTypeSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.table.ConvertTableDefinitionSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.table.CreateTableOptionSegment;
@@ -224,6 +233,9 @@ import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisAlterStorag
 import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisCreateFunctionStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisDropFunctionStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisResumeJobStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisResumeSyncJobStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisPauseSyncJobStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisCreateSyncJobStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.mysql.ddl.event.MySQLAlterEventStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.mysql.ddl.event.MySQLCreateEventStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.mysql.ddl.event.MySQLDropEventStatement;
@@ -355,6 +367,73 @@ public final class DorisDDLStatementVisitor extends 
DorisStatementVisitor implem
         return new DorisResumeJobStatement(getDatabaseType(), jobName);
     }
     
+    @Override
+    public ASTNode visitResumeSyncJob(final ResumeSyncJobContext ctx) {
+        DorisResumeSyncJobStatement result = new 
DorisResumeSyncJobStatement(getDatabaseType());
+        JobNameSegment jobName = new 
JobNameSegment(ctx.identifier().start.getStartIndex(), 
ctx.identifier().stop.getStopIndex(), (IdentifierValue) 
visit(ctx.identifier()));
+        if (null != ctx.owner()) {
+            jobName.setOwner((OwnerSegment) visit(ctx.owner()));
+        }
+        result.setJobName(jobName);
+        return result;
+    }
+    
+    @Override
+    public ASTNode visitPauseSyncJob(final PauseSyncJobContext ctx) {
+        DorisPauseSyncJobStatement result = new 
DorisPauseSyncJobStatement(getDatabaseType());
+        JobNameSegment jobName = new 
JobNameSegment(ctx.identifier().start.getStartIndex(), 
ctx.identifier().stop.getStopIndex(), (IdentifierValue) 
visit(ctx.identifier()));
+        if (null != ctx.owner()) {
+            jobName.setOwner((OwnerSegment) visit(ctx.owner()));
+        }
+        result.setJobName(jobName);
+        return result;
+    }
+    
+    @Override
+    public ASTNode visitCreateSyncJob(final CreateSyncJobContext ctx) {
+        DorisCreateSyncJobStatement result = new 
DorisCreateSyncJobStatement(getDatabaseType());
+        JobNameSegment jobName = new 
JobNameSegment(ctx.identifier().start.getStartIndex(), 
ctx.identifier().stop.getStopIndex(), (IdentifierValue) 
visit(ctx.identifier()));
+        if (null != ctx.owner()) {
+            jobName.setOwner((OwnerSegment) visit(ctx.owner()));
+        }
+        result.setJobName(jobName);
+        for (ChannelDescriptionContext each : ctx.channelDescription()) {
+            result.getChannelDescriptions().add((ChannelDescriptionSegment) 
visit(each));
+        }
+        result.setBinlogDescription((BinlogDescriptionSegment) 
visit(ctx.binlogDescription()));
+        return result;
+    }
+    
+    @Override
+    public ASTNode visitChannelDescription(final ChannelDescriptionContext 
ctx) {
+        SimpleTableSegment sourceTable = (SimpleTableSegment) 
visit(ctx.tableName(0));
+        SimpleTableSegment targetTable = (SimpleTableSegment) 
visit(ctx.tableName(1));
+        ChannelDescriptionSegment result = new 
ChannelDescriptionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), 
sourceTable, targetTable);
+        if (null != ctx.columnNames()) {
+            for (ColumnNameContext each : ctx.columnNames().columnName()) {
+                result.getColumnNames().add(((ColumnSegment) 
visit(each)).getIdentifier().getValue());
+            }
+        }
+        return result;
+    }
+    
+    @Override
+    public ASTNode visitBinlogDescription(final BinlogDescriptionContext ctx) {
+        BinlogDescriptionSegment result = new 
BinlogDescriptionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex());
+        PropertiesSegment propertiesSegment = new 
PropertiesSegment(ctx.properties().start.getStartIndex(), 
ctx.properties().stop.getStopIndex());
+        for (PropertyContext each : ctx.properties().property()) {
+            propertiesSegment.getProperties().add(createPropertySegment(each));
+        }
+        result.setProperties(propertiesSegment);
+        return result;
+    }
+    
+    private PropertySegment createPropertySegment(final PropertyContext ctx) {
+        String key = getPropertyKey(ctx);
+        String value = SQLUtils.getExactlyValue(ctx.literals().getText());
+        return new PropertySegment(ctx.start.getStartIndex(), 
ctx.stop.getStopIndex(), key, value);
+    }
+    
     @SuppressWarnings("unchecked")
     @Override
     public ASTNode visitCreateTable(final CreateTableContext ctx) {
diff --git 
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/ddl/job/BinlogDescriptionSegment.java
 
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/ddl/job/BinlogDescriptionSegment.java
new file mode 100644
index 00000000000..b80d3e98b56
--- /dev/null
+++ 
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/ddl/job/BinlogDescriptionSegment.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.job;
+
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import lombok.Setter;
+import org.apache.shardingsphere.sql.parser.statement.core.segment.SQLSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.property.PropertiesSegment;
+
+/**
+ * Binlog description segment.
+ */
+@RequiredArgsConstructor
+@Getter
+@Setter
+public final class BinlogDescriptionSegment implements SQLSegment {
+    
+    private final int startIndex;
+    
+    private final int stopIndex;
+    
+    private PropertiesSegment properties;
+}
diff --git 
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/ddl/job/ChannelDescriptionSegment.java
 
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/ddl/job/ChannelDescriptionSegment.java
new file mode 100644
index 00000000000..3d15a0e6245
--- /dev/null
+++ 
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/ddl/job/ChannelDescriptionSegment.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.job;
+
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import lombok.Setter;
+import org.apache.shardingsphere.sql.parser.statement.core.segment.SQLSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
+
+import java.util.Collection;
+import java.util.LinkedList;
+
+/**
+ * Channel description segment.
+ */
+@RequiredArgsConstructor
+@Getter
+@Setter
+public final class ChannelDescriptionSegment implements SQLSegment {
+    
+    private final int startIndex;
+    
+    private final int stopIndex;
+    
+    private final SimpleTableSegment sourceTable;
+    
+    private final SimpleTableSegment targetTable;
+    
+    private final Collection<String> columnNames = new LinkedList<>();
+}
diff --git 
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/ddl/job/JobNameSegment.java
 
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/ddl/job/JobNameSegment.java
new file mode 100644
index 00000000000..674d4eef4ef
--- /dev/null
+++ 
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/ddl/job/JobNameSegment.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.job;
+
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import lombok.Setter;
+import org.apache.shardingsphere.sql.parser.statement.core.segment.SQLSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.OwnerAvailable;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.OwnerSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
+
+import java.util.Optional;
+
+/**
+ * Job name segment.
+ */
+@RequiredArgsConstructor
+@Getter
+@Setter
+public final class JobNameSegment implements SQLSegment, OwnerAvailable {
+    
+    private final int startIndex;
+    
+    private final int stopIndex;
+    
+    private final IdentifierValue identifier;
+    
+    private OwnerSegment owner;
+    
+    @Override
+    public Optional<OwnerSegment> getOwner() {
+        return Optional.ofNullable(owner);
+    }
+}
diff --git 
a/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/dal/DorisShowProcStatement.java
 
b/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/dal/DorisShowProcStatement.java
new file mode 100644
index 00000000000..cba1267ebcd
--- /dev/null
+++ 
b/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/dal/DorisShowProcStatement.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.sql.parser.statement.doris.dal;
+
+import lombok.Getter;
+import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dal.DALStatement;
+
+/**
+ * Show proc statement for Doris.
+ */
+@Getter
+public final class DorisShowProcStatement extends DALStatement {
+    
+    private final String procPath;
+    
+    public DorisShowProcStatement(final DatabaseType databaseType, final 
String procPath) {
+        super(databaseType);
+        this.procPath = procPath;
+    }
+}
diff --git 
a/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/ddl/DorisCreateSyncJobStatement.java
 
b/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/ddl/DorisCreateSyncJobStatement.java
new file mode 100644
index 00000000000..87b87386be9
--- /dev/null
+++ 
b/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/ddl/DorisCreateSyncJobStatement.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.sql.parser.statement.doris.ddl;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.job.BinlogDescriptionSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.job.ChannelDescriptionSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.job.JobNameSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.ddl.DDLStatement;
+
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.Optional;
+
+/**
+ * Create sync job statement for Doris.
+ */
+@Getter
+@Setter
+public final class DorisCreateSyncJobStatement extends DDLStatement {
+    
+    private JobNameSegment jobName;
+    
+    private final Collection<ChannelDescriptionSegment> channelDescriptions = 
new LinkedList<>();
+    
+    private BinlogDescriptionSegment binlogDescription;
+    
+    public DorisCreateSyncJobStatement(final DatabaseType databaseType) {
+        super(databaseType);
+    }
+    
+    /**
+     * Get job name segment.
+     *
+     * @return job name segment
+     */
+    public Optional<JobNameSegment> getJobName() {
+        return Optional.ofNullable(jobName);
+    }
+    
+    /**
+     * Get binlog description segment.
+     *
+     * @return binlog description segment
+     */
+    public Optional<BinlogDescriptionSegment> getBinlogDescription() {
+        return Optional.ofNullable(binlogDescription);
+    }
+}
diff --git 
a/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/ddl/DorisPauseSyncJobStatement.java
 
b/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/ddl/DorisPauseSyncJobStatement.java
new file mode 100644
index 00000000000..2c4f95af435
--- /dev/null
+++ 
b/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/ddl/DorisPauseSyncJobStatement.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.sql.parser.statement.doris.ddl;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.job.JobNameSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.ddl.DDLStatement;
+
+import java.util.Optional;
+
+/**
+ * Pause sync job statement for Doris.
+ */
+@Getter
+@Setter
+public final class DorisPauseSyncJobStatement extends DDLStatement {
+    
+    private JobNameSegment jobName;
+    
+    public DorisPauseSyncJobStatement(final DatabaseType databaseType) {
+        super(databaseType);
+    }
+    
+    /**
+     * Get job name segment.
+     *
+     * @return job name segment
+     */
+    public Optional<JobNameSegment> getJobName() {
+        return Optional.ofNullable(jobName);
+    }
+}
diff --git 
a/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/ddl/DorisResumeSyncJobStatement.java
 
b/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/ddl/DorisResumeSyncJobStatement.java
new file mode 100644
index 00000000000..5f26157e2f7
--- /dev/null
+++ 
b/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/ddl/DorisResumeSyncJobStatement.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.sql.parser.statement.doris.ddl;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.job.JobNameSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.ddl.DDLStatement;
+
+import java.util.Optional;
+
+/**
+ * Resume sync job statement for Doris.
+ */
+@Getter
+@Setter
+public final class DorisResumeSyncJobStatement extends DDLStatement {
+    
+    private JobNameSegment jobName;
+    
+    public DorisResumeSyncJobStatement(final DatabaseType databaseType) {
+        super(databaseType);
+    }
+    
+    /**
+     * Get job name segment.
+     *
+     * @return job name segment
+     */
+    public Optional<JobNameSegment> getJobName() {
+        return Optional.ofNullable(jobName);
+    }
+}
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/dialect/doris/DorisDALStatementAssert.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/dialect/doris/DorisDALStatementAssert.java
index 156ea1b28a9..0fe7bc17269 100644
--- 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/dialect/doris/DorisDALStatementAssert.java
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/dialect/doris/DorisDALStatementAssert.java
@@ -28,6 +28,7 @@ import 
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisCreateRepos
 import 
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisDescFunctionStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisDropRepositoryStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowFunctionsStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowProcStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisSwitchStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.doris.dal.show.DorisShowQueryStatsStatement;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
@@ -38,6 +39,7 @@ import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.d
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.dal.dialect.doris.type.DorisDescFunctionStatementAssert;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.dal.dialect.doris.type.DorisDropRepositoryStatementAssert;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.dal.dialect.doris.type.DorisShowFunctionsStatementAssert;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.dal.dialect.doris.type.DorisShowProcStatementAssert;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.dal.dialect.doris.type.DorisShowQueryStatsStatementAssert;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.dal.dialect.doris.type.DorisSwitchStatementAssert;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.dal.dialect.doris.type.DorisUnsetVariableStatementAssert;
@@ -49,6 +51,7 @@ import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.s
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisDescFunctionStatementTestCase;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisDropRepositoryStatementTestCase;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowFunctionsStatementTestCase;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowProcStatementTestCase;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisSwitchStatementTestCase;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisUnsetVariableStatementTestCase;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.show.DorisShowQueryStatsStatementTestCase;
@@ -87,6 +90,8 @@ public final class DorisDALStatementAssert {
             DorisShowFunctionsStatementAssert.assertIs(assertContext, 
(DorisShowFunctionsStatement) actual, (DorisShowFunctionsStatementTestCase) 
expected);
         } else if (actual instanceof DorisDescFunctionStatement) {
             DorisDescFunctionStatementAssert.assertIs(assertContext, 
(DorisDescFunctionStatement) actual, (DorisDescFunctionStatementTestCase) 
expected);
+        } else if (actual instanceof DorisShowProcStatement) {
+            DorisShowProcStatementAssert.assertIs(assertContext, 
(DorisShowProcStatement) actual, (DorisShowProcStatementTestCase) expected);
         }
     }
 }
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/dialect/doris/type/DorisShowProcStatementAssert.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/dialect/doris/type/DorisShowProcStatementAssert.java
new file mode 100644
index 00000000000..232780a0960
--- /dev/null
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/dialect/doris/type/DorisShowProcStatementAssert.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.dal.dialect.doris.type;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.dal.DorisShowProcStatement;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowProcStatementTestCase;
+import org.hamcrest.MatcherAssert;
+import org.hamcrest.Matchers;
+
+/**
+ * Show proc statement assert for Doris.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class DorisShowProcStatementAssert {
+    
+    /**
+     * Assert show proc statement is correct with expected parser result.
+     *
+     * @param assertContext assert context
+     * @param actual actual show proc statement
+     * @param expected expected show proc statement test case
+     */
+    public static void assertIs(final SQLCaseAssertContext assertContext, 
final DorisShowProcStatement actual, final DorisShowProcStatementTestCase 
expected) {
+        MatcherAssert.assertThat(assertContext.getText("Assertion error: proc 
path does not match."), actual.getProcPath(), 
Matchers.is(expected.getProcPath()));
+    }
+}
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisCreateSyncJobStatementAssert.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisCreateSyncJobStatementAssert.java
new file mode 100644
index 00000000000..bef4db178e1
--- /dev/null
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisCreateSyncJobStatementAssert.java
@@ -0,0 +1,105 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.ddl.dialect.doris;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.job.ChannelDescriptionSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.property.PropertySegment;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisCreateSyncJobStatement;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.SQLSegmentAssert;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.owner.OwnerAssert;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.table.TableAssert;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.job.ExpectedChannelDescription;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.PropertyTestCase;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisCreateSyncJobStatementTestCase;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.is;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+/**
+ * Create sync job statement assert for Doris.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class DorisCreateSyncJobStatementAssert {
+    
+    /**
+     * Assert create sync job statement is correct with expected parser result.
+     *
+     * @param assertContext assert context
+     * @param actual actual create sync job statement
+     * @param expected expected create sync job statement test case
+     */
+    public static void assertIs(final SQLCaseAssertContext assertContext, 
final DorisCreateSyncJobStatement actual, final 
DorisCreateSyncJobStatementTestCase expected) {
+        assertJobName(assertContext, actual, expected);
+        assertChannelDescriptions(assertContext, actual, expected);
+        assertBinlogDescription(assertContext, actual, expected);
+    }
+    
+    private static void assertJobName(final SQLCaseAssertContext 
assertContext, final DorisCreateSyncJobStatement actual, final 
DorisCreateSyncJobStatementTestCase expected) {
+        if (actual.getJobName().isPresent()) {
+            assertThat(assertContext.getText("Job name does not match: "), 
actual.getJobName().get().getIdentifier().getValue(), 
is(expected.getJobName()));
+            if (null != expected.getOwner()) {
+                OwnerAssert.assertIs(assertContext, 
actual.getJobName().get().getOwner().orElse(null), expected.getOwner());
+            }
+        }
+    }
+    
+    private static void assertChannelDescriptions(final SQLCaseAssertContext 
assertContext, final DorisCreateSyncJobStatement actual, final 
DorisCreateSyncJobStatementTestCase expected) {
+        assertThat(assertContext.getText("Channel descriptions size does not 
match: "), actual.getChannelDescriptions().size(), 
is(expected.getChannelDescriptions().size()));
+        int index = 0;
+        for (ChannelDescriptionSegment actualChannel : 
actual.getChannelDescriptions()) {
+            assertChannelDescription(assertContext, actualChannel, 
expected.getChannelDescriptions().get(index));
+            index++;
+        }
+    }
+    
+    private static void assertChannelDescription(final SQLCaseAssertContext 
assertContext, final ChannelDescriptionSegment actual, final 
ExpectedChannelDescription expected) {
+        SQLSegmentAssert.assertIs(assertContext, actual, expected);
+        TableAssert.assertIs(assertContext, actual.getSourceTable(), 
expected.getSourceTable());
+        TableAssert.assertIs(assertContext, actual.getTargetTable(), 
expected.getTargetTable());
+        assertThat(assertContext.getText("Column names size assertion error: 
"), actual.getColumnNames().size(), is(expected.getColumnNames().size()));
+        int index = 0;
+        for (String actualColumnName : actual.getColumnNames()) {
+            assertThat(assertContext.getText(String.format("Column name at 
index %d assertion error: ", index)), actualColumnName, 
is(expected.getColumnNames().get(index)));
+            index++;
+        }
+    }
+    
+    private static void assertBinlogDescription(final SQLCaseAssertContext 
assertContext, final DorisCreateSyncJobStatement actual, final 
DorisCreateSyncJobStatementTestCase expected) {
+        if (actual.getBinlogDescription().isPresent() && null != 
expected.getBinlogDescription()) {
+            SQLSegmentAssert.assertIs(assertContext, 
actual.getBinlogDescription().get(), expected.getBinlogDescription());
+            assertNotNull(actual.getBinlogDescription().get().getProperties(), 
assertContext.getText("Binlog properties should not be null"));
+            if (!expected.getBinlogDescription().getProperties().isEmpty()) {
+                assertThat(assertContext.getText("Binlog properties size does 
not match: "), 
actual.getBinlogDescription().get().getProperties().getProperties().size(),
+                        
is(expected.getBinlogDescription().getProperties().size()));
+                for (int i = 0; i < 
expected.getBinlogDescription().getProperties().size(); i++) {
+                    assertProperty(assertContext, 
actual.getBinlogDescription().get().getProperties().getProperties().get(i), 
expected.getBinlogDescription().getProperties().get(i));
+                }
+            }
+        }
+    }
+    
+    private static void assertProperty(final SQLCaseAssertContext 
assertContext, final PropertySegment actual, final PropertyTestCase expected) {
+        assertThat(assertContext.getText(String.format("Property key '%s' 
assertion error: ", expected.getKey())), actual.getKey(), 
is(expected.getKey()));
+        assertThat(assertContext.getText(String.format("Property value for key 
'%s' assertion error: ", expected.getKey())), actual.getValue(), 
is(expected.getValue()));
+        SQLSegmentAssert.assertIs(assertContext, actual, expected);
+    }
+}
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisDDLStatementAssert.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisDDLStatementAssert.java
index 9408637b3af..8de054fb40e 100644
--- 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisDDLStatementAssert.java
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisDDLStatementAssert.java
@@ -24,12 +24,18 @@ import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisAlterStorag
 import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisCreateFunctionStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisDropFunctionStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisResumeJobStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisResumeSyncJobStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisPauseSyncJobStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisCreateSyncJobStatement;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.ddl.dialect.doris.type.DorisAlterStoragePolicyStatementAssert;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisAlterStoragePolicyStatementTestCase;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisDropFunctionStatementTestCase;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisResumeJobStatementTestCase;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisResumeSyncJobStatementTestCase;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisPauseSyncJobStatementTestCase;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisCreateSyncJobStatementTestCase;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.standard.function.CreateFunctionStatementTestCase;
 
 /**
@@ -54,6 +60,12 @@ public final class DorisDDLStatementAssert {
             DorisAlterStoragePolicyStatementAssert.assertIs(assertContext, 
(DorisAlterStoragePolicyStatement) actual, 
(DorisAlterStoragePolicyStatementTestCase) expected);
         } else if (actual instanceof DorisDropFunctionStatement) {
             DorisDropFunctionStatementAssert.assertIs(assertContext, 
(DorisDropFunctionStatement) actual, (DorisDropFunctionStatementTestCase) 
expected);
+        } else if (actual instanceof DorisResumeSyncJobStatement) {
+            DorisResumeSyncJobStatementAssert.assertIs(assertContext, 
(DorisResumeSyncJobStatement) actual, (DorisResumeSyncJobStatementTestCase) 
expected);
+        } else if (actual instanceof DorisPauseSyncJobStatement) {
+            DorisPauseSyncJobStatementAssert.assertIs(assertContext, 
(DorisPauseSyncJobStatement) actual, (DorisPauseSyncJobStatementTestCase) 
expected);
+        } else if (actual instanceof DorisCreateSyncJobStatement) {
+            DorisCreateSyncJobStatementAssert.assertIs(assertContext, 
(DorisCreateSyncJobStatement) actual, (DorisCreateSyncJobStatementTestCase) 
expected);
         }
     }
 }
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisPauseSyncJobStatementAssert.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisPauseSyncJobStatementAssert.java
new file mode 100644
index 00000000000..5a69a00e9d8
--- /dev/null
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisPauseSyncJobStatementAssert.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.ddl.dialect.doris;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisPauseSyncJobStatement;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.owner.OwnerAssert;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisPauseSyncJobStatementTestCase;
+import org.hamcrest.MatcherAssert;
+import org.hamcrest.Matchers;
+
+/**
+ * Pause sync job statement assert for Doris.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class DorisPauseSyncJobStatementAssert {
+    
+    /**
+     * Assert pause sync job statement is correct with expected parser result.
+     *
+     * @param assertContext assert context
+     * @param actual actual pause sync job statement
+     * @param expected expected pause sync job statement test case
+     */
+    public static void assertIs(final SQLCaseAssertContext assertContext, 
final DorisPauseSyncJobStatement actual, final 
DorisPauseSyncJobStatementTestCase expected) {
+        if (actual.getJobName().isPresent()) {
+            MatcherAssert.assertThat(assertContext.getText("Job name does not 
match: "), actual.getJobName().get().getIdentifier().getValue(), 
Matchers.is(expected.getJobName()));
+            if (null != expected.getOwner()) {
+                OwnerAssert.assertIs(assertContext, 
actual.getJobName().get().getOwner().orElse(null), expected.getOwner());
+            }
+        }
+    }
+}
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisResumeSyncJobStatementAssert.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisResumeSyncJobStatementAssert.java
new file mode 100644
index 00000000000..9d903497a33
--- /dev/null
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisResumeSyncJobStatementAssert.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.ddl.dialect.doris;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisResumeSyncJobStatement;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.owner.OwnerAssert;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisResumeSyncJobStatementTestCase;
+import org.hamcrest.MatcherAssert;
+import org.hamcrest.Matchers;
+
+/**
+ * Resume sync job statement assert for Doris.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class DorisResumeSyncJobStatementAssert {
+    
+    /**
+     * Assert resume sync job statement is correct with expected parser result.
+     *
+     * @param assertContext assert context
+     * @param actual actual resume sync job statement
+     * @param expected expected resume sync job statement test case
+     */
+    public static void assertIs(final SQLCaseAssertContext assertContext, 
final DorisResumeSyncJobStatement actual, final 
DorisResumeSyncJobStatementTestCase expected) {
+        if (actual.getJobName().isPresent()) {
+            MatcherAssert.assertThat(assertContext.getText("Job name does not 
match: "), actual.getJobName().get().getIdentifier().getValue(), 
Matchers.is(expected.getJobName()));
+            if (null != expected.getOwner()) {
+                OwnerAssert.assertIs(assertContext, 
actual.getJobName().get().getOwner().orElse(null), expected.getOwner());
+            }
+        }
+    }
+}
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java
index 5b109ea050b..4d4fc92f6d7 100644
--- 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java
@@ -30,8 +30,12 @@ import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.s
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisAlterStoragePolicyStatementTestCase;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisDropFunctionStatementTestCase;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisResumeJobStatementTestCase;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisResumeSyncJobStatementTestCase;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisPauseSyncJobStatementTestCase;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisCreateSyncJobStatementTestCase;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisAlterSqlBlockRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisDropSqlBlockRuleStatementTestCase;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowProcStatementTestCase;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowSqlBlockRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowRoutineLoadTaskStatementTestCase;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.DorisShowRoutineLoadStatementTestCase;
@@ -537,6 +541,15 @@ public final class RootSQLParserTestCases {
     @XmlElement(name = "resume-job")
     private final List<DorisResumeJobStatementTestCase> resumeJobTestCases = 
new LinkedList<>();
     
+    @XmlElement(name = "resume-sync-job")
+    private final List<DorisResumeSyncJobStatementTestCase> 
resumeSyncJobTestCases = new LinkedList<>();
+    
+    @XmlElement(name = "pause-sync-job")
+    private final List<DorisPauseSyncJobStatementTestCase> 
pauseSyncJobTestCases = new LinkedList<>();
+    
+    @XmlElement(name = "create-sync-job")
+    private final List<DorisCreateSyncJobStatementTestCase> 
createSyncJobTestCases = new LinkedList<>();
+    
     @XmlElement(name = "alter-catalog")
     private final List<AlterCatalogStatementTestCase> alterCatalogTestCases = 
new LinkedList<>();
     
@@ -579,6 +592,9 @@ public final class RootSQLParserTestCases {
     @XmlElement(name = "show-alter-table")
     private final List<ShowAlterTableStatementTestCase> 
showAlterTableTestCases = new LinkedList<>();
     
+    @XmlElement(name = "doris-show-proc")
+    private final List<DorisShowProcStatementTestCase> dorisShowProcTestCases 
= new LinkedList<>();
+    
     @XmlElement(name = "build-index")
     private final List<BuildIndexStatementTestCase> buildIndexTestCases = new 
LinkedList<>();
     
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/job/ExpectedBinlogDescription.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/job/ExpectedBinlogDescription.java
new file mode 100644
index 00000000000..d20cb420c17
--- /dev/null
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/job/ExpectedBinlogDescription.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.job;
+
+import lombok.Getter;
+import lombok.Setter;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.AbstractExpectedSQLSegment;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris.PropertyTestCase;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * Expected binlog description.
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@Getter
+@Setter
+public final class ExpectedBinlogDescription extends 
AbstractExpectedSQLSegment {
+    
+    @XmlElement(name = "property")
+    private final List<PropertyTestCase> properties = new LinkedList<>();
+}
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/job/ExpectedChannelDescription.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/job/ExpectedChannelDescription.java
new file mode 100644
index 00000000000..0b34c260a0e
--- /dev/null
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/job/ExpectedChannelDescription.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.job;
+
+import lombok.Getter;
+import lombok.Setter;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.AbstractExpectedSQLSegment;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.table.ExpectedSimpleTable;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * Expected channel description.
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@Getter
+@Setter
+public final class ExpectedChannelDescription extends 
AbstractExpectedSQLSegment {
+    
+    @XmlElement(name = "source-table")
+    private ExpectedSimpleTable sourceTable;
+    
+    @XmlElement(name = "target-table")
+    private ExpectedSimpleTable targetTable;
+    
+    @XmlElement(name = "column-name")
+    private final List<String> columnNames = new LinkedList<>();
+}
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/dal/dialect/doris/DorisShowProcStatementTestCase.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/dal/dialect/doris/DorisShowProcStatementTestCase.java
new file mode 100644
index 00000000000..c47062ce205
--- /dev/null
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/dal/dialect/doris/DorisShowProcStatementTestCase.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.dialect.doris;
+
+import lombok.Getter;
+import lombok.Setter;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+
+/**
+ * Show proc statement test case for Doris.
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@Getter
+@Setter
+public final class DorisShowProcStatementTestCase extends SQLParserTestCase {
+    
+    @XmlAttribute(name = "proc-path")
+    private String procPath;
+}
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/dialect/doris/DorisCreateSyncJobStatementTestCase.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/dialect/doris/DorisCreateSyncJobStatementTestCase.java
new file mode 100644
index 00000000000..afff00af19f
--- /dev/null
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/dialect/doris/DorisCreateSyncJobStatementTestCase.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris;
+
+import lombok.Getter;
+import lombok.Setter;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.job.ExpectedBinlogDescription;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.job.ExpectedChannelDescription;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.table.ExpectedOwner;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * Create sync job statement test case for Doris.
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@Getter
+@Setter
+public final class DorisCreateSyncJobStatementTestCase extends 
SQLParserTestCase {
+    
+    @XmlAttribute(name = "job-name")
+    private String jobName;
+    
+    @XmlElement
+    private ExpectedOwner owner;
+    
+    @XmlElement(name = "channel-description")
+    private final List<ExpectedChannelDescription> channelDescriptions = new 
LinkedList<>();
+    
+    @XmlElement(name = "binlog-description")
+    private ExpectedBinlogDescription binlogDescription;
+}
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/dialect/doris/DorisPauseSyncJobStatementTestCase.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/dialect/doris/DorisPauseSyncJobStatementTestCase.java
new file mode 100644
index 00000000000..3c6ac117f52
--- /dev/null
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/dialect/doris/DorisPauseSyncJobStatementTestCase.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris;
+
+import lombok.Getter;
+import lombok.Setter;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.table.ExpectedOwner;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+
+/**
+ * Pause sync job statement test case for Doris.
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@Getter
+@Setter
+public final class DorisPauseSyncJobStatementTestCase extends 
SQLParserTestCase {
+    
+    @XmlAttribute(name = "job-name")
+    private String jobName;
+    
+    @XmlElement
+    private ExpectedOwner owner;
+}
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/dialect/doris/DorisResumeSyncJobStatementTestCase.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/dialect/doris/DorisResumeSyncJobStatementTestCase.java
new file mode 100644
index 00000000000..92e80140405
--- /dev/null
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/dialect/doris/DorisResumeSyncJobStatementTestCase.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris;
+
+import lombok.Getter;
+import lombok.Setter;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.table.ExpectedOwner;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+
+/**
+ * Resume sync job statement test case for Doris.
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@Getter
+@Setter
+public final class DorisResumeSyncJobStatementTestCase extends 
SQLParserTestCase {
+    
+    @XmlAttribute(name = "job-name")
+    private String jobName;
+    
+    @XmlElement
+    private ExpectedOwner owner;
+}
diff --git a/test/it/parser/src/main/resources/case/dal/show-proc.xml 
b/test/it/parser/src/main/resources/case/dal/show-proc.xml
new file mode 100644
index 00000000000..a58baeeb055
--- /dev/null
+++ b/test/it/parser/src/main/resources/case/dal/show-proc.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<sql-parser-test-cases>
+    <doris-show-proc sql-case-id="show_proc_root" proc-path="/" />
+    <doris-show-proc sql-case-id="show_proc_dbs" proc-path="/dbs/10002" />
+    <doris-show-proc sql-case-id="show_proc_statistic" proc-path="/statistic" 
/>
+    <doris-show-proc sql-case-id="show_proc_colocation_group" 
proc-path="/colocation_group" />
+    <doris-show-proc sql-case-id="show_proc_colocation_group_with_id" 
proc-path="/colocation_group/10005.10008" />
+    <doris-show-proc sql-case-id="show_proc_tasks" proc-path="/tasks" />
+    <doris-show-proc sql-case-id="show_proc_cluster_health_tablet_health" 
proc-path="/cluster_health/tablet_health" />
+    <doris-show-proc 
sql-case-id="show_proc_cluster_health_tablet_health_with_id" 
proc-path="/cluster_health/tablet_health/25852112" />
+    <doris-show-proc sql-case-id="show_proc_diagnose" proc-path="/diagnose" />
+    <doris-show-proc sql-case-id="show_proc_diagnose_cluster_balance" 
proc-path="/diagnose/cluster_balance" />
+</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/ddl/create-sync-job.xml 
b/test/it/parser/src/main/resources/case/ddl/create-sync-job.xml
new file mode 100644
index 00000000000..f8e1f5cc220
--- /dev/null
+++ b/test/it/parser/src/main/resources/case/ddl/create-sync-job.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<sql-parser-test-cases>
+    <create-sync-job sql-case-id="create_sync_job_simple" job-name="job1">
+        <owner name="test_db" start-index="12" stop-index="20" 
start-delimiter="`" end-delimiter="`" />
+        <channel-description start-index="30" stop-index="68">
+            <source-table name="tbl1" start-index="35" stop-index="52" 
start-delimiter="`" end-delimiter="`">
+                <owner name="mysql_db1" start-index="35" stop-index="45" 
start-delimiter="`" end-delimiter="`" />
+            </source-table>
+            <target-table name="test_tbl" start-index="59" stop-index="68" 
start-delimiter="`" end-delimiter="`" />
+        </channel-description>
+        <binlog-description start-index="71" stop-index="238">
+            <property key="type" value="canal" start-index="84" 
stop-index="99" />
+            <property key="canal.server.ip" value="127.0.0.1" 
start-index="101" stop-index="131" />
+            <property key="canal.server.port" value="11111" start-index="133" 
stop-index="161" />
+            <property key="canal.destination" value="example" 
start-index="163" stop-index="193" />
+            <property key="canal.username" value="" start-index="195" 
stop-index="215" />
+            <property key="canal.password" value="" start-index="217" 
stop-index="237" />
+        </binlog-description>
+    </create-sync-job>
+    
+    <create-sync-job sql-case-id="create_sync_job_multi_channels" 
job-name="job1">
+        <owner name="test_db" start-index="12" stop-index="20" 
start-delimiter="`" end-delimiter="`" />
+        <channel-description start-index="30" stop-index="75">
+            <source-table name="t1" start-index="35" stop-index="49" 
start-delimiter="`" end-delimiter="`">
+                <owner name="mysql_db" start-index="35" stop-index="44" 
start-delimiter="`" end-delimiter="`" />
+            </source-table>
+            <target-table name="test1" start-index="56" stop-index="62" 
start-delimiter="`" end-delimiter="`" />
+            <column-name>k1</column-name>
+            <column-name>k2</column-name>
+            <column-name>v1</column-name>
+        </channel-description>
+        <channel-description start-index="77" stop-index="122">
+            <source-table name="t2" start-index="82" stop-index="96" 
start-delimiter="`" end-delimiter="`">
+                <owner name="mysql_db" start-index="82" stop-index="91" 
start-delimiter="`" end-delimiter="`" />
+            </source-table>
+            <target-table name="test2" start-index="103" stop-index="109" 
start-delimiter="`" end-delimiter="`" />
+            <column-name>k3</column-name>
+            <column-name>k4</column-name>
+            <column-name>v2</column-name>
+        </channel-description>
+        <binlog-description start-index="125" stop-index="312">
+            <property key="type" value="canal" start-index="138" 
stop-index="153" />
+            <property key="canal.server.ip" value="xx.xxx.xxx.xx" 
start-index="155" stop-index="189" />
+            <property key="canal.server.port" value="12111" start-index="191" 
stop-index="219" />
+            <property key="canal.destination" value="example" 
start-index="221" stop-index="251" />
+            <property key="canal.username" value="username" start-index="253" 
stop-index="281" />
+            <property key="canal.password" value="password" start-index="283" 
stop-index="311" />
+        </binlog-description>
+    </create-sync-job>
+</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/ddl/pause-sync-job.xml 
b/test/it/parser/src/main/resources/case/ddl/pause-sync-job.xml
new file mode 100644
index 00000000000..1326425fa52
--- /dev/null
+++ b/test/it/parser/src/main/resources/case/ddl/pause-sync-job.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<sql-parser-test-cases>
+    <pause-sync-job sql-case-id="pause_sync_job_with_identifier" 
job-name="job_name" />
+    <pause-sync-job sql-case-id="pause_sync_job_with_schema" 
job-name="job_name">
+        <owner name="testdb" start-index="15" stop-index="20" />
+    </pause-sync-job>
+    <pause-sync-job sql-case-id="pause_sync_job_simple" job-name="my_sync_job" 
/>
+    <pause-sync-job sql-case-id="pause_sync_job_with_backticks" 
job-name="sync_job_123" />
+    <pause-sync-job sql-case-id="pause_sync_job_with_schema_backticks" 
job-name="my_job">
+        <owner name="my_db" start-index="15" stop-index="21" 
start-delimiter="`" end-delimiter="`" />
+    </pause-sync-job>
+</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/ddl/resume-sync-job.xml 
b/test/it/parser/src/main/resources/case/ddl/resume-sync-job.xml
new file mode 100644
index 00000000000..a0e83b1f9e9
--- /dev/null
+++ b/test/it/parser/src/main/resources/case/ddl/resume-sync-job.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<sql-parser-test-cases>
+    <resume-sync-job sql-case-id="resume_sync_job_with_identifier" 
job-name="job_name" />
+    <resume-sync-job sql-case-id="resume_sync_job_with_schema" 
job-name="job_name">
+        <owner name="testdb" start-index="16" stop-index="21" />
+    </resume-sync-job>
+    <resume-sync-job sql-case-id="resume_sync_job_simple" 
job-name="my_sync_job" />
+    <resume-sync-job sql-case-id="resume_sync_job_with_backticks" 
job-name="sync_job_123" />
+    <resume-sync-job sql-case-id="resume_sync_job_with_schema_backticks" 
job-name="my_job">
+        <owner name="my_db" start-index="16" stop-index="22" 
start-delimiter="`" end-delimiter="`" />
+    </resume-sync-job>
+</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/dal/show-proc.xml 
b/test/it/parser/src/main/resources/sql/supported/dal/show-proc.xml
new file mode 100644
index 00000000000..d896ac67ea1
--- /dev/null
+++ b/test/it/parser/src/main/resources/sql/supported/dal/show-proc.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<sql-cases>
+    <sql-case id="show_proc_root" value="SHOW PROC '/';" db-types="Doris" />
+    <sql-case id="show_proc_dbs" value="SHOW PROC &quot;/dbs/10002&quot;;" 
db-types="Doris" />
+    <sql-case id="show_proc_statistic" value="SHOW PROC '/statistic';" 
db-types="Doris" />
+    <sql-case id="show_proc_colocation_group" value="SHOW PROC 
'/colocation_group';" db-types="Doris" />
+    <sql-case id="show_proc_colocation_group_with_id" value="SHOW PROC 
'/colocation_group/10005.10008';" db-types="Doris" />
+    <sql-case id="show_proc_tasks" value="SHOW PROC '/tasks';" 
db-types="Doris" />
+    <sql-case id="show_proc_cluster_health_tablet_health" value="SHOW PROC 
'/cluster_health/tablet_health';" db-types="Doris" />
+    <sql-case id="show_proc_cluster_health_tablet_health_with_id" value="SHOW 
PROC '/cluster_health/tablet_health/25852112';" db-types="Doris" />
+    <sql-case id="show_proc_diagnose" value="SHOW PROC &quot;/diagnose&quot;;" 
db-types="Doris" />
+    <sql-case id="show_proc_diagnose_cluster_balance" value="SHOW PROC 
&quot;/diagnose/cluster_balance&quot;;" db-types="Doris" />
+</sql-cases>
diff --git 
a/test/it/parser/src/main/resources/sql/supported/ddl/create-sync-job.xml 
b/test/it/parser/src/main/resources/sql/supported/ddl/create-sync-job.xml
new file mode 100644
index 00000000000..0edb78654d2
--- /dev/null
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/create-sync-job.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<sql-cases>
+    <sql-case id="create_sync_job_simple" value="CREATE SYNC `test_db`.`job1` 
(FROM `mysql_db1`.`tbl1` INTO `test_tbl`) FROM BINLOG (&quot;type&quot; = 
&quot;canal&quot;,&quot;canal.server.ip&quot; = 
&quot;127.0.0.1&quot;,&quot;canal.server.port&quot; = 
&quot;11111&quot;,&quot;canal.destination&quot; = 
&quot;example&quot;,&quot;canal.username&quot; = 
&quot;&quot;,&quot;canal.password&quot; = &quot;&quot;)" db-types="Doris" />
+    <sql-case id="create_sync_job_multi_channels" value="CREATE SYNC 
`test_db`.`job1` (FROM `mysql_db`.`t1` INTO `test1` (k1, k2, v1),FROM 
`mysql_db`.`t2` INTO `test2` (k3, k4, v2)) FROM BINLOG (&quot;type&quot; = 
&quot;canal&quot;,&quot;canal.server.ip&quot; = 
&quot;xx.xxx.xxx.xx&quot;,&quot;canal.server.port&quot; = 
&quot;12111&quot;,&quot;canal.destination&quot; = 
&quot;example&quot;,&quot;canal.username&quot; = 
&quot;username&quot;,&quot;canal.password&quot; = &quot;password&quot;)"  [...]
+</sql-cases>
diff --git 
a/test/it/parser/src/main/resources/sql/supported/ddl/pause-sync-job.xml 
b/test/it/parser/src/main/resources/sql/supported/ddl/pause-sync-job.xml
new file mode 100644
index 00000000000..e44bb121701
--- /dev/null
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/pause-sync-job.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<sql-cases>
+    <sql-case id="pause_sync_job_with_identifier" value="PAUSE SYNC JOB 
`job_name`;" db-types="Doris" />
+    <sql-case id="pause_sync_job_with_schema" value="PAUSE SYNC JOB 
testdb.job_name;" db-types="Doris" />
+    <sql-case id="pause_sync_job_simple" value="PAUSE SYNC JOB my_sync_job;" 
db-types="Doris" />
+    <sql-case id="pause_sync_job_with_backticks" value="PAUSE SYNC JOB 
`sync_job_123`;" db-types="Doris" />
+    <sql-case id="pause_sync_job_with_schema_backticks" value="PAUSE SYNC JOB 
`my_db`.`my_job`;" db-types="Doris" />
+</sql-cases>
diff --git 
a/test/it/parser/src/main/resources/sql/supported/ddl/resume-sync-job.xml 
b/test/it/parser/src/main/resources/sql/supported/ddl/resume-sync-job.xml
new file mode 100644
index 00000000000..c2bfccf6c05
--- /dev/null
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/resume-sync-job.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<sql-cases>
+    <sql-case id="resume_sync_job_with_identifier" value="RESUME SYNC JOB 
`job_name`;" db-types="Doris" />
+    <sql-case id="resume_sync_job_with_schema" value="RESUME SYNC JOB 
testdb.job_name;" db-types="Doris" />
+    <sql-case id="resume_sync_job_simple" value="RESUME SYNC JOB my_sync_job;" 
db-types="Doris" />
+    <sql-case id="resume_sync_job_with_backticks" value="RESUME SYNC JOB 
`sync_job_123`;" db-types="Doris" />
+    <sql-case id="resume_sync_job_with_schema_backticks" value="RESUME SYNC 
JOB `my_db`.`my_job`;" db-types="Doris" />
+</sql-cases>


Reply via email to