[Improve](inverted index) improve performance by introducing bulk contains for bitmap in _build_index_result_column (#34831)

This commit is contained in:
airborne12
2024-05-17 14:40:08 +08:00
committed by yiguolei
parent 9b5028785d
commit e66dd58860

View File

@ -2510,12 +2510,13 @@ void SegmentIterator::_build_index_result_column(const uint16_t* sel_rowid_idx,
vectorized::ColumnUInt8::Container& vec_match_pred = index_result_column->get_data();
vec_match_pred.resize(block->rows());
size_t idx_in_selected = 0;
roaring::BulkContext bulk_context;
for (uint32_t i = 0; i < _current_batch_rows_read; i++) {
auto rowid = _block_rowids[i];
if (sel_rowid_idx == nullptr ||
(idx_in_selected < select_size && i == sel_rowid_idx[idx_in_selected])) {
if (index_result.contains(rowid)) {
if (index_result.containsBulk(bulk_context, rowid)) {
vec_match_pred[idx_in_selected] = true;
} else {
vec_match_pred[idx_in_selected] = false;