[improvement](vectorized) Merge block in scanner to speed up query with conjunct (#8395)

This commit is contained in:
HappenLee
2022-03-09 13:11:18 +08:00
committed by GitHub
parent 51103dcf6e
commit f4663ad2eb
2 changed files with 8 additions and 2 deletions

View File

@ -221,7 +221,14 @@ void VOlapScanNode::scanner_thread(VOlapScanner* scanner) {
std::lock_guard<std::mutex> l(_free_blocks_lock);
_free_blocks.emplace_back(block);
} else {
blocks.push_back(block);
if (!blocks.empty() && blocks.back()->rows() + block->rows() <= _runtime_state->batch_size()) {
MutableBlock(blocks.back()).merge(*block);
block->clear_column_data();
std::lock_guard<std::mutex> l(_free_blocks_lock);
_free_blocks.emplace_back(block);
} else {
blocks.push_back(block);
}
}
raw_rows_read = scanner->raw_rows_read();
}