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]

Reply via email to