diff --git a/flink-table/flink-sql-parser-hive/src/test/java/org/apache/flink/sql/parser/hive/FlinkHiveSqlParserImplTest.java b/flink-table/flink-sql-parser-hive/src/test/java/org/apache/flink/sql/parser/hive/FlinkHiveSqlParserImplTest.java index 0bdf11b619178..1ff83a052fd9b 100644 --- a/flink-table/flink-sql-parser-hive/src/test/java/org/apache/flink/sql/parser/hive/FlinkHiveSqlParserImplTest.java +++ b/flink-table/flink-sql-parser-hive/src/test/java/org/apache/flink/sql/parser/hive/FlinkHiveSqlParserImplTest.java @@ -440,8 +440,16 @@ public void testDropPartition() { .ok( "ALTER TABLE `TBL`\n" + "DROP\n" - + "PARTITION (`P1` = 'a', `P2` = 1)\n" + + "PARTITION (`P1` = 'a', `P2` = 1),\n" + "PARTITION (`P1` = 'b', `P2` = 2)"); + sql("alter table tbl drop partition (p1='a',p2=1), " + + "partition(p1='b',p2=2), partition(p1='c',p2=3)") + .ok( + "ALTER TABLE `TBL`\n" + + "DROP\n" + + "PARTITION (`P1` = 'a', `P2` = 1),\n" + + "PARTITION (`P1` = 'b', `P2` = 2),\n" + + "PARTITION (`P1` = 'c', `P2` = 3)"); // TODO: support IGNORE PROTECTION, PURGE } diff --git a/flink-table/flink-sql-parser/src/main/java/org/apache/flink/sql/parser/ddl/SqlDropPartitions.java b/flink-table/flink-sql-parser/src/main/java/org/apache/flink/sql/parser/ddl/SqlDropPartitions.java index 151e8bde1eea6..99d2e6a00d29c 100644 --- a/flink-table/flink-sql-parser/src/main/java/org/apache/flink/sql/parser/ddl/SqlDropPartitions.java +++ b/flink-table/flink-sql-parser/src/main/java/org/apache/flink/sql/parser/ddl/SqlDropPartitions.java @@ -70,11 +70,14 @@ public void unparse(SqlWriter writer, int leftPrec, int rightPrec) { } int opLeftPrec = getOperator().getLeftPrec(); int opRightPrec = getOperator().getRightPrec(); + final SqlWriter.Frame frame = writer.startList("", ""); for (SqlNodeList partSpec : partSpecs) { + writer.sep(","); writer.newlineAndIndent(); writer.keyword("PARTITION"); partSpec.unparse(writer, opLeftPrec, opRightPrec); } + writer.endList(frame); } @Nonnull