This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new d14ab953266 [fix](rowsetreader) determine merge iterator considering
segment num (#29269)
d14ab953266 is described below
commit d14ab953266a90d4e04d38d0b2fab802083b271e
Author: Yongqiang YANG <[email protected]>
AuthorDate: Sat Jan 27 08:51:21 2024 +0800
[fix](rowsetreader) determine merge iterator considering segment num
(#29269)
---
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 3834f2f10bb..fd275988164 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]