This is an automated email from the ASF dual-hosted git repository.
dataroaring 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 7180290d68b [fix](dynamic partition) fix create dynamic partition with
overlap not throw exception #37924 (#37964)
7180290d68b is described below
commit 7180290d68bb2d5d2c1acf2326dbaf835a252637
Author: yujun <[email protected]>
AuthorDate: Wed Jul 17 19:13:35 2024 +0800
[fix](dynamic partition) fix create dynamic partition with overlap not
throw exception #37924 (#37964)
cherry-pick: #37924
---
.../doris/clone/DynamicPartitionScheduler.java | 9 +++++----
.../test_dynamic_partition_failed.groovy | 23 ++++++++++++++++++++++
2 files changed, 28 insertions(+), 4 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 4636eb30ca2..74f62bddb2d 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
@@ -278,9 +278,11 @@ public class DynamicPartitionScheduler extends
MasterDaemon {
// IllegalArgumentException: lb is greater than ub
LOG.warn("Error in gen addPartitionKeyRange. db: {}, table:
{}, partition idx: {}",
db.getFullName(), olapTable.getName(), idx, e);
- recordCreatePartitionFailedMsg(db.getFullName(),
olapTable.getName(),
- e.getMessage(), olapTable.getId());
- throw new DdlException(e.getMessage());
+ if (executeFirstTime) {
+ throw new DdlException("maybe dynamic_partition.start is
too small, error: "
+ + e.getMessage());
+ }
+ continue;
}
for (PartitionItem partitionItem :
rangePartitionInfo.getIdToItem(false).values()) {
// only support single column partition now
@@ -299,7 +301,6 @@ public class DynamicPartitionScheduler extends MasterDaemon
{
addPartitionKeyRange, db.getFullName(),
olapTable.getName(), idx, e);
recordCreatePartitionFailedMsg(db.getFullName(),
olapTable.getName(),
e.getMessage(), olapTable.getId());
- throw new DdlException(e.getMessage());
}
break;
}
diff --git
a/regression-test/suites/partition_p0/dynamic_partition/test_dynamic_partition_failed.groovy
b/regression-test/suites/partition_p0/dynamic_partition/test_dynamic_partition_failed.groovy
index 3447834a2af..065f44fb95f 100644
---
a/regression-test/suites/partition_p0/dynamic_partition/test_dynamic_partition_failed.groovy
+++
b/regression-test/suites/partition_p0/dynamic_partition/test_dynamic_partition_failed.groovy
@@ -26,6 +26,7 @@ suite('test_dynamic_partition_failed', 'nonConcurrent') {
PROPERTIES
(
"replication_num" = "1",
+ "dynamic_partition.replication_num" = "1",
"dynamic_partition.enable" = "true",
"dynamic_partition.end" = "3",
"dynamic_partition.time_unit" = "day",
@@ -46,6 +47,26 @@ suite('test_dynamic_partition_failed', 'nonConcurrent') {
setFeConfig('max_dynamic_partition_num', Integer.MAX_VALUE)
+ sql 'DROP TABLE IF EXISTS test_dynamic_partition_failed_ok2 FORCE'
+ sql '''CREATE TABLE test_dynamic_partition_failed_ok2
+ ( `k1` date NULL )
+ PARTITION BY RANGE(k1) (
+ PARTITION `phistory` VALUES less than ('2020-01-01')
+ )
+ DISTRIBUTED BY HASH(`k1`) BUCKETS 1
+ PROPERTIES
+ (
+ "replication_num" = "1",
+ "dynamic_partition.replication_num" = "1",
+ "dynamic_partition.enable" = "true",
+ "dynamic_partition.end" = "3",
+ "dynamic_partition.time_unit" = "YEAR",
+ "dynamic_partition.prefix" = "p",
+ "dynamic_partition.buckets" = "1",
+ "dynamic_partition.start" = "-10",
+ "dynamic_partition.create_history_partition" = "true"
+ )'''
+
sql 'DROP TABLE IF EXISTS test_dynamic_partition_failed_2'
test {
sql '''CREATE TABLE test_dynamic_partition_failed_2
@@ -55,6 +76,7 @@ suite('test_dynamic_partition_failed', 'nonConcurrent') {
PROPERTIES
(
"replication_num" = "1",
+ "dynamic_partition.replication_num" = "1",
"dynamic_partition.enable" = "true",
"dynamic_partition.end" = "3",
"dynamic_partition.time_unit" = "day",
@@ -74,6 +96,7 @@ suite('test_dynamic_partition_failed', 'nonConcurrent') {
} finally {
setFeConfig('max_dynamic_partition_num', old_max_dynamic_partition_num)
sql 'DROP TABLE IF EXISTS test_dynamic_partition_failed_ok1 FORCE'
+ sql 'DROP TABLE IF EXISTS test_dynamic_partition_failed_ok2 FORCE'
sql 'DROP TABLE IF EXISTS test_dynamic_partition_failed_2'
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]