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

Reply via email to