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]

Reply via email to