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

w41ter pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new 4a7e2911c7f branch-2.1: [fix](catelog) Unifies partition items string 
#45669 (#45700)
4a7e2911c7f is described below

commit 4a7e2911c7f3790c49d493d5ed9a54d026d73067
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Dec 23 10:04:33 2024 +0800

    branch-2.1: [fix](catelog) Unifies partition items string #45669 (#45700)
    
    Cherry-picked from #45669
    
    ---------
    
    Co-authored-by: walter <maoch...@selectdb.com>
---
 .../src/main/java/org/apache/doris/catalog/Env.java   |  6 +-----
 .../org/apache/doris/catalog/ListPartitionItem.java   | 19 +++++++++++++++----
 .../java/org/apache/doris/catalog/PartitionInfo.java  | 10 ++++++++++
 .../java/org/apache/doris/catalog/PartitionItem.java  |  3 +++
 .../java/org/apache/doris/catalog/PartitionKey.java   |  5 +++++
 .../org/apache/doris/catalog/RangePartitionItem.java  | 12 +++++++++++-
 .../apache/doris/common/proc/EsPartitionsProcDir.java |  2 +-
 .../apache/doris/common/proc/PartitionsProcDir.java   |  2 +-
 .../doris/transaction/DatabaseTransactionMgr.java     | 16 ++++------------
 9 files changed, 51 insertions(+), 24 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
index 423092d6169..0bbe662ec6e 100755
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
@@ -6168,11 +6168,7 @@ public class Env {
                 long partitionId = partition.getId();
                 partitionMeta.setId(partitionId);
                 partitionMeta.setName(partition.getName());
-                String partitionRange = "";
-                if (tblPartitionInfo.getType() == PartitionType.RANGE
-                        || tblPartitionInfo.getType() == PartitionType.LIST) {
-                    partitionRange = 
tblPartitionInfo.getItem(partitionId).getItems().toString();
-                }
+                String partitionRange = 
tblPartitionInfo.getPartitionRangeString(partitionId);
                 partitionMeta.setRange(partitionRange);
                 partitionMeta.setVisibleVersion(partition.getVisibleVersion());
                 // partitionMeta.setTemp(partition.isTemp());
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/ListPartitionItem.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/ListPartitionItem.java
index 2db1531de9b..d4e781322e1 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/ListPartitionItem.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/ListPartitionItem.java
@@ -59,7 +59,12 @@ public class ListPartitionItem extends PartitionItem {
     }
 
     public String getItemsString() {
-        return toString();
+        // ATTN: DO NOT EDIT unless unless you explicitly guarantee 
compatibility
+        // between different versions.
+        //
+        // the ccr syncer depends on this string to identify partitions 
between two
+        // clusters (cluster versions may be different).
+        return getItems().toString();
     }
 
     public String getItemsSql() {
@@ -119,9 +124,10 @@ public class ListPartitionItem extends PartitionItem {
                                 partitionKey.toString(),
                                 pos));
             }
-            if (!isDefaultPartition() && 
MTMVUtil.getExprTimeSec(partitionKey.getKeys().get(pos), dateFormatOptional)
-                    >= nowTruncSubSec) {
-                // As long as one of the partitionKeys meets the requirements, 
this partition needs to be retained
+            if (!isDefaultPartition()
+                    && 
MTMVUtil.getExprTimeSec(partitionKey.getKeys().get(pos), dateFormatOptional) >= 
nowTruncSubSec) {
+                // As long as one of the partitionKeys meets the requirements, 
this partition
+                // needs to be retained
                 return true;
             }
         }
