You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2020/03/24 09:14:34 UTC

[incubator-doris] branch master updated: [BUG] Make default result ordering of SHOW PARTITIONS statement be consist with 0.11 (#3184)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new e794bb6  [BUG] Make default result ordering of SHOW PARTITIONS statement be consist with 0.11 (#3184)
e794bb6 is described below

commit e794bb69b779edb4cdedb5e89e78b9b91ba47c9d
Author: Dayue Gao <ga...@meituan.com>
AuthorDate: Tue Mar 24 17:14:27 2020 +0800

    [BUG] Make default result ordering of SHOW PARTITIONS statement be consist with 0.11 (#3184)
---
 .../java/org/apache/doris/catalog/OlapTable.java   |  4 ----
 .../doris/common/proc/PartitionsProcDir.java       | 23 +++++++++++++---------
 .../apache/doris/catalog/TempPartitionTest.java    |  2 +-
 3 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/fe/src/main/java/org/apache/doris/catalog/OlapTable.java b/fe/src/main/java/org/apache/doris/catalog/OlapTable.java
index b783fc7..44e54cd 100644
--- a/fe/src/main/java/org/apache/doris/catalog/OlapTable.java
+++ b/fe/src/main/java/org/apache/doris/catalog/OlapTable.java
@@ -1444,10 +1444,6 @@ public class OlapTable extends Table {
         tempPartitions.dropAll();
     }
 
-    public Collection<Partition> getAllTempPartitions() {
-        return tempPartitions.getAllPartitions();
-    }
-
     public boolean existTempPartitions() {
         return !tempPartitions.isEmpty();
     }
diff --git a/fe/src/main/java/org/apache/doris/common/proc/PartitionsProcDir.java b/fe/src/main/java/org/apache/doris/common/proc/PartitionsProcDir.java
index 9d6d27b..a3c5a61 100644
--- a/fe/src/main/java/org/apache/doris/common/proc/PartitionsProcDir.java
+++ b/fe/src/main/java/org/apache/doris/common/proc/PartitionsProcDir.java
@@ -51,10 +51,10 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.stream.Collectors;
 
 
@@ -209,18 +209,23 @@ public class PartitionsProcDir implements ProcDirInterface {
         List<List<Comparable>> partitionInfos = new ArrayList<List<Comparable>>();
         db.readLock();
         try {
-            Set<String> partitionsNames;
-            if (isTempPartition) {
-                partitionsNames = olapTable.getAllTempPartitions().stream().map(p -> p.getName()).collect(Collectors.toSet());
+            List<Long> partitionIds;
+            PartitionInfo tblPartitionInfo = olapTable.getPartitionInfo();
+
+            // for range partitions, we return partitions in ascending range order by default.
+            // this is to be consistent with the behaviour before 0.12
+            if (tblPartitionInfo.getType() == PartitionType.RANGE) {
+                RangePartitionInfo rangePartitionInfo = (RangePartitionInfo) tblPartitionInfo;
+                partitionIds = rangePartitionInfo.getSortedRangeMap(isTempPartition).stream()
+                        .map(Map.Entry::getKey).collect(Collectors.toList());
             } else {
-                partitionsNames = olapTable.getPartitions().stream().map(p -> p.getName()).collect(Collectors.toSet());
+                Collection<Partition> partitions = isTempPartition ? olapTable.getTempPartitions() : olapTable.getPartitions();
+                partitionIds = partitions.stream().map(Partition::getId).collect(Collectors.toList());
             }
 
             Joiner joiner = Joiner.on(", ");
-            PartitionInfo tblPartitionInfo = olapTable.getPartitionInfo();
-            for (String partName : partitionsNames) {
-                Partition partition = olapTable.getPartition(partName, isTempPartition);
-                long partitionId = partition.getId();
+            for (Long partitionId : partitionIds) {
+                Partition partition = olapTable.getPartition(partitionId);
 
                 List<Comparable> partitionInfo = new ArrayList<Comparable>();
                 String partitionName = partition.getName();
diff --git a/fe/src/test/java/org/apache/doris/catalog/TempPartitionTest.java b/fe/src/test/java/org/apache/doris/catalog/TempPartitionTest.java
index 8449a8c..849848d 100644
--- a/fe/src/test/java/org/apache/doris/catalog/TempPartitionTest.java
+++ b/fe/src/test/java/org/apache/doris/catalog/TempPartitionTest.java
@@ -578,7 +578,7 @@ public class TempPartitionTest {
 
         OlapTable readTbl = (OlapTable) Table.read(in);
         Assert.assertEquals(tbl.getId(), readTbl.getId());
-        Assert.assertEquals(tbl.getAllTempPartitions().size(), readTbl.getAllTempPartitions().size());
+        Assert.assertEquals(tbl.getTempPartitions().size(), readTbl.getTempPartitions().size());
         file.delete();
     }
 


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