Skip to content

Commit

Permalink
[fix](binlog) Fix add partition record sql (#35461)
Browse files Browse the repository at this point in the history
1. support adding a temporary partition
2. remove extra parentheses in the list partition value set
3. support unpartitioned partition item
  • Loading branch information
w41ter authored and Doris-Extras committed May 28, 2024
1 parent d97788d commit efdce7e
Showing 1 changed file with 22 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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();
}

Expand Down

0 comments on commit efdce7e

Please sign in to comment.