From f750c43a63e79fbaf5cbff2ae6d34d7ff736a9dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E5=87=AF?= Date: Sun, 18 Feb 2024 22:23:34 +0800 Subject: [PATCH 1/3] [Fix](inverted index) fix inverted index read data opt not work on MOW --- be/src/olap/rowset/segment_v2/segment_iterator.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/be/src/olap/rowset/segment_v2/segment_iterator.cpp b/be/src/olap/rowset/segment_v2/segment_iterator.cpp index 24c452f383a11d..336cb735be4fd9 100644 --- a/be/src/olap/rowset/segment_v2/segment_iterator.cpp +++ b/be/src/olap/rowset/segment_v2/segment_iterator.cpp @@ -1042,10 +1042,6 @@ Status SegmentIterator::_apply_inverted_index_on_block_column_predicate( } bool SegmentIterator::_need_read_data(ColumnId cid) { - // for safety reason, only support DUP_KEYS - if (_opts.tablet_schema->keys_type() != KeysType::DUP_KEYS) { - return true; - } if (_output_columns.count(-1)) { // if _output_columns contains -1, it means that the light // weight schema change may not be enabled or other reasons From 3911bc7104cbc50616246622f3504dae0c76377f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E5=87=AF?= Date: Mon, 19 Feb 2024 18:22:15 +0800 Subject: [PATCH 2/3] fix delete --- be/src/olap/rowset/segment_v2/segment_iterator.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/be/src/olap/rowset/segment_v2/segment_iterator.cpp b/be/src/olap/rowset/segment_v2/segment_iterator.cpp index 336cb735be4fd9..db331c0ee1efbf 100644 --- a/be/src/olap/rowset/segment_v2/segment_iterator.cpp +++ b/be/src/olap/rowset/segment_v2/segment_iterator.cpp @@ -1042,6 +1042,9 @@ Status SegmentIterator::_apply_inverted_index_on_block_column_predicate( } bool SegmentIterator::_need_read_data(ColumnId cid) { + if (!_opts.delete_condition_predicates.empty()) { + return true; + } if (_output_columns.count(-1)) { // if _output_columns contains -1, it means that the light // weight schema change may not be enabled or other reasons From 4641cb30e81062eee9d5fe58618e612da44685f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E5=87=AF?= Date: Mon, 19 Feb 2024 18:30:36 +0800 Subject: [PATCH 3/3] fix delete --- be/src/olap/rowset/segment_v2/segment_iterator.cpp | 3 ++- 1 file changed, 2 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 db331c0ee1efbf..743ffb4d94b3d4 100644 --- a/be/src/olap/rowset/segment_v2/segment_iterator.cpp +++ b/be/src/olap/rowset/segment_v2/segment_iterator.cpp @@ -1042,7 +1042,8 @@ Status SegmentIterator::_apply_inverted_index_on_block_column_predicate( } bool SegmentIterator::_need_read_data(ColumnId cid) { - if (!_opts.delete_condition_predicates.empty()) { + // if there is delete predicate, we always need to read data + if (_opts.delete_condition_predicates->num_of_column_predicate() > 0) { return true; } if (_output_columns.count(-1)) {