You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2026/06/18 10:43:41 UTC

(shardingsphere) branch master updated: Support Hive ALTER TABLE... EXECUTE CHERRY-PICK about iceberg statement parse (#38823)

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

terrymanu 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 b0a728ac74c Support Hive ALTER TABLE... EXECUTE CHERRY-PICK about iceberg statement parse (#38823)
b0a728ac74c is described below

commit b0a728ac74c41a15ef0c6650052615ded27538c8
Author: Claire <cl...@163.com>
AuthorDate: Thu Jun 18 18:43:34 2026 +0800

    Support Hive ALTER TABLE... EXECUTE CHERRY-PICK about iceberg statement parse (#38823)
    
    * hive cherry pick
    
    * support hive cherry pick
    
    * update
    
    * update cherry-pick
    
    * support hive cherry pick
    
    * update cherry-pick
    
    * update cherry-pick
---
 RELEASE-NOTES.md                                   |  1 +
 .../src/main/antlr4/imports/hive/DDLStatement.g4   |  5 +++
 .../src/main/antlr4/imports/hive/HiveKeyword.g4    |  4 +++
 .../statement/type/HiveDDLStatementVisitor.java    | 10 ++++++
 .../ddl/table/CherryPickDefinitionSegment.java     | 37 ++++++++++++++++++++++
 .../type/ddl/table/AlterTableStatement.java        | 14 ++++++++
 .../standard/type/AlterTableStatementAssert.java   | 14 ++++++++
 .../definition/ExpectedCherryPickDefinition.java   | 36 +++++++++++++++++++++
 .../table/AlterTableStatementTestCase.java         |  4 +++
 .../src/main/resources/case/ddl/alter-table.xml    |  7 ++++
 .../resources/sql/supported/ddl/alter-table.xml    |  1 +
 11 files changed, 133 insertions(+)

diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index 93b5685b0df..a461975979d 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -34,6 +34,7 @@
 1. Build: Support compiling and using ShardingSphere under OpenJDK 26 - [#38625](https://github.com/apache/shardingsphere/issues/38625)
 1. Metadata: Support Oracle dictionary views by adding SYS default system schema and YAML definitions - [#38388](https://github.com/apache/shardingsphere/pull/38388)
 1. SQL Parser: Support Hive DELETE ORPHAN-FILES Statement about iceberg statement parse - [#38669](https://github.com/apache/shardingsphere/pull/38669)
+1. SQL Parser: Support Hive ALTER TABLE... EXECUTE CHERRY-PICK about iceberg statement parse- [#38823](https://github.com/apache/shardingsphere/pull/38823)
 1. SQL Parser: Support MySQL Function statement parse - [#38182](https://github.com/apache/shardingsphere/pull/38182) [#38219](https://github.com/apache/shardingsphere/pull/38219)
 1. SQL Parser: Support additional MySQL SELECT index hint and MATCH ... AGAINST WITH ROLLUP syntax - [#38233](https://github.com/apache/shardingsphere/pull/38233)
 1. SQL Parser: Support MySQL CREATE EVENT and additional CREATE FUNCTION RETURN syntax - [#38237](https://github.com/apache/shardingsphere/pull/38237)
diff --git a/parser/sql/engine/dialect/hive/src/main/antlr4/imports/hive/DDLStatement.g4 b/parser/sql/engine/dialect/hive/src/main/antlr4/imports/hive/DDLStatement.g4
index 6c07dc9873d..f76e4329972 100644
--- a/parser/sql/engine/dialect/hive/src/main/antlr4/imports/hive/DDLStatement.g4
+++ b/parser/sql/engine/dialect/hive/src/main/antlr4/imports/hive/DDLStatement.g4
@@ -82,6 +82,7 @@ alterTable
     | alterTableCommonClause dropBranch
     | alterTableCommonClause dropTag
     | alterTableCommonClause deleteOrphanFile
+    | alterTableCommonClause cherryPickClause
     ;
 
 createView
@@ -540,3 +541,7 @@ deleteOrphanFile
     : EXECUTE DELETE ORPHAN_FILES
     | EXECUTE DELETE ORPHAN_FILES OLDER THAN LP_ string_ RP_
     ;
+
+cherryPickClause
+    : EXECUTE CHERRY_PICK NUMBER_
+    ;
diff --git a/parser/sql/engine/dialect/hive/src/main/antlr4/imports/hive/HiveKeyword.g4 b/parser/sql/engine/dialect/hive/src/main/antlr4/imports/hive/HiveKeyword.g4
index 987de893fc8..ea573217dbb 100644
--- a/parser/sql/engine/dialect/hive/src/main/antlr4/imports/hive/HiveKeyword.g4
+++ b/parser/sql/engine/dialect/hive/src/main/antlr4/imports/hive/HiveKeyword.g4
@@ -3581,3 +3581,7 @@ ORPHAN_FILES
 OLDER
     : O L D E R
     ;
+
+CHERRY_PICK
+    : C H E R R Y '-' P I C K
+    ;
diff --git a/parser/sql/engine/dialect/hive/src/main/java/org/apache/shardingsphere/sql/parser/engine/hive/visitor/statement/type/HiveDDLStatementVisitor.java b/parser/sql/engine/dialect/hive/src/main/java/org/apache/shardingsphere/sql/parser/engine/hive/visitor/statement/type/HiveDDLStatementVisitor.java
index 286c9459e00..79b98a2c351 100644
--- a/parser/sql/engine/dialect/hive/src/main/java/org/apache/shardingsphere/sql/parser/engine/hive/visitor/statement/type/HiveDDLStatementVisitor.java
+++ b/parser/sql/engine/dialect/hive/src/main/java/org/apache/shardingsphere/sql/parser/engine/hive/visitor/statement/type/HiveDDLStatementVisitor.java
@@ -65,7 +65,9 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.column.po
 import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.constraint.ConstraintDefinitionSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexNameSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.table.CherryPickDefinitionSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.LiteralExpressionSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DataTypeSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
@@ -93,6 +95,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.statement.type.ddl.vi
 import org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.SelectStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.value.collection.CollectionValue;
 import org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
+import org.apache.shardingsphere.sql.parser.statement.core.value.literal.impl.NumberLiteralValue;
 
 import java.util.Collection;
 import java.util.Collections;
@@ -148,6 +151,13 @@ public final class HiveDDLStatementVisitor extends HiveStatementVisitor implemen
                 throw new IllegalArgumentException("[CLUSTERED INTO n BUCKETS] and [ORDER BY col_list] clauses can only be used with REBALANCE compaction");
             }
         }
+        if (null != ctx.cherryPickClause()) {
+            int numberStartIndex = ctx.cherryPickClause().NUMBER_().getSymbol().getStartIndex();
+            int numberStopIndex = ctx.cherryPickClause().NUMBER_().getSymbol().getStopIndex();
+            LiteralExpressionSegment snapshotId = new LiteralExpressionSegment(numberStartIndex, numberStopIndex,
+                    new NumberLiteralValue(ctx.cherryPickClause().NUMBER_().getText()).getValue());
+            result.cherryPickDefinition(new CherryPickDefinitionSegment(ctx.cherryPickClause().EXECUTE().getSymbol().getStartIndex(), numberStopIndex, snapshotId));
+        }
         return result.build();
     }
     
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/ddl/table/CherryPickDefinitionSegment.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/ddl/table/CherryPickDefinitionSegment.java
new file mode 100644
index 00000000000..a4bab69f913
--- /dev/null
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/segment/ddl/table/CherryPickDefinitionSegment.java
@@ -0,0 +1,37 @@
+/*
+ * 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.table;
+
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.AlterDefinitionSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.LiteralExpressionSegment;
+
+/**
+ * Cherry pick definition segment.
+ */
+@RequiredArgsConstructor
+@Getter
+public final class CherryPickDefinitionSegment implements AlterDefinitionSegment {
+    
+    private final int startIndex;
+    
+    private final int stopIndex;
+    
+    private final LiteralExpressionSegment snapshotId;
+}
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/ddl/table/AlterTableStatement.java b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/ddl/table/AlterTableStatement.java
index 9bcae109564..f1d2f693a03 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/ddl/table/AlterTableStatement.java
+++ b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/ddl/table/AlterTableStatement.java
@@ -52,6 +52,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.column.al
 import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.rollup.RenameRollupDefinitionSegment;
 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.CherryPickDefinitionSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.table.LockTableSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.table.ModifyTableCommentSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.table.ReplaceTableDefinitionSegment;
@@ -90,6 +91,8 @@ public final class AlterTableStatement extends DDLStatement {
     
     private final DropPrimaryKeyDefinitionSegment dropPrimaryKeyDefinition;
     
+    private final CherryPickDefinitionSegment cherryPickDefinition;
+    
     private final Collection<PropertiesSegment> setPropertiesDefinitions;
     
     private final Collection<EnableFeatureSegment> enableFeatureDefinitions;
@@ -146,6 +149,7 @@ public final class AlterTableStatement extends DDLStatement {
     private AlterTableStatement(final DatabaseType databaseType, final SimpleTableSegment table, final SimpleTableSegment renameTable, final ReplaceTableDefinitionSegment replaceTable,
                                 final ConvertTableDefinitionSegment convertTableDefinition, final ModifyCollectionRetrievalSegment modifyCollectionRetrieval,
                                 final AlgorithmTypeSegment algorithmSegment, final LockTableSegment lockTableSegment, final DropPrimaryKeyDefinitionSegment dropPrimaryKeyDefinition,
+                                final CherryPickDefinitionSegment cherryPickDefinition,
                                 @Singular("setPropertiesDefinition") final Collection<PropertiesSegment> setPropertiesDefinitions,
                                 @Singular("enableFeatureDefinition") final Collection<EnableFeatureSegment> enableFeatureDefinitions,
                                 @Singular("modifyTableCommentDefinition") final Collection<ModifyTableCommentSegment> modifyTableCommentDefinitions,
@@ -180,6 +184,7 @@ public final class AlterTableStatement extends DDLStatement {
         this.algorithmSegment = algorithmSegment;
         this.lockTableSegment = lockTableSegment;
         this.dropPrimaryKeyDefinition = dropPrimaryKeyDefinition;
+        this.cherryPickDefinition = cherryPickDefinition;
         this.setPropertiesDefinitions = setPropertiesDefinitions;
         this.enableFeatureDefinitions = enableFeatureDefinitions;
         this.modifyTableCommentDefinitions = modifyTableCommentDefinitions;
@@ -299,6 +304,15 @@ public final class AlterTableStatement extends DDLStatement {
         return Optional.ofNullable(dropPrimaryKeyDefinition);
     }
     
+    /**
+     * Get cherry pick definition.
+     *
+     * @return cherry pick definition
+     */
+    public Optional<CherryPickDefinitionSegment> getCherryPickDefinition() {
+        return Optional.ofNullable(cherryPickDefinition);
+    }
+    
     private class AlterTableConstraintSQLStatementAttribute implements ConstraintSQLStatementAttribute {
         
         @Override
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/standard/type/AlterTableStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/standard/type/AlterTableStatementAssert.java
index d803710e8d1..730f995402d 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/standard/type/AlterTableStatementAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/standard/type/AlterTableStatementAssert.java
@@ -43,6 +43,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.rollup.Dr
 import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.table.ModifyTableCommentSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.primary.DropPrimaryKeyDefinitionSegment;
+import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.table.CherryPickDefinitionSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.column.alter.OrderByColumnDefinitionSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.rollup.RenameRollupDefinitionSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.table.ConvertTableDefinitionSegment;
@@ -137,6 +138,7 @@ public final class AlterTableStatementAssert {
         assertConvertTable(assertContext, actual, expected);
         assertModifyCollectionRetrievalDefinitions(assertContext, actual, expected);
         assertDropPrimaryKeyDefinition(assertContext, actual, expected);
+        assertCherryPickDefinition(assertContext, actual, expected);
         assertSetPropertiesDefinitions(assertContext, actual, expected);
         assertEnableFeatureDefinitions(assertContext, actual, expected);
         assertModifyTableCommentDefinitions(assertContext, actual, expected);
@@ -576,6 +578,18 @@ public final class AlterTableStatementAssert {
         SQLSegmentAssert.assertIs(assertContext, actual.getDropPrimaryKeyDefinition().get(), expected.getDropPrimaryKeyDefinition());
     }
     
+    private static void assertCherryPickDefinition(final SQLCaseAssertContext assertContext, final AlterTableStatement actual, final AlterTableStatementTestCase expected) {
+        Optional<CherryPickDefinitionSegment> cherryPickDefinition = actual.getCherryPickDefinition();
+        if (null == expected.getCherryPickDefinition()) {
+            assertFalse(cherryPickDefinition.isPresent(), assertContext.getText("Actual cherry pick definition should not exist."));
+        } else {
+            assertTrue(cherryPickDefinition.isPresent(), assertContext.getText("Actual cherry pick definition should exist."));
+            CherryPickDefinitionSegment actualCherryPickDefinition = cherryPickDefinition.get();
+            ExpressionAssert.assertLiteralExpression(assertContext, actualCherryPickDefinition.getSnapshotId(), expected.getCherryPickDefinition().getSnapshotId());
+            SQLSegmentAssert.assertIs(assertContext, actualCherryPickDefinition, expected.getCherryPickDefinition());
+        }
+    }
+    
     private static void assertSetPropertiesDefinitions(final SQLCaseAssertContext assertContext, final AlterTableStatement actual, final AlterTableStatementTestCase expected) {
         assertThat(assertContext.getText("Set properties definitions size assertion error: "), actual.getSetPropertiesDefinitions().size(), is(expected.getSetProperties().size()));
         int count = 0;
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/definition/ExpectedCherryPickDefinition.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/definition/ExpectedCherryPickDefinition.java
new file mode 100644
index 00000000000..e6f8c5c3530
--- /dev/null
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/definition/ExpectedCherryPickDefinition.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.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.definition;
+
+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.expr.simple.ExpectedLiteralExpression;
+
+import javax.xml.bind.annotation.XmlElement;
+
+/**
+ * Expected cherry pick definition.
+ */
+@Getter
+@Setter
+public final class ExpectedCherryPickDefinition extends AbstractExpectedSQLSegment {
+    
+    @XmlElement(name = "snapshot-id")
+    private ExpectedLiteralExpression snapshotId;
+}
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/standard/table/AlterTableStatementTestCase.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/standard/table/AlterTableStatementTestCase.java
index b833f6ea052..892e8242787 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/standard/table/AlterTableStatementTestCase.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/standard/table/AlterTableStatementTestCase.java
@@ -26,6 +26,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.segment.impl.definition.ExpectedConstraintDefinition;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.definition.ExpectedConvertTableDefinition;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.definition.ExpectedDropPrimaryKeyDefinition;
+import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.definition.ExpectedCherryPickDefinition;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.definition.ExpectedModifyCollectionRetrievalDefinition;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.definition.ExpectedModifyColumnDefinition;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.definition.ExpectedRenameColumnDefinition;
@@ -123,6 +124,9 @@ public final class AlterTableStatementTestCase extends SQLParserTestCase {
     @XmlElement(name = "drop-primary-key")
     private ExpectedDropPrimaryKeyDefinition dropPrimaryKeyDefinition;
     
+    @XmlElement(name = "cherry-pick")
+    private ExpectedCherryPickDefinition cherryPickDefinition;
+    
     @XmlElement(name = "set-properties")
     private final List<ExpectedProperties> setProperties = new LinkedList<>();
     
diff --git a/test/it/parser/src/main/resources/case/ddl/alter-table.xml b/test/it/parser/src/main/resources/case/ddl/alter-table.xml
index ffe04ec2f3c..8728da6cb63 100644
--- a/test/it/parser/src/main/resources/case/ddl/alter-table.xml
+++ b/test/it/parser/src/main/resources/case/ddl/alter-table.xml
@@ -3729,4 +3729,11 @@
             </column-definition>
         </modify-column>
     </alter-table>
+
+    <alter-table sql-case-id="alter_table_execute_cherry_pick">
+        <table name="test" start-index="12" stop-index="15" />
+        <cherry-pick start-index="17" stop-index="55">
+            <snapshot-id value="8602659039622823857" start-index="37" stop-index="55" />
+        </cherry-pick>
+    </alter-table>
 </sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/ddl/alter-table.xml b/test/it/parser/src/main/resources/sql/supported/ddl/alter-table.xml
index 6ca5948a95c..fd6d6e333f0 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/alter-table.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/alter-table.xml
@@ -471,4 +471,5 @@
     <sql-case id="alter_table_modify_column_with_key_after_doris" value="ALTER TABLE example_db.my_table MODIFY COLUMN col1 BIGINT KEY DEFAULT &quot;1&quot; AFTER col2;" db-types="Doris" />
     <sql-case id="alter_table_modify_column_with_key_null_comment_doris" value="ALTER TABLE example_db.my_table MODIFY COLUMN k3 VARCHAR(50) KEY NULL COMMENT 'to 50'" db-types="Doris" />
     <sql-case id="alter_table_modify_column_with_key_not_null_doris" value="ALTER TABLE example_db.my_table MODIFY COLUMN k3 VARCHAR(50) KEY NOT NULL COMMENT 'not null'" db-types="Doris" />
+    <sql-case id="alter_table_execute_cherry_pick" value="ALTER table test EXECUTE CHERRY-PICK 8602659039622823857;" db-types="Hive" />
 </sql-cases>