This is an automated email from the ASF dual-hosted git repository.
kxiao 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 6a9772dd3a8 [fix](unique) determine merge iterator considering segment
num #29269 (#29628)
6a9772dd3a8 is described below
commit 6a9772dd3a8f70197a6e0dcac75fcff98822b97b
Author: Yongqiang YANG <[email protected]>
AuthorDate: Mon Jan 8 23:44:32 2024 +0800
[fix](unique) determine merge iterator considering segment num #29269
(#29628)
---
be/src/olap/rowset/beta_rowset_reader.h | 11 ++++++++++-
.../suites/tpch_sf100_unique_p2/load_one_step/load.groovy | 7 ++++++-
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/be/src/olap/rowset/beta_rowset_reader.h
b/be/src/olap/rowset/beta_rowset_reader.h
index 2fe4771f556..2a9a5cf8072 100644
--- a/be/src/olap/rowset/beta_rowset_reader.h
+++ b/be/src/olap/rowset/beta_rowset_reader.h
@@ -90,7 +90,16 @@ private:
bool _should_push_down_value_predicates() const;
bool _is_merge_iterator() const {
return _read_context->need_ordered_result &&
- _rowset->rowset_meta()->is_segments_overlapping();
+ _rowset->rowset_meta()->is_segments_overlapping() &&
_get_segment_num() > 1;
+ }
+
+ int32_t _get_segment_num() const {
+ auto [seg_start, seg_end] = _segment_offsets;
+ if (seg_start == seg_end) {
+ seg_start = 0;
+ seg_end = _rowset->num_segments();
+ }
+ return seg_end - seg_start;
}
DorisCallOnce<Status> _init_iter_once;
diff --git
a/regression-test/suites/tpch_sf100_unique_p2/load_one_step/load.groovy
b/regression-test/suites/tpch_sf100_unique_p2/load_one_step/load.groovy
index 03040371245..f353ee24054 100644
--- a/regression-test/suites/tpch_sf100_unique_p2/load_one_step/load.groovy
+++ b/regression-test/suites/tpch_sf100_unique_p2/load_one_step/load.groovy
@@ -57,6 +57,11 @@ suite("load_one_step") {
logger.info("select ${table} numbers:
${loadRowCount[0][0]}".toString())
assertTrue(loadRowCount[0][0] == rows)
}
+ if (table == "lineitem") {
+ def loadRowCount = sql "select count(1) from ${table}
where l_orderkey = 1"
+ logger.info("select ${table} numbers:
${loadRowCount[0][0]}".toString())
+ assertTrue(loadRowCount[0][0] == 6)
+ }
sql new
File("""${context.file.parentFile.parent}/ddl/${table}_delete.sql""").text
for (int i = 1; i <= 5; i++) {
def loadRowCount = sql "select count(1) from ${table}"
@@ -67,7 +72,7 @@ suite("load_one_step") {
}
sleep(5000)
}
-
+
sql """SET query_timeout = 1800"""
sql """ ANALYZE TABLE $table WITH SYNC """
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]