github-actions[bot] commented on code in PR #66849:
URL: https://github.com/apache/doris/pull/66849#discussion_r3796864535


##########
be/src/storage/iterator/block_reader.cpp:
##########
@@ -95,6 +110,10 @@ Status BlockReader::_ensure_binlog_column_pos(const Block& 
src_block) {
 
     const uint32_t col_num = src_block.columns();
     _before_column_idx.resize(col_num);
+    std::iota(_before_column_idx.begin(), _before_column_idx.end(), 0);
+    std::vector<bool> is_before_value_column(col_num, false);

Review Comment:
   [P1] Build the name map once before resolving mirrors. MIN_DELTA now feeds 
every AFTER and BEFORE column into this block, but the loop below calls 
Block::get_position_by_name()--an O(C) scan--for each physical column. A table 
with V values has roughly 2V value/mirror columns, so every BlockReader 
performs O(C^2) string comparisons, repeated per tablet scanner. Please use 
Block::get_name_to_pos_map() once here and resolve every BEFORE name from it.



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to