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