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

dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new f39bd1189f3 [fix](binlog) Fix add partition record sql (#35461)
f39bd1189f3 is described below

commit f39bd1189f3eaada90df202ea367a725f0177e35
Author: walter <w41te...@gmail.com>
AuthorDate: Tue May 28 15:24:37 2024 +0800

    [fix](binlog) Fix add partition record sql (#35461)
    
    
    1. support adding a temporary partition
    2. remove extra parentheses in the list partition value set
    3. support unpartitioned partition item
---
 .../apache/doris/binlog/AddPartitionRecord.java    | 32 +++++++++++++++-------
 1 file changed, 22 insertions(+), 10 deletions(-)

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 9bc5ff7da0f..852c0b45d87 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.ListPartitionItem;
 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 class AddPartitionRecord {
         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();
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to