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

yiguolei 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 e2dc7544dde [branch-2.1](iot) Fix unexpected error when iot auto 
detect get no data (#40657) (#40691)
e2dc7544dde is described below

commit e2dc7544dde6248c13bde4ea5ed3bc1b01307e09
Author: zclllhhjj <zhaochan...@selectdb.com>
AuthorDate: Thu Sep 12 14:03:43 2024 +0800

    [branch-2.1](iot) Fix unexpected error when iot auto detect get no data 
(#40657) (#40691)
    
    pick https://github.com/apache/doris/pull/40657
---
 .../doris/insertoverwrite/InsertOverwriteUtil.java |  3 +++
 .../insert_overwrite_auto_detect.groovy            | 20 ++++++++++------
 .../test_auto_partition_behavior.groovy            | 28 ++++++++++++----------
 3 files changed, 32 insertions(+), 19 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/insertoverwrite/InsertOverwriteUtil.java
 
b/fe/fe-core/src/main/java/org/apache/doris/insertoverwrite/InsertOverwriteUtil.java
index a0e04a35bd9..a773f3a99bb 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/insertoverwrite/InsertOverwriteUtil.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/insertoverwrite/InsertOverwriteUtil.java
@@ -79,6 +79,9 @@ public class InsertOverwriteUtil {
                 ReplacePartitionClause replacePartitionClause = new 
ReplacePartitionClause(
                         new PartitionNames(false, partitionNames),
                         new PartitionNames(true, tempPartitionNames), 
properties);
+                if (replacePartitionClause.getTempPartitionNames().isEmpty()) {
+                    return;
+                }
                 Env.getCurrentEnv()
                         .replaceTempPartition((Database) 
olapTable.getDatabase(),
                                 (OlapTable) olapTable, replacePartitionClause);
diff --git 
a/regression-test/suites/insert_overwrite_p0/insert_overwrite_auto_detect.groovy
 
b/regression-test/suites/insert_overwrite_p0/insert_overwrite_auto_detect.groovy
index cd33775f221..ffd3c3e642f 100644
--- 
a/regression-test/suites/insert_overwrite_p0/insert_overwrite_auto_detect.groovy
+++ 
b/regression-test/suites/insert_overwrite_p0/insert_overwrite_auto_detect.groovy
@@ -148,12 +148,18 @@ suite("test_iot_auto_detect") {
    sql """ insert into dt values ("2005-01-01"), ("2013-02-02"), 
("2022-03-03"); """
    sql """ insert overwrite table dt partition(*) values ("2008-01-01"), 
("2008-02-02"); """
    qt_sql " select * from dt order by k0; "
-   try {
+   test {
       sql """ insert overwrite table dt partition(*) values ("2023-02-02"), 
("3000-12-12"); """
-   } catch (Exception e) {
-        log.info(e.getMessage())
-        assertTrue(e.getMessage().contains('Insert has filtered data in strict 
mode') || 
-            e.getMessage().contains('Cannot found origin partitions in auto 
detect overwriting'))
-    }
-
+      check { result, exception, startTime, endTime ->
+         assertTrue(exception.getMessage().contains('Insert has filtered data 
in strict mode') || 
+               exception.getMessage().contains('Cannot found origin partitions 
in auto detect overwriting'))
+      }
+   } 
+   // test no rows(no partition hits) overwrite
+   sql " drop table if exists dt2"
+   sql " create table dt2 like dt"
+   sql " insert overwrite table dt2 partition(*) select * from dt2"
+   sql " insert overwrite table dt partition(*) select * from dt2"
+   sql " insert overwrite table dt partition(p10, pMAX) select * from dt2"
+   sql " insert overwrite table dt select * from dt2"
 }
diff --git 
a/regression-test/suites/partition_p0/auto_partition/test_auto_partition_behavior.groovy
 
b/regression-test/suites/partition_p0/auto_partition/test_auto_partition_behavior.groovy
index 9a8b49fd726..f4adfe9c19a 100644
--- 
a/regression-test/suites/partition_p0/auto_partition/test_auto_partition_behavior.groovy
+++ 
b/regression-test/suites/partition_p0/auto_partition/test_auto_partition_behavior.groovy
@@ -50,11 +50,9 @@ suite("test_auto_partition_behavior") {
     result = sql "show partitions from unique_table"
     assertEquals(result.size(), 10)
     // add partition
-    try {
+    test {
         sql """ alter table unique_table add partition padd values in ("Xxx") 
"""
-        fail()
-    } catch (Exception e) {
-        assertTrue(e.getMessage().contains("is conflict with current 
partitionKeys"))
+        exception "is conflict with current partitionKeys"
     }
     // drop partition
     def partitions = sql "show partitions from unique_table order by 
PartitionName"
@@ -94,11 +92,9 @@ suite("test_auto_partition_behavior") {
     result = sql "show partitions from dup_table"
     assertEquals(result.size(), 10)
     // add partition
-    try {
+    test {
         sql """ alter table dup_table add partition padd values in ("Xxx") """
-        fail()
-    } catch (Exception e) {
-        assertTrue(e.getMessage().contains("is conflict with current 
partitionKeys"))
+        exception "is conflict with current partitionKeys"
     }
     // drop partition
     partitions = sql "show partitions from dup_table order by PartitionName"
@@ -168,11 +164,9 @@ suite("test_auto_partition_behavior") {
         );
         """
     sql """ insert into rewrite values ("Xxx"); """
-    try {
+    test {
         sql """ insert overwrite table rewrite partition(p1) values ("") """
-        fail()
-    } catch (Exception e) {
-        assertTrue(e.getMessage().contains("Insert has filtered data in strict 
mode"))
+        exception "Insert has filtered data in strict mode"
     }
     sql """ insert overwrite table rewrite partition(p1) values ("Xxx") """
     qt_sql_overwrite """ select * from rewrite """ // Xxx
@@ -408,6 +402,9 @@ suite("test_auto_partition_behavior") {
     part_result = sql " show tablets from test_change "
     assertEquals(part_result.size, 52 * replicaNum)
 
+
+
+    // test not auto partition have expr.
     test {
         sql """
             CREATE TABLE not_auto_expr (
@@ -421,4 +418,11 @@ suite("test_auto_partition_behavior") {
         """
         exception "Non-auto partition table not support partition expr!"
     }
+
+
+    // test insert empty
+    sql "create table if not exists empty_range like test_change"
+    sql "insert into test_change select * from empty_range"
+    sql "create table if not exists empty_list like long_value"
+    sql "insert into long_value select * from empty_list"
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to