From 7f2fdf78acebbacae31c4597de492533cd07035d Mon Sep 17 00:00:00 2001 From: airborne12 Date: Wed, 3 Apr 2024 10:48:59 +0800 Subject: [PATCH] [Enhancement](inverted index) set need to read data only when delete predicate contains the column (#33172) --- be/src/olap/rowset/segment_v2/segment_iterator.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/be/src/olap/rowset/segment_v2/segment_iterator.cpp b/be/src/olap/rowset/segment_v2/segment_iterator.cpp index dc692fa9bc..e4a139d9c3 100644 --- a/be/src/olap/rowset/segment_v2/segment_iterator.cpp +++ b/be/src/olap/rowset/segment_v2/segment_iterator.cpp @@ -1093,7 +1093,9 @@ bool SegmentIterator::_need_read_data(ColumnId cid) { return true; } // if there is delete predicate, we always need to read data - if (_opts.delete_condition_predicates->num_of_column_predicate() > 0) { + std::set delete_columns_set; + _opts.delete_condition_predicates->get_all_column_ids(delete_columns_set); + if (delete_columns_set.count(cid) > 0) { return true; } if (_output_columns.count(-1)) {