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 a15e3e549af [fix](catelog) Unifies partition items string (#45669)
a15e3e549af is described below

commit a15e3e549af1aa125e9e5317214c26230f51c415
Author: walter <maoch...@selectdb.com>
AuthorDate: Fri Dec 20 12:34:24 2024 +0800

    [fix](catelog) Unifies partition items string (#45669)
    
    ### What problem does this PR solve?
    
    Issue Number: close #xxx
    
    Related PR: #xxx
    
    Problem Summary:
    
    For range partitions, `getItems().toString()` is equal to
    `getItemsString`, but for list partitions, there has a `,` between each
    item.
    
    The upsert record of binlog is generated via `getItemsString`, but the
    getMeta method fetches partition items string via
    `getItems().toString()`, which are different in the list partitions, and
    the ccr-syncer is unable to identify them.
    
    This PR unifies all partition items string via `getItemsString`.
---
 fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java   |  6 +-----
 .../java/org/apache/doris/catalog/ListPartitionItem.java     | 12 ++++++------
 .../java/org/apache/doris/catalog/RangePartitionItem.java    | 12 ++++++------
 .../org/apache/doris/common/proc/EsPartitionsProcDir.java    |  2 +-
 .../java/org/apache/doris/common/proc/PartitionsProcDir.java |  2 +-
 5 files changed, 15 insertions(+), 19 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 cc7b8846b1f..1c6345613d7 100644
--- 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
@@ -6486,11 +6486,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 dba109a9539..98585381244 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
@@ -61,7 +61,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() {
@@ -173,11 +178,6 @@ 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/RangePartitionItem.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/RangePartitionItem.java
index 690ab88991b..96bf0097c28 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
@@ -46,7 +46,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() {
@@ -125,11 +130,6 @@ 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 3c44874cb7d..3ac8b797d64 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 {


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

Reply via email to