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 616a46c10299f..156e6dc8e0d3c 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 @@ -756,14 +756,27 @@ place ; partitionDefinitions - : LP_ partitionDefinition (COMMA_ partitionDefinition)* RP_ + // DORIS CHANGED BEGIN + : LP_ partitionDefinitionItem (COMMA_ partitionDefinitionItem)* RP_ + ; + +partitionDefinitionItem + : partitionDefinition | dorisMultiRangePartition + ; + +dorisMultiRangePartition + : FROM LP_ expr RP_ TO LP_ expr RP_ INTERVAL expr intervalUnit? ; + // DORIS CHANGED END partitionDefinition + // DORIS CHANGED BEGIN : PARTITION partitionName - (VALUES (LESS THAN partitionLessThanValue | IN LP_ partitionValueList RP_))? + (VALUES (LESS THAN partitionLessThanValue | IN LP_ partitionValueList RP_ | LBT_ LP_ partitionValueList RP_ COMMA_ LP_ partitionValueList RP_ RP_))? partitionDefinitionOption* + (LP_ properties RP_)? (LP_ subpartitionDefinition (COMMA_ subpartitionDefinition)* RP_)? + // DORIS CHANGED END ; partitionLessThanValue diff --git a/test/it/parser/src/main/resources/case/ddl/create-table.xml b/test/it/parser/src/main/resources/case/ddl/create-table.xml index 2464ec602ba59..ca859553ec281 100644 --- a/test/it/parser/src/main/resources/case/ddl/create-table.xml +++ b/test/it/parser/src/main/resources/case/ddl/create-table.xml @@ -2245,6 +2245,58 @@ + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+ + + + + + + + + + + + +
+ + + + + + + + + + +
diff --git a/test/it/parser/src/main/resources/sql/supported/ddl/create-table.xml b/test/it/parser/src/main/resources/sql/supported/ddl/create-table.xml index a14b3b08fd16a..c927680b1213e 100644 --- a/test/it/parser/src/main/resources/sql/supported/ddl/create-table.xml +++ b/test/it/parser/src/main/resources/sql/supported/ddl/create-table.xml @@ -168,6 +168,10 @@ + + + +