diff --git a/fe/fe-core/src/main/java/org/apache/doris/binlog/AddPartitionRecord.java b/fe/fe-core/src/main/java/org/apache/doris/binlog/AddPartitionRecord.java index 9bc5ff7da0fd0e..852c0b45d87609 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/binlog/AddPartitionRecord.java +++ b/fe/fe-core/src/main/java/org/apache/doris/binlog/AddPartitionRecord.java @@ -22,6 +22,7 @@ import org.apache.doris.catalog.Partition; import org.apache.doris.catalog.PartitionItem; import org.apache.doris.catalog.PartitionKey; +import org.apache.doris.catalog.RangePartitionItem; import org.apache.doris.catalog.ReplicaAllocation; import org.apache.doris.persist.PartitionPersistInfo; import org.apache.doris.persist.gson.GsonUtils; @@ -69,23 +70,34 @@ public AddPartitionRecord(long commitSeq, PartitionPersistInfo partitionPersistI this.isMutable = partitionPersistInfo.isMutable(); StringBuilder sb = new StringBuilder(); - sb.append("ADD PARTITION ").append("`").append(partition.getName()).append("`").append(" VALUES "); - if (this.listPartitionItem.equals(ListPartitionItem.DUMMY_ITEM)) { + sb.append("ADD "); + if (isTempPartition) { + sb.append("TEMPORARY "); + } + sb.append("PARTITION `"); + sb.append(partition.getName()); + sb.append("` "); + + // See fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java:addPartition for details. + if (!this.range.equals(RangePartitionItem.DUMMY_ITEM)) { // range - sb.append("["); + sb.append("VALUES ["); sb.append(range.lowerEndpoint().toSql()); sb.append(", "); sb.append(range.upperEndpoint().toSql()); - sb.append(")"); - } else { + sb.append(") (\"version_info\" = \""); + sb.append(partition.getVisibleVersion()); + sb.append("\");"); + } else if (!this.listPartitionItem.equals(ListPartitionItem.DUMMY_ITEM)) { // list - sb.append("IN ("); + sb.append("VALUES IN "); sb.append(((ListPartitionItem) listPartitionItem).toSql()); - sb.append(")"); + sb.append(" (\"version_info\" = \""); + sb.append(partition.getVisibleVersion()); + sb.append("\");"); + } else { + // unpartitioned. } - sb.append("(\"version_info\" = \""); - sb.append(partition.getVisibleVersion()).append("\""); - sb.append(");"); this.sql = sb.toString(); }