diff --git a/be/src/olap/rowset/segment_v2/segment_iterator.cpp b/be/src/olap/rowset/segment_v2/segment_iterator.cpp index bd7799ff16739d..c75116db5121cb 100644 --- a/be/src/olap/rowset/segment_v2/segment_iterator.cpp +++ b/be/src/olap/rowset/segment_v2/segment_iterator.cpp @@ -691,6 +691,9 @@ bool SegmentIterator::_check_apply_by_bitmap_index(ColumnPredicate* pred) { } bool SegmentIterator::_check_apply_by_inverted_index(ColumnPredicate* pred, bool pred_in_compound) { + if (_opts.runtime_state && !_opts.runtime_state->query_options().enable_inverted_index_query) { + return false; + } if (_inverted_index_iterators[pred->column_id()] == nullptr) { //this column without inverted index return false; @@ -735,9 +738,6 @@ Status SegmentIterator::_apply_bitmap_index_except_leafnode_of_andnode( Status SegmentIterator::_apply_inverted_index_except_leafnode_of_andnode( ColumnPredicate* pred, roaring::Roaring* output_result) { - if (_opts.runtime_state && !_opts.runtime_state->query_options().enable_inverted_index_query) { - return Status::OK(); - } RETURN_IF_ERROR(pred->evaluate(*_schema, _inverted_index_iterators[pred->column_id()].get(), num_rows(), output_result)); return Status::OK(); diff --git a/regression-test/data/inverted_index_p0/test_count_on_index.out b/regression-test/data/inverted_index_p0/test_count_on_index.out index d863928131aeb1..59910b7fb5d6a8 100644 --- a/regression-test/data/inverted_index_p0/test_count_on_index.out +++ b/regression-test/data/inverted_index_p0/test_count_on_index.out @@ -68,3 +68,9 @@ -- !sql -- 1 +-- !sql -- +0 + +-- !sql -- +0 + diff --git a/regression-test/suites/inverted_index_p0/test_count_on_index.groovy b/regression-test/suites/inverted_index_p0/test_count_on_index.groovy index 7e4ff8e4038992..8fb98221ef542d 100644 --- a/regression-test/suites/inverted_index_p0/test_count_on_index.groovy +++ b/regression-test/suites/inverted_index_p0/test_count_on_index.groovy @@ -268,6 +268,10 @@ suite("test_count_on_index_httplogs", "p0") { contains "pushAggOp=COUNT_ON_INDEX" } qt_sql "select COUNT() from ${tableName} where key_id match 'bjn002'" + + // case4: test compound query when inverted_index_query disable + qt_sql "SELECT COUNT() from ${testTable_dup} where request = 'images' or (size = 0 and status > 400)" + qt_sql "SELECT /*+SET_VAR(enable_inverted_index_query=false) */ COUNT() from ${testTable_dup} where request = 'images' or (size = 0 and status > 400)" } finally { //try_sql("DROP TABLE IF EXISTS ${testTable}") }