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 361a30b30ae Support parsing Doris ALTER/DROP/PAUSE JOB syntax (#38311)
361a30b30ae is described below

commit 361a30b30aedc8943430bafd91f5707ca12f6ddc
Author: cxy <[email protected]>
AuthorDate: Tue Mar 3 15:01:42 2026 +0800

    Support parsing Doris ALTER/DROP/PAUSE JOB syntax (#38311)
---
 .../core/database/visitor/SQLVisitorRule.java      |  6 ++
 .../src/main/antlr4/imports/doris/DDLStatement.g4  | 12 +++
 .../sql/parser/autogen/DorisStatement.g4           |  3 +
 .../statement/type/DorisDDLStatementVisitor.java   | 31 ++++++++
 .../doris/ddl/DorisAlterJobStatement.java          | 64 +++++++++++++++
 .../statement/doris/ddl/DorisDropJobStatement.java | 36 +++++++++
 .../doris/ddl/DorisPauseJobStatement.java          | 36 +++++++++
 .../doris/DorisAlterJobStatementAssert.java        | 93 ++++++++++++++++++++++
 .../ddl/dialect/doris/DorisDDLStatementAssert.java | 12 +++
 .../dialect/doris/DorisDropJobStatementAssert.java | 47 +++++++++++
 .../doris/DorisPauseJobStatementAssert.java        | 47 +++++++++++
 .../cases/parser/jaxb/RootSQLParserTestCases.java  | 12 +++
 .../doris/DorisAlterJobStatementTestCase.java      | 52 ++++++++++++
 .../doris/DorisDropJobStatementTestCase.java       | 38 +++++++++
 .../doris/DorisPauseJobStatementTestCase.java      | 38 +++++++++
 .../src/main/resources/case/ddl/alter-job.xml      | 45 +++++++++++
 .../src/main/resources/case/ddl/drop-job.xml       | 27 +++++++
 .../src/main/resources/case/ddl/pause-job.xml      | 27 +++++++
 .../main/resources/sql/supported/ddl/alter-job.xml | 23 ++++++
 .../main/resources/sql/supported/ddl/drop-job.xml  | 22 +++++
 .../main/resources/sql/supported/ddl/pause-job.xml | 22 +++++
 21 files changed, 693 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 2a6c33a34c3..ea5de1f229b 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
@@ -303,6 +303,12 @@ public enum SQLVisitorRule {
     
     SHOW_SYNC_JOB("ShowSyncJob", SQLStatementType.DAL),
     
+    ALTER_JOB("AlterJob", SQLStatementType.DDL),
+    
+    DROP_JOB("DropJob", SQLStatementType.DDL),
+    
+    PAUSE_JOB("PauseJob", SQLStatementType.DDL),
+    
     ALTER_CATALOG("AlterCatalog", SQLStatementType.DDL),
     
     ALTER_COLOCATE_GROUP("AlterColocateGroup", SQLStatementType.DDL),
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 97819f83ffc..b48a8b52d82 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
@@ -1008,6 +1008,18 @@ resumeJob
     : RESUME JOB WHERE jobName EQ_ stringLiterals
     ;
 
+pauseJob
+    : PAUSE JOB WHERE jobName EQ_ stringLiterals
+    ;
+
+dropJob
+    : DROP JOB WHERE jobName EQ_ stringLiterals
+    ;
+
+alterJob
+    : ALTER JOB jobName propertiesClause? (DO insert)?
+    ;
+
 resumeSyncJob
     : RESUME SYNC JOB (owner DOT_)? identifier
     ;
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 ef0cc52bec7..2f11cd11595 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
@@ -141,6 +141,9 @@ execute
     | startReplica
     | createMaterializedView
     | resumeJob
+    | pauseJob
+    | dropJob
+    | alterJob
     | resumeSyncJob
     | pauseSyncJob
     | stopSyncJob
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 f3e21e0234e..6bb688fa766 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
@@ -118,6 +118,9 @@ import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.LoopSta
 import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.ModifyColumnContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.ModifyDistributionClauseContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.PartitionValueListContext;
+import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.AlterJobContext;
+import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.DropJobContext;
+import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.PauseJobContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.PauseSyncJobContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.PlaceContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.DorisStatementParser.PrepareContext;
@@ -267,6 +270,9 @@ import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisCreateJobSt
 import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisCreateSyncJobStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisDropFunctionStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisPauseSyncJobStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisAlterJobStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisDropJobStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisPauseJobStatement;
 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.DorisStopSyncJobStatement;
@@ -402,6 +408,31 @@ public final class DorisDDLStatementVisitor extends 
DorisStatementVisitor implem
         return new DorisResumeJobStatement(getDatabaseType(), jobName);
     }
     
+    @Override
+    public ASTNode visitAlterJob(final AlterJobContext ctx) {
+        DorisAlterJobStatement result = new 
DorisAlterJobStatement(getDatabaseType());
+        result.setJobName(new 
JobNameSegment(ctx.jobName().start.getStartIndex(), 
ctx.jobName().stop.getStopIndex(), (IdentifierValue) 
visit(ctx.jobName().identifier())));
+        if (null != ctx.propertiesClause()) {
+            
result.setProperties(extractPropertiesSegment(ctx.propertiesClause()));
+        }
+        if (null != ctx.insert()) {
+            result.setInsertStatement((InsertStatement) visit(ctx.insert()));
+        }
+        return result;
+    }
+    
+    @Override
+    public ASTNode visitPauseJob(final PauseJobContext ctx) {
+        String jobName = 
SQLUtils.getExactlyValue(ctx.stringLiterals().getText());
+        return new DorisPauseJobStatement(getDatabaseType(), jobName);
+    }
+    
+    @Override
+    public ASTNode visitDropJob(final DropJobContext ctx) {
+        String jobName = 
SQLUtils.getExactlyValue(ctx.stringLiterals().getText());
+        return new DorisDropJobStatement(getDatabaseType(), jobName);
+    }
+    
     @Override
     public ASTNode visitResumeSyncJob(final ResumeSyncJobContext ctx) {
         DorisResumeSyncJobStatement result = new 
DorisResumeSyncJobStatement(getDatabaseType());
diff --git 
a/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/ddl/DorisAlterJobStatement.java
 
b/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/ddl/DorisAlterJobStatement.java
new file mode 100644
index 00000000000..ff1c412146e
--- /dev/null
+++ 
b/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/ddl/DorisAlterJobStatement.java
@@ -0,0 +1,64 @@
+/*
+ * 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.segment.ddl.property.PropertiesSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.ddl.DDLStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.InsertStatement;
+
+import java.util.Optional;
+
+/**
+ * Alter job statement for Doris.
+ */
+@Getter
+@Setter
+public final class DorisAlterJobStatement extends DDLStatement {
+    
+    private JobNameSegment jobName;
+    
+    private PropertiesSegment properties;
+    
+    private InsertStatement insertStatement;
+    
+    public DorisAlterJobStatement(final DatabaseType databaseType) {
+        super(databaseType);
+    }
+    
+    /**
+     * Get properties.
+     *
+     * @return properties
+     */
+    public Optional<PropertiesSegment> getProperties() {
+        return Optional.ofNullable(properties);
+    }
+    
+    /**
+     * Get insert statement.
+     *
+     * @return insert statement
+     */
+    public Optional<InsertStatement> getInsertStatement() {
+        return Optional.ofNullable(insertStatement);
+    }
+}
diff --git 
a/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/ddl/DorisDropJobStatement.java
 
b/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/ddl/DorisDropJobStatement.java
new file mode 100644
index 00000000000..b926c93a2f0
--- /dev/null
+++ 
b/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/ddl/DorisDropJobStatement.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.ddl;
+
+import lombok.Getter;
+import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.ddl.DDLStatement;
+
+/**
+ * Drop job statement for Doris.
+ */
+@Getter
+public final class DorisDropJobStatement extends DDLStatement {
+    
+    private final String jobName;
+    
+    public DorisDropJobStatement(final DatabaseType databaseType, final String 
jobName) {
+        super(databaseType);
+        this.jobName = jobName;
+    }
+}
diff --git 
a/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/ddl/DorisPauseJobStatement.java
 
b/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/ddl/DorisPauseJobStatement.java
new file mode 100644
index 00000000000..cb9ed2c1615
--- /dev/null
+++ 
b/parser/sql/statement/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/statement/doris/ddl/DorisPauseJobStatement.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.ddl;
+
+import lombok.Getter;
+import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.ddl.DDLStatement;
+
+/**
+ * Pause job statement for Doris.
+ */
+@Getter
+public final class DorisPauseJobStatement extends DDLStatement {
+    
+    private final String jobName;
+    
+    public DorisPauseJobStatement(final DatabaseType databaseType, final 
String jobName) {
+        super(databaseType);
+        this.jobName = jobName;
+    }
+}
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisAlterJobStatementAssert.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisAlterJobStatementAssert.java
new file mode 100644
index 00000000000..ecb6378c849
--- /dev/null
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisAlterJobStatementAssert.java
@@ -0,0 +1,93 @@
+/*
+ * 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.property.PropertySegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisAlterJobStatement;
+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.table.TableAssert;
+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.DorisAlterJobStatementTestCase;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.is;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+/**
+ * Alter job statement assert for Doris.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class DorisAlterJobStatementAssert {
+    
+    /**
+     * Assert alter job statement is correct with expected parser result.
+     *
+     * @param assertContext assert context
+     * @param actual actual alter job statement
+     * @param expected expected alter job statement test case
+     */
+    public static void assertIs(final SQLCaseAssertContext assertContext, 
final DorisAlterJobStatement actual, final DorisAlterJobStatementTestCase 
expected) {
+        assertJobName(assertContext, actual, expected);
+        assertProperties(assertContext, actual, expected);
+        assertInsertStatement(assertContext, actual, expected);
+    }
+    
+    private static void assertJobName(final SQLCaseAssertContext 
assertContext, final DorisAlterJobStatement actual, final 
DorisAlterJobStatementTestCase expected) {
+        assertNotNull(actual.getJobName(), assertContext.getText("Job name 
should exist."));
+        assertThat(assertContext.getText("Job name does not match: "), 
actual.getJobName().getIdentifier().getValue(), 
is(expected.getJobName().getName()));
+        SQLSegmentAssert.assertIs(assertContext, actual.getJobName(), 
expected.getJobName());
+    }
+    
+    private static void assertProperties(final SQLCaseAssertContext 
assertContext, final DorisAlterJobStatement actual, final 
DorisAlterJobStatementTestCase expected) {
+        if (!expected.getProperties().isEmpty()) {
+            assertTrue(actual.getProperties().isPresent(), 
assertContext.getText("Properties should exist."));
+            assertThat(assertContext.getText("Properties size does not match: 
"), actual.getProperties().get().getProperties().size(), 
is(expected.getProperties().size()));
+            for (int i = 0; i < expected.getProperties().size(); i++) {
+                assertProperty(assertContext, 
actual.getProperties().get().getProperties().get(i), 
expected.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);
+    }
+    
+    private static void assertInsertStatement(final SQLCaseAssertContext 
assertContext, final DorisAlterJobStatement actual, final 
DorisAlterJobStatementTestCase expected) {
+        if (null == expected.getInsertTable() && null == 
expected.getInsertSelectTable()) {
+            return;
+        }
+        assertTrue(actual.getInsertStatement().isPresent(), 
assertContext.getText("Insert statement should exist."));
+        if (null != expected.getInsertTable()) {
+            
assertTrue(actual.getInsertStatement().get().getTable().isPresent(), 
assertContext.getText("Insert target table should exist."));
+            TableAssert.assertIs(assertContext, 
actual.getInsertStatement().get().getTable().get(), expected.getInsertTable());
+        }
+        if (null != expected.getInsertSelectTable()) {
+            
assertTrue(actual.getInsertStatement().get().getInsertSelect().isPresent(), 
assertContext.getText("Insert select should exist."));
+            SimpleTableSegment fromTable = (SimpleTableSegment) 
actual.getInsertStatement().get().getInsertSelect().get().getSelect().getFrom().orElse(null);
+            assertNotNull(fromTable, assertContext.getText("Insert select from 
table should exist."));
+            TableAssert.assertIs(assertContext, fromTable, 
expected.getInsertSelectTable());
+        }
+    }
+}
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 d7626cead13..44fc4cce063 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,6 +24,9 @@ import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisAlterColoca
 import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisAlterStoragePolicyStatement;
 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.DorisAlterJobStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisDropJobStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisPauseJobStatement;
 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;
@@ -38,6 +41,9 @@ 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.DorisCreateJobStatementTestCase;
 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.DorisAlterJobStatementTestCase;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisDropJobStatementTestCase;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisPauseJobStatementTestCase;
 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;
@@ -79,6 +85,12 @@ public final class DorisDDLStatementAssert {
             DorisCreateJobStatementAssert.assertIs(assertContext, 
(DorisCreateJobStatement) actual, (DorisCreateJobStatementTestCase) expected);
         } else if (actual instanceof DorisAlterColocateGroupStatement) {
             DorisAlterColocateGroupStatementAssert.assertIs(assertContext, 
(DorisAlterColocateGroupStatement) actual, 
(DorisAlterColocateGroupStatementTestCase) expected);
+        } else if (actual instanceof DorisPauseJobStatement) {
+            DorisPauseJobStatementAssert.assertIs(assertContext, 
(DorisPauseJobStatement) actual, (DorisPauseJobStatementTestCase) expected);
+        } else if (actual instanceof DorisDropJobStatement) {
+            DorisDropJobStatementAssert.assertIs(assertContext, 
(DorisDropJobStatement) actual, (DorisDropJobStatementTestCase) expected);
+        } else if (actual instanceof DorisAlterJobStatement) {
+            DorisAlterJobStatementAssert.assertIs(assertContext, 
(DorisAlterJobStatement) actual, (DorisAlterJobStatementTestCase) expected);
         }
     }
 }
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisDropJobStatementAssert.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisDropJobStatementAssert.java
new file mode 100644
index 00000000000..112f53dda42
--- /dev/null
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisDropJobStatementAssert.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.asserts.statement.ddl.dialect.doris;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisDropJobStatement;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisDropJobStatementTestCase;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.is;
+
+/**
+ * Drop job statement assert for Doris.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class DorisDropJobStatementAssert {
+    
+    /**
+     * Assert drop job statement is correct with expected parser result.
+     *
+     * @param assertContext assert context
+     * @param actual actual drop job statement
+     * @param expected expected drop job statement test case
+     */
+    public static void assertIs(final SQLCaseAssertContext assertContext, 
final DorisDropJobStatement actual, final DorisDropJobStatementTestCase 
expected) {
+        if (null != expected.getJobName()) {
+            assertThat(assertContext.getText("Job name does not match: "), 
actual.getJobName(), is(expected.getJobName()));
+        }
+    }
+}
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisPauseJobStatementAssert.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisPauseJobStatementAssert.java
new file mode 100644
index 00000000000..b4c0b6a7109
--- /dev/null
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/dialect/doris/DorisPauseJobStatementAssert.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.asserts.statement.ddl.dialect.doris;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import 
org.apache.shardingsphere.sql.parser.statement.doris.ddl.DorisPauseJobStatement;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisPauseJobStatementTestCase;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.is;
+
+/**
+ * Pause job statement assert for Doris.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class DorisPauseJobStatementAssert {
+    
+    /**
+     * Assert pause job statement is correct with expected parser result.
+     *
+     * @param assertContext assert context
+     * @param actual actual pause job statement
+     * @param expected expected pause job statement test case
+     */
+    public static void assertIs(final SQLCaseAssertContext assertContext, 
final DorisPauseJobStatement actual, final DorisPauseJobStatementTestCase 
expected) {
+        if (null != expected.getJobName()) {
+            assertThat(assertContext.getText("Job name does not match: "), 
actual.getJobName(), is(expected.getJobName()));
+        }
+    }
+}
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 b39fd97f721..88e13c5c753 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,6 +30,9 @@ 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.DorisAlterColocateGroupStatementTestCase;
 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.DorisAlterJobStatementTestCase;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisDropJobStatementTestCase;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.dialect.doris.DorisPauseJobStatementTestCase;
 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;
@@ -555,6 +558,15 @@ public final class RootSQLParserTestCases {
     @XmlElement(name = "resume-job")
     private final List<DorisResumeJobStatementTestCase> resumeJobTestCases = 
new LinkedList<>();
     
+    @XmlElement(name = "pause-job")
+    private final List<DorisPauseJobStatementTestCase> pauseJobTestCases = new 
LinkedList<>();
+    
+    @XmlElement(name = "drop-job")
+    private final List<DorisDropJobStatementTestCase> dropJobTestCases = new 
LinkedList<>();
+    
+    @XmlElement(name = "alter-job")
+    private final List<DorisAlterJobStatementTestCase> alterJobTestCases = new 
LinkedList<>();
+    
     @XmlElement(name = "resume-sync-job")
     private final List<DorisResumeSyncJobStatementTestCase> 
resumeSyncJobTestCases = new LinkedList<>();
     
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/dialect/doris/DorisAlterJobStatementTestCase.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/dialect/doris/DorisAlterJobStatementTestCase.java
new file mode 100644
index 00000000000..565579cd0df
--- /dev/null
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/dialect/doris/DorisAlterJobStatementTestCase.java
@@ -0,0 +1,52 @@
+/*
+ * 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.ExpectedJobName;
+import 
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.table.ExpectedSimpleTable;
+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;
+
+/**
+ * Alter job statement test case for Doris.
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@Getter
+@Setter
+public final class DorisAlterJobStatementTestCase extends SQLParserTestCase {
+    
+    @XmlElement(name = "job-name")
+    private ExpectedJobName jobName;
+    
+    @XmlElement(name = "property")
+    private final List<PropertyTestCase> properties = new LinkedList<>();
+    
+    @XmlElement(name = "insert-table")
+    private ExpectedSimpleTable insertTable;
+    
+    @XmlElement(name = "insert-select-table")
+    private ExpectedSimpleTable insertSelectTable;
+}
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/dialect/doris/DorisDropJobStatementTestCase.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/dialect/doris/DorisDropJobStatementTestCase.java
new file mode 100644
index 00000000000..a4cf2a0a4fd
--- /dev/null
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/dialect/doris/DorisDropJobStatementTestCase.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.ddl.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.XmlElement;
+
+/**
+ * Drop job statement test case for Doris.
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@Getter
+@Setter
+public final class DorisDropJobStatementTestCase extends SQLParserTestCase {
+    
+    @XmlElement(name = "job-name")
+    private String jobName;
+}
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/dialect/doris/DorisPauseJobStatementTestCase.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/dialect/doris/DorisPauseJobStatementTestCase.java
new file mode 100644
index 00000000000..bdd96c392b5
--- /dev/null
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/dialect/doris/DorisPauseJobStatementTestCase.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.ddl.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.XmlElement;
+
+/**
+ * Pause job statement test case for Doris.
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@Getter
+@Setter
+public final class DorisPauseJobStatementTestCase extends SQLParserTestCase {
+    
+    @XmlElement(name = "job-name")
+    private String jobName;
+}
diff --git a/test/it/parser/src/main/resources/case/ddl/alter-job.xml 
b/test/it/parser/src/main/resources/case/ddl/alter-job.xml
new file mode 100644
index 00000000000..e85b170570c
--- /dev/null
+++ b/test/it/parser/src/main/resources/case/ddl/alter-job.xml
@@ -0,0 +1,45 @@
+<?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>
+    <alter-job sql-case-id="alter_job_with_properties">
+        <job-name name="my_job" start-index="10" stop-index="15" />
+        <property key="session.insert_max_filter_ratio" value="0.5" 
start-index="28" stop-index="66" />
+        <insert-table name="tbl1" start-index="84" stop-index="91">
+            <owner name="db1" start-index="84" stop-index="86" />
+        </insert-table>
+        <insert-select-table name="tbl2" start-index="107" stop-index="114">
+            <owner name="db2" start-index="107" stop-index="109" />
+        </insert-select-table>
+    </alter-job>
+
+    <alter-job sql-case-id="alter_job_without_properties">
+        <job-name name="my_job" start-index="10" stop-index="15" />
+        <insert-table name="tbl1" start-index="32" stop-index="39">
+            <owner name="db1" start-index="32" stop-index="34" />
+        </insert-table>
+        <insert-select-table name="tbl2" start-index="55" stop-index="62">
+            <owner name="db2" start-index="55" stop-index="57" />
+        </insert-select-table>
+    </alter-job>
+
+    <alter-job sql-case-id="alter_job_properties_only">
+        <job-name name="my_job" start-index="10" stop-index="15" />
+        <property key="session.insert_max_filter_ratio" value="0.5" 
start-index="28" stop-index="66" />
+    </alter-job>
+</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/ddl/drop-job.xml 
b/test/it/parser/src/main/resources/case/ddl/drop-job.xml
new file mode 100644
index 00000000000..e5da8b152ed
--- /dev/null
+++ b/test/it/parser/src/main/resources/case/ddl/drop-job.xml
@@ -0,0 +1,27 @@
+<?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>
+    <drop-job sql-case-id="drop_job_with_job_name">
+        <job-name>example</job-name>
+    </drop-job>
+
+    <drop-job sql-case-id="drop_job_with_double_quotes">
+        <job-name>my_job</job-name>
+    </drop-job>
+</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/ddl/pause-job.xml 
b/test/it/parser/src/main/resources/case/ddl/pause-job.xml
new file mode 100644
index 00000000000..3fa3cda06ae
--- /dev/null
+++ b/test/it/parser/src/main/resources/case/ddl/pause-job.xml
@@ -0,0 +1,27 @@
+<?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-job sql-case-id="pause_job_with_job_name">
+        <job-name>example</job-name>
+    </pause-job>
+
+    <pause-job sql-case-id="pause_job_with_double_quotes">
+        <job-name>my_job</job-name>
+    </pause-job>
+</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/ddl/alter-job.xml 
b/test/it/parser/src/main/resources/sql/supported/ddl/alter-job.xml
new file mode 100644
index 00000000000..ac14990d274
--- /dev/null
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/alter-job.xml
@@ -0,0 +1,23 @@
+<?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="alter_job_with_properties" value="ALTER JOB my_job 
PROPERTIES(&quot;session.insert_max_filter_ratio&quot;=&quot;0.5&quot;) DO 
INSERT INTO db1.tbl1 SELECT * FROM db2.tbl2" db-types="Doris" />
+    <sql-case id="alter_job_without_properties" value="ALTER JOB my_job DO 
INSERT INTO db1.tbl1 SELECT * FROM db2.tbl2" db-types="Doris" />
+    <sql-case id="alter_job_properties_only" value="ALTER JOB my_job 
PROPERTIES(&quot;session.insert_max_filter_ratio&quot;=&quot;0.5&quot;)" 
db-types="Doris" />
+</sql-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/ddl/drop-job.xml 
b/test/it/parser/src/main/resources/sql/supported/ddl/drop-job.xml
new file mode 100644
index 00000000000..2182e0d5a46
--- /dev/null
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/drop-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="drop_job_with_job_name" value="DROP JOB WHERE jobName = 
'example'" db-types="Doris" />
+    <sql-case id="drop_job_with_double_quotes" value="DROP JOB WHERE jobName = 
&quot;my_job&quot;" db-types="Doris" />
+</sql-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/ddl/pause-job.xml 
b/test/it/parser/src/main/resources/sql/supported/ddl/pause-job.xml
new file mode 100644
index 00000000000..f48648393c7
--- /dev/null
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/pause-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="pause_job_with_job_name" value="PAUSE JOB WHERE jobName = 
'example'" db-types="Doris" />
+    <sql-case id="pause_job_with_double_quotes" value="PAUSE JOB WHERE jobName 
= &quot;my_job&quot;" db-types="Doris" />
+</sql-cases>

Reply via email to