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
commit 823c469c5c9a4172db5a642b47d50a7746a3ce12 Author: Yongqiang YANG <98214048+dataroar...@users.noreply.github.com> 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: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org