HappenLee commented on code in PR #10694:
URL: https://github.com/apache/doris/pull/10694#discussion_r929506877


##########
be/src/vec/olap/vcollect_iterator.cpp:
##########
@@ -145,7 +150,7 @@ bool 
VCollectIterator::LevelIteratorComparator::operator()(LevelIterator* lhs, L
     bool lower = (cmp_res != 0) ? (cmp_res < 0) : (lhs->version() < 
rhs->version());
     lower ? lhs->set_same(true) : rhs->set_same(true);
 
-    return lower;
+    return UNLIKELY(_is_reverse) ? !lower : lower;

Review Comment:
   do not need reverse in key equals case



##########
be/src/olap/rowset/beta_rowset_reader.cpp:
##########
@@ -111,9 +112,10 @@ Status BetaRowsetReader::init(RowsetReaderContext* 
read_context) {
     RowwiseIterator* final_iterator;
     if (config::enable_storage_vectorization && read_context->is_vec) {
         if (read_context->need_ordered_result &&

Review Comment:
   Rethink the `read_orderby_key` and `need_ordered_result`, seems we only need 
one



##########
be/src/vec/olap/vcollect_iterator.cpp:
##########
@@ -34,14 +34,19 @@ VCollectIterator::~VCollectIterator() {}
         }                                                                      
         \
     } while (false)
 
-void VCollectIterator::init(TabletReader* reader) {
+void VCollectIterator::init(TabletReader* reader, bool force_merge, bool 
is_reverse) {
     _reader = reader;
     // when aggregate is enabled or key_type is DUP_KEYS, we don't merge
     // multiple data to aggregate for better performance
     if (_reader->_reader_type == READER_QUERY &&
         (_reader->_direct_mode || _reader->_tablet->keys_type() == 
KeysType::DUP_KEYS)) {
         _merge = false;
     }
+
+    if (force_merge) {
+        _merge = true;
+    }

Review Comment:
   _merge = force_merge



##########
be/src/vec/olap/vgeneric_iterators.cpp:
##########
@@ -177,7 +178,7 @@ class VMergeIteratorContext {
         if (_is_unique) {
             result ? this->set_skip(true) : rhs.set_skip(true);
         }
-        return result;
+        return UNLIKELY(_is_reverse) ? !result : result;

Review Comment:
   do not need reverse in key equals case



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to