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

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

commit c9875cb3f1aea3957fa201d0d72efe0ce8ed4eaf
Author: caiconghui <[email protected]>
AuthorDate: Thu Apr 21 12:16:27 2022 +0800

    [fix](dynamic_partition) fix dynamic partition scheduler not work for olap 
table with random hash info (#9108)
---
 .../doris/clone/DynamicPartitionScheduler.java       | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/clone/DynamicPartitionScheduler.java
 
b/fe/fe-core/src/main/java/org/apache/doris/clone/DynamicPartitionScheduler.java
index e85b620d01..319e4dcb88 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/clone/DynamicPartitionScheduler.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/clone/DynamicPartitionScheduler.java
@@ -23,10 +23,12 @@ import org.apache.doris.analysis.DropPartitionClause;
 import org.apache.doris.analysis.HashDistributionDesc;
 import org.apache.doris.analysis.PartitionKeyDesc;
 import org.apache.doris.analysis.PartitionValue;
+import org.apache.doris.analysis.RandomDistributionDesc;
 import org.apache.doris.analysis.SinglePartitionDesc;
 import org.apache.doris.catalog.Catalog;
 import org.apache.doris.catalog.Column;
 import org.apache.doris.catalog.Database;
+import org.apache.doris.catalog.DistributionInfo;
 import org.apache.doris.catalog.DynamicPartitionProperty;
 import org.apache.doris.catalog.HashDistributionInfo;
 import org.apache.doris.catalog.OlapTable;
@@ -220,14 +222,18 @@ public class DynamicPartitionScheduler extends 
MasterDaemon {
             SinglePartitionDesc rangePartitionDesc = new 
SinglePartitionDesc(true, partitionName,
                     partitionKeyDesc, partitionProperties);
 
-            // construct distribution desc
-            HashDistributionInfo hashDistributionInfo = (HashDistributionInfo) 
olapTable.getDefaultDistributionInfo();
-            List<String> distColumnNames = new ArrayList<>();
-            for (Column distributionColumn : 
hashDistributionInfo.getDistributionColumns()) {
-                distColumnNames.add(distributionColumn.getName());
+            DistributionDesc distributionDesc = null;
+            DistributionInfo distributionInfo = 
olapTable.getDefaultDistributionInfo();
+            if (distributionInfo.getType() == 
DistributionInfo.DistributionInfoType.HASH) {
+                HashDistributionInfo hashDistributionInfo = 
(HashDistributionInfo) distributionInfo;
+                List<String> distColumnNames = new ArrayList<>();
+                for (Column distributionColumn : 
hashDistributionInfo.getDistributionColumns()) {
+                    distColumnNames.add(distributionColumn.getName());
+                }
+                distributionDesc = new 
HashDistributionDesc(dynamicPartitionProperty.getBuckets(), distColumnNames);
+            } else {
+                distributionDesc = new 
RandomDistributionDesc(dynamicPartitionProperty.getBuckets());
             }
-            DistributionDesc distributionDesc = new 
HashDistributionDesc(dynamicPartitionProperty.getBuckets(), distColumnNames);
-
             // add partition according to partition desc and distribution desc
             addPartitionClauses.add(new AddPartitionClause(rangePartitionDesc, 
distributionDesc, null, false));
         }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to