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

dataroaring pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new 79b41541a0a [fix](dynamic partition) fix create dynamic partition with 
overlap not throw exception #37924 (#37966)
79b41541a0a is described below

commit 79b41541a0a6cf4eab1e8ab20e28f399bd9ec347
Author: yujun <yu.jun.re...@gmail.com>
AuthorDate: Wed Jul 17 17:21:58 2024 +0800

    [fix](dynamic partition) fix create dynamic partition with overlap not 
throw exception #37924 (#37966)
    
    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 43c9cfd02d7..896629458b1 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
@@ -277,9 +277,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
@@ -298,7 +300,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: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to