@@ -178,6 +184,11 @@ public class ListPartitionItem extends PartitionItem {
 
     @Override
     public String toString() {
+        // ATTN: DO NOT EDIT unless unless you explicitly guarantee 
compatibility
+        // between different versions.
+        //
+        // the ccr syncer depends on this string to identify partitions 
between two
+        // clusters (cluster versions may be different).
         StringBuilder builder = new StringBuilder();
         builder.append("partitionKeys: [");
         for (PartitionKey partitionKey : partitionKeys) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionInfo.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionInfo.java
index 8f148188a5a..19be4783336 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionInfo.java
@@ -161,6 +161,16 @@ public class PartitionInfo implements Writable {
         return item;
     }
 
+    // Get the unique string of the partition range.
+    public String getPartitionRangeString(long partitionId) {
+        String partitionRange = "";
+        if (getType() == PartitionType.RANGE || getType() == 
PartitionType.LIST) {
+            PartitionItem item = getItem(partitionId);
+            partitionRange = item.getItemsString();
+        }
+        return partitionRange;
+    }
+
     public PartitionItem getItemOrAnalysisException(long partitionId) throws 
AnalysisException {
         PartitionItem item = idToItem.get(partitionId);
         if (item == null) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionItem.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionItem.java
index 386f7537b03..e562e13cc82 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionItem.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionItem.java
@@ -29,6 +29,9 @@ public abstract class PartitionItem implements 
Comparable<PartitionItem>, Writab
     public static final Comparator<Map.Entry<Long, PartitionItem>> 
ITEM_MAP_ENTRY_COMPARATOR =
             Comparator.comparing(o -> ((ListPartitionItem) 
o.getValue()).getItems().iterator().next());
 
+    // get the unique string of the partition item.
+    public abstract String getItemsString();
+
     public abstract <T> T getItems();
 
     public abstract PartitionItem getIntersect(PartitionItem newItem);
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionKey.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionKey.java
index 401111af66a..100f4102245 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionKey.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionKey.java
@@ -324,6 +324,11 @@ public class PartitionKey implements 
Comparable<PartitionKey>, Writable {
 
     @Override
     public String toString() {
+        // ATTN: DO NOT EDIT unless unless you explicitly guarantee 
compatibility
+        // between different versions.
+        //
+        // the ccr syncer depends on this string to identify partitions 
between two
+        // clusters (cluster versions may be different).
         StringBuilder builder = new StringBuilder();
         builder.append("types: [");
         builder.append(Joiner.on(", ").join(types));
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/RangePartitionItem.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/RangePartitionItem.java
index e7f2a9cab5d..09ca1a3519f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/RangePartitionItem.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/RangePartitionItem.java
@@ -47,7 +47,12 @@ public class RangePartitionItem extends PartitionItem {
     }
 
     public String getItemsString() {
-        return toString();
+        // ATTN: DO NOT EDIT unless unless you explicitly guarantee 
compatibility
+        // between different versions.
+        //
+        // the ccr syncer depends on this string to identify partitions 
between two
+        // clusters (cluster versions may be different).
+        return partitionKeyRange.toString();
     }
 
     public String getItemsSql() {
@@ -126,6 +131,11 @@ public class RangePartitionItem extends PartitionItem {
 
     @Override
     public String toString() {
+        // ATTN: DO NOT EDIT unless unless you explicitly guarantee 
compatibility
+        // between different versions.
+        //
+        // the ccr syncer depends on this string to identify partitions 
between two
+        // clusters (cluster versions may be different).
         return partitionKeyRange.toString();
     }
 }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/common/proc/EsPartitionsProcDir.java
 
b/fe/fe-core/src/main/java/org/apache/doris/common/proc/EsPartitionsProcDir.java
index 87e7fa449f1..ed5cfc18d13 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/common/proc/EsPartitionsProcDir.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/common/proc/EsPartitionsProcDir.java
@@ -93,7 +93,7 @@ public class EsPartitionsProcDir implements ProcDirInterface {
                 }
                 partitionInfo.add(joiner.join(colNames));  // partition key
                 partitionInfo.add(
-                        
rangePartitionInfo.getItem(esShardPartitions.getPartitionId()).getItems().toString());
 // range
+                        
rangePartitionInfo.getItem(esShardPartitions.getPartitionId()).getItemsString());
 // range
                 partitionInfo.add("-");  // dis
                 
partitionInfo.add(esShardPartitions.getShardRoutings().size());  // shards
                 partitionInfo.add(1);  //  replica num
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/common/proc/PartitionsProcDir.java 
b/fe/fe-core/src/main/java/org/apache/doris/common/proc/PartitionsProcDir.java
index 6b5a63a49e4..3bd9fffaf49 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/common/proc/PartitionsProcDir.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/common/proc/PartitionsProcDir.java
@@ -323,7 +323,7 @@ public class PartitionsProcDir implements ProcDirInterface {
                     String colNamesStr = joiner.join(colNames);
                     partitionInfo.add(colNamesStr);
                     trow.addToColumnValue(new 
TCell().setStringVal(colNamesStr));
-                    String itemStr = 
tblPartitionInfo.getItem(partitionId).getItems().toString();
+                    String itemStr = 
tblPartitionInfo.getPartitionRangeString(partitionId);
                     partitionInfo.add(itemStr);
                     trow.addToColumnValue(new TCell().setStringVal(itemStr));
                 } else {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java
 
b/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java
index 61721e7d892..9db515300ae 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java
@@ -27,7 +27,6 @@ import org.apache.doris.catalog.OlapTable.OlapTableState;
 import org.apache.doris.catalog.Partition;
 import org.apache.doris.catalog.Partition.PartitionState;
 import org.apache.doris.catalog.PartitionInfo;
-import org.apache.doris.catalog.PartitionType;
 import org.apache.doris.catalog.Replica;
 import org.apache.doris.catalog.Table;
 import org.apache.doris.catalog.TableIf;
@@ -1433,12 +1432,9 @@ public class DatabaseTransactionMgr {
             TableCommitInfo tableCommitInfo = new TableCommitInfo(tableId);
             PartitionInfo tblPartitionInfo = table.getPartitionInfo();
             for (long partitionId : tableToPartition.get(tableId)) {
-                String partitionRange = "";
-                if (tblPartitionInfo.getType() == PartitionType.RANGE
-                        || tblPartitionInfo.getType() == PartitionType.LIST) {
-                    partitionRange = 
tblPartitionInfo.getItem(partitionId).getItems().toString();
-                }
-                PartitionCommitInfo partitionCommitInfo = new 
PartitionCommitInfo(partitionId, partitionRange, -1, -1,
+                String partitionRange = 
tblPartitionInfo.getPartitionRangeString(partitionId);
+                PartitionCommitInfo partitionCommitInfo = new 
PartitionCommitInfo(
+                        partitionId, partitionRange, -1, -1,
                         table.isTemporaryPartition(partitionId));
                 tableCommitInfo.addPartitionCommitInfo(partitionCommitInfo);
             }
@@ -1475,11 +1471,7 @@ public class DatabaseTransactionMgr {
             PartitionInfo tblPartitionInfo = table.getPartitionInfo();
             for (long partitionId : tableToPartition.get(tableId)) {
                 Partition partition = table.getPartition(partitionId);
-                String partitionRange = "";
-                if (tblPartitionInfo.getType() == PartitionType.RANGE
-                        || tblPartitionInfo.getType() == PartitionType.LIST) {
-                    partitionRange = 
tblPartitionInfo.getItem(partitionId).getItems().toString();
-                }
+                String partitionRange = 
tblPartitionInfo.getPartitionRangeString(partitionId);
                 PartitionCommitInfo partitionCommitInfo = new 
PartitionCommitInfo(partitionId, partitionRange,
                         partition.getNextVersion(),
                         System.currentTimeMillis() /* use as partition visible 
time */,


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

Reply via email to