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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]