From 6d75d56e7bca9f7bb26ab061481300a38ce3b68f Mon Sep 17 00:00:00 2001 From: Xiangyu Wang Date: Wed, 31 May 2023 13:09:03 +0800 Subject: [PATCH] [Fix](dynamic-partition) Try to avoid setting a zero-bucket-size partition. (#20177) A fallback to avoid BE crash problem when partition's bucket size is 0, but not resolved. --- .../java/org/apache/doris/datasource/InternalCatalog.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java index 835acddb30..1355776a9d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java @@ -89,6 +89,7 @@ import org.apache.doris.catalog.PartitionInfo; import org.apache.doris.catalog.PartitionItem; import org.apache.doris.catalog.PartitionType; import org.apache.doris.catalog.PrimitiveType; +import org.apache.doris.catalog.RandomDistributionInfo; import org.apache.doris.catalog.RangePartitionItem; import org.apache.doris.catalog.Replica; import org.apache.doris.catalog.Replica.ReplicaState; @@ -1416,6 +1417,11 @@ public class InternalCatalog implements CatalogIf { if (hashDistributionInfo.getBucketNum() <= 0) { throw new DdlException("Cannot assign hash distribution buckets less than 1"); } + } else if (distributionInfo.getType() == DistributionInfoType.RANDOM) { + RandomDistributionInfo randomDistributionInfo = (RandomDistributionInfo) distributionInfo; + if (randomDistributionInfo.getBucketNum() <= 0) { + throw new DdlException("Cannot assign random distribution buckets less than 1"); + } } } else { // make sure partition-dristribution-info is deep copied from default-distribution-info