Coverage Report

Created: 2026-03-31 18:41

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/storage/predicate/predicate_creator.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
18
#pragma once
19
20
#include <memory>
21
#include <string>
22
23
#include "core/data_type/data_type.h"
24
#include "core/data_type/primitive_type.h"
25
#include "core/field.h"
26
#include "exprs/hybrid_set.h"
27
#include "storage/predicate/column_predicate.h"
28
29
namespace doris {
30
#include "common/compile_check_begin.h"
31
32
class BloomFilterFuncBase;
33
class BitmapFilterFuncBase;
34
35
// Defined in predicate_creator.cpp with explicit instantiations.
36
template <PredicateType PT>
37
std::shared_ptr<ColumnPredicate> create_in_list_predicate(const uint32_t cid,
38
                                                          const std::string col_name,
39
                                                          const DataTypePtr& data_type,
40
                                                          const std::shared_ptr<HybridSetBase> set,
41
                                                          bool is_opposite);
42
43
// Defined in predicate_creator.cpp with explicit instantiations.
44
template <PredicateType PT>
45
std::shared_ptr<ColumnPredicate> create_comparison_predicate(const uint32_t cid,
46
                                                             const std::string col_name,
47
                                                             const DataTypePtr& data_type,
48
                                                             const Field& value, bool opposite);
49
50
template <PrimitiveType TYPE>
51
2
std::shared_ptr<HybridSetBase> build_set() {
52
2
    return std::make_shared<std::conditional_t<
53
2
            is_string_type(TYPE), StringSet<DynamicContainer<std::string>>,
54
2
            HybridSet<TYPE, DynamicContainer<typename PrimitiveTypeTraits<TYPE>::CppType>,
55
2
                      PredicateColumnType<PredicateEvaluateType<TYPE>>>>>(false);
56
2
}
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE3EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE4EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE5EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE6EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE7EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE8EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE9EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE11EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE12EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE25EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE26EEESt10shared_ptrINS_13HybridSetBaseEEv
_ZN5doris9build_setILNS_13PrimitiveTypeE42EEESt10shared_ptrINS_13HybridSetBaseEEv
Line
Count
Source
51
2
std::shared_ptr<HybridSetBase> build_set() {
52
2
    return std::make_shared<std::conditional_t<
53
2
            is_string_type(TYPE), StringSet<DynamicContainer<std::string>>,
54
2
            HybridSet<TYPE, DynamicContainer<typename PrimitiveTypeTraits<TYPE>::CppType>,
55
2
                      PredicateColumnType<PredicateEvaluateType<TYPE>>>>>(false);
56
2
}
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE2EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE36EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE37EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE20EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE28EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE29EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE30EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE35EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE15EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE10EEESt10shared_ptrINS_13HybridSetBaseEEv
Unexecuted instantiation: _ZN5doris9build_setILNS_13PrimitiveTypeE23EEESt10shared_ptrINS_13HybridSetBaseEEv
57
58
std::shared_ptr<ColumnPredicate> create_bloom_filter_predicate(
59
        const uint32_t cid, const std::string col_name, const DataTypePtr& data_type,
60
        const std::shared_ptr<BloomFilterFuncBase>& filter);
61
62
std::shared_ptr<ColumnPredicate> create_bitmap_filter_predicate(
63
        const uint32_t cid, const std::string col_name, const DataTypePtr& data_type,
64
        const std::shared_ptr<BitmapFilterFuncBase>& filter);
65
#include "common/compile_check_end.h"
66
} //namespace doris