Coverage Report

Created: 2026-03-20 05:51

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/storage/olap_scan_common.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 <gen_cpp/Metrics_types.h>
21
#include <gen_cpp/PaloInternalService_types.h>
22
#include <glog/logging.h>
23
#include <stddef.h>
24
25
#include <boost/container/detail/std_fwd.hpp>
26
#include <boost/lexical_cast.hpp>
27
#include <cstdint>
28
#include <iterator>
29
#include <limits>
30
#include <memory>
31
#include <set>
32
#include <sstream>
33
#include <string>
34
#include <utility>
35
#include <variant>
36
#include <vector>
37
38
#include "common/compare.h"
39
#include "common/status.h"
40
#include "core/data_type/define_primitive_type.h"
41
#include "core/data_type/primitive_type.h"
42
#include "core/type_limit.h"
43
#include "core/types.h"
44
#include "core/value/ipv4_value.h"
45
#include "core/value/ipv6_value.h"
46
#include "core/value/time_value.h"
47
#include "core/value/vdatetime_value.h"
48
#include "exprs/function/cast/cast_to_string.h"
49
#include "runtime/runtime_profile.h"
50
#include "storage/olap_common.h"
51
#include "storage/olap_tuple.h"
52
#include "storage/olap_utils.h"
53
#include "storage/predicate/filter_olap_param.h"
54
#include "util/io_helper.h"
55
56
namespace doris {
57
#include "common/compile_check_begin.h"
58
59
template <PrimitiveType primitive_type, class T>
60
1.16M
std::string cast_to_string(T value, int scale) {
61
1.16M
    if constexpr (primitive_type == TYPE_DECIMAL32) {
62
72
        return ((Decimal<int32_t>)value).to_string(scale);
63
240
    } else if constexpr (primitive_type == TYPE_DECIMAL64) {
64
240
        return ((Decimal<int64_t>)value).to_string(scale);
65
240
    } else if constexpr (primitive_type == TYPE_DECIMAL128I) {
66
140
        return ((Decimal<int128_t>)value).to_string(scale);
67
140
    } else if constexpr (primitive_type == TYPE_DECIMAL256) {
68
0
        return ((Decimal<wide::Int256>)value).to_string(scale);
69
77.3k
    } else if constexpr (primitive_type == TYPE_TINYINT) {
70
77.3k
        return std::to_string(static_cast<int>(value));
71
77.3k
    } else if constexpr (primitive_type == TYPE_LARGEINT) {
72
7.34k
        return int128_to_string(value);
73
7.34k
    } else if constexpr (primitive_type == TYPE_DATETIMEV2) {
74
1.95k
        auto datetimev2_val = static_cast<DateV2Value<DateTimeV2ValueType>>(value);
75
1.95k
        char buf[30];
76
1.95k
        datetimev2_val.to_string(buf);
77
1.95k
        std::stringstream ss;
78
1.95k
        ss << buf;
79
1.95k
        return ss.str();
80
1.95k
    } else if constexpr (primitive_type == TYPE_TIMESTAMPTZ) {
81
0
        auto timestamptz_val = static_cast<TimestampTzValue>(value);
82
0
        return timestamptz_val.to_string(cctz::utc_time_zone(), scale);
83
    } else if constexpr (primitive_type == TYPE_TIMEV2) {
84
        return TimeValue::to_string(value, scale);
85
0
    } else if constexpr (primitive_type == TYPE_IPV4) {
86
0
        return IPv4Value::to_string(value);
87
2
    } else if constexpr (primitive_type == TYPE_IPV6) {
88
2
        return IPv6Value::to_string(value);
89
2.80k
    } else if constexpr (primitive_type == TYPE_BOOLEAN) {
90
2.80k
        return CastToString::from_number(value);
91
1.07M
    } else {
92
1.07M
        return boost::lexical_cast<std::string>(value);
93
1.07M
    }
94
1.16M
}
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE3EaEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Line
Count
Source
60
77.3k
std::string cast_to_string(T value, int scale) {
61
    if constexpr (primitive_type == TYPE_DECIMAL32) {
62
        return ((Decimal<int32_t>)value).to_string(scale);
63
    } else if constexpr (primitive_type == TYPE_DECIMAL64) {
64
        return ((Decimal<int64_t>)value).to_string(scale);
65
    } else if constexpr (primitive_type == TYPE_DECIMAL128I) {
66
        return ((Decimal<int128_t>)value).to_string(scale);
67
    } else if constexpr (primitive_type == TYPE_DECIMAL256) {
68
        return ((Decimal<wide::Int256>)value).to_string(scale);
69
77.3k
    } else if constexpr (primitive_type == TYPE_TINYINT) {
70
77.3k
        return std::to_string(static_cast<int>(value));
71
    } else if constexpr (primitive_type == TYPE_LARGEINT) {
72
        return int128_to_string(value);
73
    } else if constexpr (primitive_type == TYPE_DATETIMEV2) {
74
        auto datetimev2_val = static_cast<DateV2Value<DateTimeV2ValueType>>(value);
75
        char buf[30];
76
        datetimev2_val.to_string(buf);
77
        std::stringstream ss;
78
        ss << buf;
79
        return ss.str();
80
    } else if constexpr (primitive_type == TYPE_TIMESTAMPTZ) {
81
        auto timestamptz_val = static_cast<TimestampTzValue>(value);
82
        return timestamptz_val.to_string(cctz::utc_time_zone(), scale);
83
    } else if constexpr (primitive_type == TYPE_TIMEV2) {
84
        return TimeValue::to_string(value, scale);
85
    } else if constexpr (primitive_type == TYPE_IPV4) {
86
        return IPv4Value::to_string(value);
87
    } else if constexpr (primitive_type == TYPE_IPV6) {
88
        return IPv6Value::to_string(value);
89
    } else if constexpr (primitive_type == TYPE_BOOLEAN) {
90
        return CastToString::from_number(value);
91
    } else {
92
        return boost::lexical_cast<std::string>(value);
93
    }
94
77.3k
}
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE4EsEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Line
Count
Source
60
15.9k
std::string cast_to_string(T value, int scale) {
61
    if constexpr (primitive_type == TYPE_DECIMAL32) {
62
        return ((Decimal<int32_t>)value).to_string(scale);
63
    } else if constexpr (primitive_type == TYPE_DECIMAL64) {
64
        return ((Decimal<int64_t>)value).to_string(scale);
65
    } else if constexpr (primitive_type == TYPE_DECIMAL128I) {
66
        return ((Decimal<int128_t>)value).to_string(scale);
67
    } else if constexpr (primitive_type == TYPE_DECIMAL256) {
68
        return ((Decimal<wide::Int256>)value).to_string(scale);
69
    } else if constexpr (primitive_type == TYPE_TINYINT) {
70
        return std::to_string(static_cast<int>(value));
71
    } else if constexpr (primitive_type == TYPE_LARGEINT) {
72
        return int128_to_string(value);
73
    } else if constexpr (primitive_type == TYPE_DATETIMEV2) {
74
        auto datetimev2_val = static_cast<DateV2Value<DateTimeV2ValueType>>(value);
75
        char buf[30];
76
        datetimev2_val.to_string(buf);
77
        std::stringstream ss;
78
        ss << buf;
79
        return ss.str();
80
    } else if constexpr (primitive_type == TYPE_TIMESTAMPTZ) {
81
        auto timestamptz_val = static_cast<TimestampTzValue>(value);
82
        return timestamptz_val.to_string(cctz::utc_time_zone(), scale);
83
    } else if constexpr (primitive_type == TYPE_TIMEV2) {
84
        return TimeValue::to_string(value, scale);
85
    } else if constexpr (primitive_type == TYPE_IPV4) {
86
        return IPv4Value::to_string(value);
87
    } else if constexpr (primitive_type == TYPE_IPV6) {
88
        return IPv6Value::to_string(value);
89
    } else if constexpr (primitive_type == TYPE_BOOLEAN) {
90
        return CastToString::from_number(value);
91
15.9k
    } else {
92
15.9k
        return boost::lexical_cast<std::string>(value);
93
15.9k
    }
94
15.9k
}
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE5EiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Line
Count
Source
60
102k
std::string cast_to_string(T value, int scale) {
61
    if constexpr (primitive_type == TYPE_DECIMAL32) {
62
        return ((Decimal<int32_t>)value).to_string(scale);
63
    } else if constexpr (primitive_type == TYPE_DECIMAL64) {
64
        return ((Decimal<int64_t>)value).to_string(scale);
65
    } else if constexpr (primitive_type == TYPE_DECIMAL128I) {
66
        return ((Decimal<int128_t>)value).to_string(scale);
67
    } else if constexpr (primitive_type == TYPE_DECIMAL256) {
68
        return ((Decimal<wide::Int256>)value).to_string(scale);
69
    } else if constexpr (primitive_type == TYPE_TINYINT) {
70
        return std::to_string(static_cast<int>(value));
71
    } else if constexpr (primitive_type == TYPE_LARGEINT) {
72
        return int128_to_string(value);
73
    } else if constexpr (primitive_type == TYPE_DATETIMEV2) {
74
        auto datetimev2_val = static_cast<DateV2Value<DateTimeV2ValueType>>(value);
75
        char buf[30];
76
        datetimev2_val.to_string(buf);
77
        std::stringstream ss;
78
        ss << buf;
79
        return ss.str();
80
    } else if constexpr (primitive_type == TYPE_TIMESTAMPTZ) {
81
        auto timestamptz_val = static_cast<TimestampTzValue>(value);
82
        return timestamptz_val.to_string(cctz::utc_time_zone(), scale);
83
    } else if constexpr (primitive_type == TYPE_TIMEV2) {
84
        return TimeValue::to_string(value, scale);
85
    } else if constexpr (primitive_type == TYPE_IPV4) {
86
        return IPv4Value::to_string(value);
87
    } else if constexpr (primitive_type == TYPE_IPV6) {
88
        return IPv6Value::to_string(value);
89
    } else if constexpr (primitive_type == TYPE_BOOLEAN) {
90
        return CastToString::from_number(value);
91
102k
    } else {
92
102k
        return boost::lexical_cast<std::string>(value);
93
102k
    }
94
102k
}
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE6ElEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Line
Count
Source
60
116k
std::string cast_to_string(T value, int scale) {
61
    if constexpr (primitive_type == TYPE_DECIMAL32) {
62
        return ((Decimal<int32_t>)value).to_string(scale);
63
    } else if constexpr (primitive_type == TYPE_DECIMAL64) {
64
        return ((Decimal<int64_t>)value).to_string(scale);
65
    } else if constexpr (primitive_type == TYPE_DECIMAL128I) {
66
        return ((Decimal<int128_t>)value).to_string(scale);
67
    } else if constexpr (primitive_type == TYPE_DECIMAL256) {
68
        return ((Decimal<wide::Int256>)value).to_string(scale);
69
    } else if constexpr (primitive_type == TYPE_TINYINT) {
70
        return std::to_string(static_cast<int>(value));
71
    } else if constexpr (primitive_type == TYPE_LARGEINT) {
72
        return int128_to_string(value);
73
    } else if constexpr (primitive_type == TYPE_DATETIMEV2) {
74
        auto datetimev2_val = static_cast<DateV2Value<DateTimeV2ValueType>>(value);
75
        char buf[30];
76
        datetimev2_val.to_string(buf);
77
        std::stringstream ss;
78
        ss << buf;
79
        return ss.str();
80
    } else if constexpr (primitive_type == TYPE_TIMESTAMPTZ) {
81
        auto timestamptz_val = static_cast<TimestampTzValue>(value);
82
        return timestamptz_val.to_string(cctz::utc_time_zone(), scale);
83
    } else if constexpr (primitive_type == TYPE_TIMEV2) {
84
        return TimeValue::to_string(value, scale);
85
    } else if constexpr (primitive_type == TYPE_IPV4) {
86
        return IPv4Value::to_string(value);
87
    } else if constexpr (primitive_type == TYPE_IPV6) {
88
        return IPv6Value::to_string(value);
89
    } else if constexpr (primitive_type == TYPE_BOOLEAN) {
90
        return CastToString::from_number(value);
91
116k
    } else {
92
116k
        return boost::lexical_cast<std::string>(value);
93
116k
    }
94
116k
}
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE7EnEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Line
Count
Source
60
7.34k
std::string cast_to_string(T value, int scale) {
61
    if constexpr (primitive_type == TYPE_DECIMAL32) {
62
        return ((Decimal<int32_t>)value).to_string(scale);
63
    } else if constexpr (primitive_type == TYPE_DECIMAL64) {
64
        return ((Decimal<int64_t>)value).to_string(scale);
65
    } else if constexpr (primitive_type == TYPE_DECIMAL128I) {
66
        return ((Decimal<int128_t>)value).to_string(scale);
67
    } else if constexpr (primitive_type == TYPE_DECIMAL256) {
68
        return ((Decimal<wide::Int256>)value).to_string(scale);
69
    } else if constexpr (primitive_type == TYPE_TINYINT) {
70
        return std::to_string(static_cast<int>(value));
71
7.34k
    } else if constexpr (primitive_type == TYPE_LARGEINT) {
72
7.34k
        return int128_to_string(value);
73
    } else if constexpr (primitive_type == TYPE_DATETIMEV2) {
74
        auto datetimev2_val = static_cast<DateV2Value<DateTimeV2ValueType>>(value);
75
        char buf[30];
76
        datetimev2_val.to_string(buf);
77
        std::stringstream ss;
78
        ss << buf;
79
        return ss.str();
80
    } else if constexpr (primitive_type == TYPE_TIMESTAMPTZ) {
81
        auto timestamptz_val = static_cast<TimestampTzValue>(value);
82
        return timestamptz_val.to_string(cctz::utc_time_zone(), scale);
83
    } else if constexpr (primitive_type == TYPE_TIMEV2) {
84
        return TimeValue::to_string(value, scale);
85
    } else if constexpr (primitive_type == TYPE_IPV4) {
86
        return IPv4Value::to_string(value);
87
    } else if constexpr (primitive_type == TYPE_IPV6) {
88
        return IPv6Value::to_string(value);
89
    } else if constexpr (primitive_type == TYPE_BOOLEAN) {
90
        return CastToString::from_number(value);
91
    } else {
92
        return boost::lexical_cast<std::string>(value);
93
    }
94
7.34k
}
Unexecuted instantiation: _ZN5doris14cast_to_stringILNS_13PrimitiveTypeE8EfEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Unexecuted instantiation: _ZN5doris14cast_to_stringILNS_13PrimitiveTypeE9EdEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Unexecuted instantiation: _ZN5doris14cast_to_stringILNS_13PrimitiveTypeE36EjEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE37EoEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Line
Count
Source
60
2
std::string cast_to_string(T value, int scale) {
61
    if constexpr (primitive_type == TYPE_DECIMAL32) {
62
        return ((Decimal<int32_t>)value).to_string(scale);
63
    } else if constexpr (primitive_type == TYPE_DECIMAL64) {
64
        return ((Decimal<int64_t>)value).to_string(scale);
65
    } else if constexpr (primitive_type == TYPE_DECIMAL128I) {
66
        return ((Decimal<int128_t>)value).to_string(scale);
67
    } else if constexpr (primitive_type == TYPE_DECIMAL256) {
68
        return ((Decimal<wide::Int256>)value).to_string(scale);
69
    } else if constexpr (primitive_type == TYPE_TINYINT) {
70
        return std::to_string(static_cast<int>(value));
71
    } else if constexpr (primitive_type == TYPE_LARGEINT) {
72
        return int128_to_string(value);
73
    } else if constexpr (primitive_type == TYPE_DATETIMEV2) {
74
        auto datetimev2_val = static_cast<DateV2Value<DateTimeV2ValueType>>(value);
75
        char buf[30];
76
        datetimev2_val.to_string(buf);
77
        std::stringstream ss;
78
        ss << buf;
79
        return ss.str();
80
    } else if constexpr (primitive_type == TYPE_TIMESTAMPTZ) {
81
        auto timestamptz_val = static_cast<TimestampTzValue>(value);
82
        return timestamptz_val.to_string(cctz::utc_time_zone(), scale);
83
    } else if constexpr (primitive_type == TYPE_TIMEV2) {
84
        return TimeValue::to_string(value, scale);
85
    } else if constexpr (primitive_type == TYPE_IPV4) {
86
        return IPv4Value::to_string(value);
87
2
    } else if constexpr (primitive_type == TYPE_IPV6) {
88
2
        return IPv6Value::to_string(value);
89
    } else if constexpr (primitive_type == TYPE_BOOLEAN) {
90
        return CastToString::from_number(value);
91
    } else {
92
        return boost::lexical_cast<std::string>(value);
93
    }
94
2
}
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE15ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEES7_T0_i
Line
Count
Source
60
559
std::string cast_to_string(T value, int scale) {
61
    if constexpr (primitive_type == TYPE_DECIMAL32) {
62
        return ((Decimal<int32_t>)value).to_string(scale);
63
    } else if constexpr (primitive_type == TYPE_DECIMAL64) {
64
        return ((Decimal<int64_t>)value).to_string(scale);
65
    } else if constexpr (primitive_type == TYPE_DECIMAL128I) {
66
        return ((Decimal<int128_t>)value).to_string(scale);
67
    } else if constexpr (primitive_type == TYPE_DECIMAL256) {
68
        return ((Decimal<wide::Int256>)value).to_string(scale);
69
    } else if constexpr (primitive_type == TYPE_TINYINT) {
70
        return std::to_string(static_cast<int>(value));
71
    } else if constexpr (primitive_type == TYPE_LARGEINT) {
72
        return int128_to_string(value);
73
    } else if constexpr (primitive_type == TYPE_DATETIMEV2) {
74
        auto datetimev2_val = static_cast<DateV2Value<DateTimeV2ValueType>>(value);
75
        char buf[30];
76
        datetimev2_val.to_string(buf);
77
        std::stringstream ss;
78
        ss << buf;
79
        return ss.str();
80
    } else if constexpr (primitive_type == TYPE_TIMESTAMPTZ) {
81
        auto timestamptz_val = static_cast<TimestampTzValue>(value);
82
        return timestamptz_val.to_string(cctz::utc_time_zone(), scale);
83
    } else if constexpr (primitive_type == TYPE_TIMEV2) {
84
        return TimeValue::to_string(value, scale);
85
    } else if constexpr (primitive_type == TYPE_IPV4) {
86
        return IPv4Value::to_string(value);
87
    } else if constexpr (primitive_type == TYPE_IPV6) {
88
        return IPv6Value::to_string(value);
89
    } else if constexpr (primitive_type == TYPE_BOOLEAN) {
90
        return CastToString::from_number(value);
91
559
    } else {
92
559
        return boost::lexical_cast<std::string>(value);
93
559
    }
94
559
}
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE10ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEES7_T0_i
Line
Count
Source
60
683k
std::string cast_to_string(T value, int scale) {
61
    if constexpr (primitive_type == TYPE_DECIMAL32) {
62
        return ((Decimal<int32_t>)value).to_string(scale);
63
    } else if constexpr (primitive_type == TYPE_DECIMAL64) {
64
        return ((Decimal<int64_t>)value).to_string(scale);
65
    } else if constexpr (primitive_type == TYPE_DECIMAL128I) {
66
        return ((Decimal<int128_t>)value).to_string(scale);
67
    } else if constexpr (primitive_type == TYPE_DECIMAL256) {
68
        return ((Decimal<wide::Int256>)value).to_string(scale);
69
    } else if constexpr (primitive_type == TYPE_TINYINT) {
70
        return std::to_string(static_cast<int>(value));
71
    } else if constexpr (primitive_type == TYPE_LARGEINT) {
72
        return int128_to_string(value);
73
    } else if constexpr (primitive_type == TYPE_DATETIMEV2) {
74
        auto datetimev2_val = static_cast<DateV2Value<DateTimeV2ValueType>>(value);
75
        char buf[30];
76
        datetimev2_val.to_string(buf);
77
        std::stringstream ss;
78
        ss << buf;
79
        return ss.str();
80
    } else if constexpr (primitive_type == TYPE_TIMESTAMPTZ) {
81
        auto timestamptz_val = static_cast<TimestampTzValue>(value);
82
        return timestamptz_val.to_string(cctz::utc_time_zone(), scale);
83
    } else if constexpr (primitive_type == TYPE_TIMEV2) {
84
        return TimeValue::to_string(value, scale);
85
    } else if constexpr (primitive_type == TYPE_IPV4) {
86
        return IPv4Value::to_string(value);
87
    } else if constexpr (primitive_type == TYPE_IPV6) {
88
        return IPv6Value::to_string(value);
89
    } else if constexpr (primitive_type == TYPE_BOOLEAN) {
90
        return CastToString::from_number(value);
91
683k
    } else {
92
683k
        return boost::lexical_cast<std::string>(value);
93
683k
    }
94
683k
}
Unexecuted instantiation: _ZN5doris14cast_to_stringILNS_13PrimitiveTypeE23ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEES7_T0_i
Unexecuted instantiation: _ZN5doris14cast_to_stringILNS_13PrimitiveTypeE11ENS_16VecDateTimeValueEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE25ENS_11DateV2ValueINS_15DateV2ValueTypeEEEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Line
Count
Source
60
156k
std::string cast_to_string(T value, int scale) {
61
    if constexpr (primitive_type == TYPE_DECIMAL32) {
62
        return ((Decimal<int32_t>)value).to_string(scale);
63
    } else if constexpr (primitive_type == TYPE_DECIMAL64) {
64
        return ((Decimal<int64_t>)value).to_string(scale);
65
    } else if constexpr (primitive_type == TYPE_DECIMAL128I) {
66
        return ((Decimal<int128_t>)value).to_string(scale);
67
    } else if constexpr (primitive_type == TYPE_DECIMAL256) {
68
        return ((Decimal<wide::Int256>)value).to_string(scale);
69
    } else if constexpr (primitive_type == TYPE_TINYINT) {
70
        return std::to_string(static_cast<int>(value));
71
    } else if constexpr (primitive_type == TYPE_LARGEINT) {
72
        return int128_to_string(value);
73
    } else if constexpr (primitive_type == TYPE_DATETIMEV2) {
74
        auto datetimev2_val = static_cast<DateV2Value<DateTimeV2ValueType>>(value);
75
        char buf[30];
76
        datetimev2_val.to_string(buf);
77
        std::stringstream ss;
78
        ss << buf;
79
        return ss.str();
80
    } else if constexpr (primitive_type == TYPE_TIMESTAMPTZ) {
81
        auto timestamptz_val = static_cast<TimestampTzValue>(value);
82
        return timestamptz_val.to_string(cctz::utc_time_zone(), scale);
83
    } else if constexpr (primitive_type == TYPE_TIMEV2) {
84
        return TimeValue::to_string(value, scale);
85
    } else if constexpr (primitive_type == TYPE_IPV4) {
86
        return IPv4Value::to_string(value);
87
    } else if constexpr (primitive_type == TYPE_IPV6) {
88
        return IPv6Value::to_string(value);
89
    } else if constexpr (primitive_type == TYPE_BOOLEAN) {
90
        return CastToString::from_number(value);
91
156k
    } else {
92
156k
        return boost::lexical_cast<std::string>(value);
93
156k
    }
94
156k
}
Unexecuted instantiation: _ZN5doris14cast_to_stringILNS_13PrimitiveTypeE12ENS_16VecDateTimeValueEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE26ENS_11DateV2ValueINS_19DateTimeV2ValueTypeEEEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Line
Count
Source
60
1.95k
std::string cast_to_string(T value, int scale) {
61
    if constexpr (primitive_type == TYPE_DECIMAL32) {
62
        return ((Decimal<int32_t>)value).to_string(scale);
63
    } else if constexpr (primitive_type == TYPE_DECIMAL64) {
64
        return ((Decimal<int64_t>)value).to_string(scale);
65
    } else if constexpr (primitive_type == TYPE_DECIMAL128I) {
66
        return ((Decimal<int128_t>)value).to_string(scale);
67
    } else if constexpr (primitive_type == TYPE_DECIMAL256) {
68
        return ((Decimal<wide::Int256>)value).to_string(scale);
69
    } else if constexpr (primitive_type == TYPE_TINYINT) {
70
        return std::to_string(static_cast<int>(value));
71
    } else if constexpr (primitive_type == TYPE_LARGEINT) {
72
        return int128_to_string(value);
73
1.95k
    } else if constexpr (primitive_type == TYPE_DATETIMEV2) {
74
1.95k
        auto datetimev2_val = static_cast<DateV2Value<DateTimeV2ValueType>>(value);
75
1.95k
        char buf[30];
76
1.95k
        datetimev2_val.to_string(buf);
77
1.95k
        std::stringstream ss;
78
1.95k
        ss << buf;
79
1.95k
        return ss.str();
80
    } else if constexpr (primitive_type == TYPE_TIMESTAMPTZ) {
81
        auto timestamptz_val = static_cast<TimestampTzValue>(value);
82
        return timestamptz_val.to_string(cctz::utc_time_zone(), scale);
83
    } else if constexpr (primitive_type == TYPE_TIMEV2) {
84
        return TimeValue::to_string(value, scale);
85
    } else if constexpr (primitive_type == TYPE_IPV4) {
86
        return IPv4Value::to_string(value);
87
    } else if constexpr (primitive_type == TYPE_IPV6) {
88
        return IPv6Value::to_string(value);
89
    } else if constexpr (primitive_type == TYPE_BOOLEAN) {
90
        return CastToString::from_number(value);
91
    } else {
92
        return boost::lexical_cast<std::string>(value);
93
    }
94
1.95k
}
Unexecuted instantiation: _ZN5doris14cast_to_stringILNS_13PrimitiveTypeE42ENS_16TimestampTzValueEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Unexecuted instantiation: _ZN5doris14cast_to_stringILNS_13PrimitiveTypeE20ENS_14DecimalV2ValueEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE2EhEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Line
Count
Source
60
2.80k
std::string cast_to_string(T value, int scale) {
61
    if constexpr (primitive_type == TYPE_DECIMAL32) {
62
        return ((Decimal<int32_t>)value).to_string(scale);
63
    } else if constexpr (primitive_type == TYPE_DECIMAL64) {
64
        return ((Decimal<int64_t>)value).to_string(scale);
65
    } else if constexpr (primitive_type == TYPE_DECIMAL128I) {
66
        return ((Decimal<int128_t>)value).to_string(scale);
67
    } else if constexpr (primitive_type == TYPE_DECIMAL256) {
68
        return ((Decimal<wide::Int256>)value).to_string(scale);
69
    } else if constexpr (primitive_type == TYPE_TINYINT) {
70
        return std::to_string(static_cast<int>(value));
71
    } else if constexpr (primitive_type == TYPE_LARGEINT) {
72
        return int128_to_string(value);
73
    } else if constexpr (primitive_type == TYPE_DATETIMEV2) {
74
        auto datetimev2_val = static_cast<DateV2Value<DateTimeV2ValueType>>(value);
75
        char buf[30];
76
        datetimev2_val.to_string(buf);
77
        std::stringstream ss;
78
        ss << buf;
79
        return ss.str();
80
    } else if constexpr (primitive_type == TYPE_TIMESTAMPTZ) {
81
        auto timestamptz_val = static_cast<TimestampTzValue>(value);
82
        return timestamptz_val.to_string(cctz::utc_time_zone(), scale);
83
    } else if constexpr (primitive_type == TYPE_TIMEV2) {
84
        return TimeValue::to_string(value, scale);
85
    } else if constexpr (primitive_type == TYPE_IPV4) {
86
        return IPv4Value::to_string(value);
87
    } else if constexpr (primitive_type == TYPE_IPV6) {
88
        return IPv6Value::to_string(value);
89
2.80k
    } else if constexpr (primitive_type == TYPE_BOOLEAN) {
90
2.80k
        return CastToString::from_number(value);
91
    } else {
92
        return boost::lexical_cast<std::string>(value);
93
    }
94
2.80k
}
Unexecuted instantiation: _ZN5doris14cast_to_stringILNS_13PrimitiveTypeE19ENS_9StringRefEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE28ENS_7DecimalIiEEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Line
Count
Source
60
72
std::string cast_to_string(T value, int scale) {
61
72
    if constexpr (primitive_type == TYPE_DECIMAL32) {
62
72
        return ((Decimal<int32_t>)value).to_string(scale);
63
    } else if constexpr (primitive_type == TYPE_DECIMAL64) {
64
        return ((Decimal<int64_t>)value).to_string(scale);
65
    } else if constexpr (primitive_type == TYPE_DECIMAL128I) {
66
        return ((Decimal<int128_t>)value).to_string(scale);
67
    } else if constexpr (primitive_type == TYPE_DECIMAL256) {
68
        return ((Decimal<wide::Int256>)value).to_string(scale);
69
    } else if constexpr (primitive_type == TYPE_TINYINT) {
70
        return std::to_string(static_cast<int>(value));
71
    } else if constexpr (primitive_type == TYPE_LARGEINT) {
72
        return int128_to_string(value);
73
    } else if constexpr (primitive_type == TYPE_DATETIMEV2) {
74
        auto datetimev2_val = static_cast<DateV2Value<DateTimeV2ValueType>>(value);
75
        char buf[30];
76
        datetimev2_val.to_string(buf);
77
        std::stringstream ss;
78
        ss << buf;
79
        return ss.str();
80
    } else if constexpr (primitive_type == TYPE_TIMESTAMPTZ) {
81
        auto timestamptz_val = static_cast<TimestampTzValue>(value);
82
        return timestamptz_val.to_string(cctz::utc_time_zone(), scale);
83
    } else if constexpr (primitive_type == TYPE_TIMEV2) {
84
        return TimeValue::to_string(value, scale);
85
    } else if constexpr (primitive_type == TYPE_IPV4) {
86
        return IPv4Value::to_string(value);
87
    } else if constexpr (primitive_type == TYPE_IPV6) {
88
        return IPv6Value::to_string(value);
89
    } else if constexpr (primitive_type == TYPE_BOOLEAN) {
90
        return CastToString::from_number(value);
91
    } else {
92
        return boost::lexical_cast<std::string>(value);
93
    }
94
72
}
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE29ENS_7DecimalIlEEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Line
Count
Source
60
240
std::string cast_to_string(T value, int scale) {
61
    if constexpr (primitive_type == TYPE_DECIMAL32) {
62
        return ((Decimal<int32_t>)value).to_string(scale);
63
240
    } else if constexpr (primitive_type == TYPE_DECIMAL64) {
64
240
        return ((Decimal<int64_t>)value).to_string(scale);
65
    } else if constexpr (primitive_type == TYPE_DECIMAL128I) {
66
        return ((Decimal<int128_t>)value).to_string(scale);
67
    } else if constexpr (primitive_type == TYPE_DECIMAL256) {
68
        return ((Decimal<wide::Int256>)value).to_string(scale);
69
    } else if constexpr (primitive_type == TYPE_TINYINT) {
70
        return std::to_string(static_cast<int>(value));
71
    } else if constexpr (primitive_type == TYPE_LARGEINT) {
72
        return int128_to_string(value);
73
    } else if constexpr (primitive_type == TYPE_DATETIMEV2) {
74
        auto datetimev2_val = static_cast<DateV2Value<DateTimeV2ValueType>>(value);
75
        char buf[30];
76
        datetimev2_val.to_string(buf);
77
        std::stringstream ss;
78
        ss << buf;
79
        return ss.str();
80
    } else if constexpr (primitive_type == TYPE_TIMESTAMPTZ) {
81
        auto timestamptz_val = static_cast<TimestampTzValue>(value);
82
        return timestamptz_val.to_string(cctz::utc_time_zone(), scale);
83
    } else if constexpr (primitive_type == TYPE_TIMEV2) {
84
        return TimeValue::to_string(value, scale);
85
    } else if constexpr (primitive_type == TYPE_IPV4) {
86
        return IPv4Value::to_string(value);
87
    } else if constexpr (primitive_type == TYPE_IPV6) {
88
        return IPv6Value::to_string(value);
89
    } else if constexpr (primitive_type == TYPE_BOOLEAN) {
90
        return CastToString::from_number(value);
91
    } else {
92
        return boost::lexical_cast<std::string>(value);
93
    }
94
240
}
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE30ENS_12Decimal128V3EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Line
Count
Source
60
140
std::string cast_to_string(T value, int scale) {
61
    if constexpr (primitive_type == TYPE_DECIMAL32) {
62
        return ((Decimal<int32_t>)value).to_string(scale);
63
    } else if constexpr (primitive_type == TYPE_DECIMAL64) {
64
        return ((Decimal<int64_t>)value).to_string(scale);
65
140
    } else if constexpr (primitive_type == TYPE_DECIMAL128I) {
66
140
        return ((Decimal<int128_t>)value).to_string(scale);
67
    } else if constexpr (primitive_type == TYPE_DECIMAL256) {
68
        return ((Decimal<wide::Int256>)value).to_string(scale);
69
    } else if constexpr (primitive_type == TYPE_TINYINT) {
70
        return std::to_string(static_cast<int>(value));
71
    } else if constexpr (primitive_type == TYPE_LARGEINT) {
72
        return int128_to_string(value);
73
    } else if constexpr (primitive_type == TYPE_DATETIMEV2) {
74
        auto datetimev2_val = static_cast<DateV2Value<DateTimeV2ValueType>>(value);
75
        char buf[30];
76
        datetimev2_val.to_string(buf);
77
        std::stringstream ss;
78
        ss << buf;
79
        return ss.str();
80
    } else if constexpr (primitive_type == TYPE_TIMESTAMPTZ) {
81
        auto timestamptz_val = static_cast<TimestampTzValue>(value);
82
        return timestamptz_val.to_string(cctz::utc_time_zone(), scale);
83
    } else if constexpr (primitive_type == TYPE_TIMEV2) {
84
        return TimeValue::to_string(value, scale);
85
    } else if constexpr (primitive_type == TYPE_IPV4) {
86
        return IPv4Value::to_string(value);
87
    } else if constexpr (primitive_type == TYPE_IPV6) {
88
        return IPv6Value::to_string(value);
89
    } else if constexpr (primitive_type == TYPE_BOOLEAN) {
90
        return CastToString::from_number(value);
91
    } else {
92
        return boost::lexical_cast<std::string>(value);
93
    }
94
140
}
Unexecuted instantiation: _ZN5doris14cast_to_stringILNS_13PrimitiveTypeE35ENS_7DecimalIN4wide7integerILm256EiEEEEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
95
96
/**
97
 * @brief Column's value range
98
 **/
99
template <PrimitiveType primitive_type>
100
class ColumnValueRange {
101
public:
102
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
103
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
104
    using SetType = std::set<CppType, doris::Less<CppType>>;
105
    using IteratorType = typename SetType::iterator;
106
107
    ColumnValueRange();
108
109
    ColumnValueRange(std::string col_name, bool is_nullable_col, int precision, int scale);
110
111
    // should add fixed value before add range
112
    Status add_fixed_value(const CppType& value);
113
114
    // should remove fixed value after add fixed value
115
    void remove_fixed_value(const CppType& value);
116
117
    Status add_range(SQLFilterOp op, CppType value);
118
119
    bool is_fixed_value_range() const;
120
121
    bool is_scope_value_range() const;
122
123
    bool is_empty_value_range() const;
124
125
    bool is_fixed_value_convertible() const;
126
127
    bool is_range_value_convertible() const;
128
129
    void convert_to_range_value();
130
131
    bool convert_to_avg_range_value(std::vector<OlapTuple>& begin_scan_keys,
132
                                    std::vector<OlapTuple>& end_scan_keys, bool& begin_include,
133
                                    bool& end_include, int32_t max_scan_key_num);
134
135
    bool convert_to_close_range(std::vector<OlapTuple>& begin_scan_keys,
136
                                std::vector<OlapTuple>& end_scan_keys, bool& begin_include,
137
                                bool& end_include);
138
139
99.5k
    constexpr bool is_reject_split_type() const { return _is_reject_split_type; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE20is_reject_split_typeEv
Line
Count
Source
139
915
    constexpr bool is_reject_split_type() const { return _is_reject_split_type; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE20is_reject_split_typeEv
Line
Count
Source
139
162
    constexpr bool is_reject_split_type() const { return _is_reject_split_type; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE20is_reject_split_typeEv
Line
Count
Source
139
37.0k
    constexpr bool is_reject_split_type() const { return _is_reject_split_type; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE20is_reject_split_typeEv
Line
Count
Source
139
56.3k
    constexpr bool is_reject_split_type() const { return _is_reject_split_type; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE20is_reject_split_typeEv
Line
Count
Source
139
3.41k
    constexpr bool is_reject_split_type() const { return _is_reject_split_type; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE20is_reject_split_typeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE20is_reject_split_typeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE20is_reject_split_typeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE20is_reject_split_typeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE20is_reject_split_typeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE20is_reject_split_typeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE20is_reject_split_typeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE20is_reject_split_typeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE20is_reject_split_typeEv
Line
Count
Source
139
1.70k
    constexpr bool is_reject_split_type() const { return _is_reject_split_type; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE20is_reject_split_typeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE20is_reject_split_typeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE20is_reject_split_typeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE20is_reject_split_typeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE20is_reject_split_typeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE20is_reject_split_typeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE20is_reject_split_typeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE20is_reject_split_typeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE20is_reject_split_typeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE20is_reject_split_typeEv
140
141
    void intersection(ColumnValueRange<primitive_type>& range);
142
143
23.5k
    void set_empty_value_range() {
144
23.5k
        _fixed_values.clear();
145
23.5k
        _low_value = TYPE_MAX;
146
23.5k
        _high_value = TYPE_MIN;
147
23.5k
        _contain_null = false;
148
23.5k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE21set_empty_value_rangeEv
Line
Count
Source
143
64
    void set_empty_value_range() {
144
64
        _fixed_values.clear();
145
64
        _low_value = TYPE_MAX;
146
64
        _high_value = TYPE_MIN;
147
64
        _contain_null = false;
148
64
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE21set_empty_value_rangeEv
Line
Count
Source
143
64
    void set_empty_value_range() {
144
64
        _fixed_values.clear();
145
64
        _low_value = TYPE_MAX;
146
64
        _high_value = TYPE_MIN;
147
64
        _contain_null = false;
148
64
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE21set_empty_value_rangeEv
Line
Count
Source
143
547
    void set_empty_value_range() {
144
547
        _fixed_values.clear();
145
547
        _low_value = TYPE_MAX;
146
547
        _high_value = TYPE_MIN;
147
547
        _contain_null = false;
148
547
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE21set_empty_value_rangeEv
Line
Count
Source
143
21.6k
    void set_empty_value_range() {
144
21.6k
        _fixed_values.clear();
145
21.6k
        _low_value = TYPE_MAX;
146
21.6k
        _high_value = TYPE_MIN;
147
21.6k
        _contain_null = false;
148
21.6k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE21set_empty_value_rangeEv
Line
Count
Source
143
20
    void set_empty_value_range() {
144
20
        _fixed_values.clear();
145
20
        _low_value = TYPE_MAX;
146
20
        _high_value = TYPE_MIN;
147
20
        _contain_null = false;
148
20
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE21set_empty_value_rangeEv
Line
Count
Source
143
72
    void set_empty_value_range() {
144
72
        _fixed_values.clear();
145
72
        _low_value = TYPE_MAX;
146
72
        _high_value = TYPE_MIN;
147
72
        _contain_null = false;
148
72
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE21set_empty_value_rangeEv
Line
Count
Source
143
83
    void set_empty_value_range() {
144
83
        _fixed_values.clear();
145
83
        _low_value = TYPE_MAX;
146
83
        _high_value = TYPE_MIN;
147
83
        _contain_null = false;
148
83
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE21set_empty_value_rangeEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE21set_empty_value_rangeEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE21set_empty_value_rangeEv
Line
Count
Source
143
68
    void set_empty_value_range() {
144
68
        _fixed_values.clear();
145
68
        _low_value = TYPE_MAX;
146
68
        _high_value = TYPE_MIN;
147
68
        _contain_null = false;
148
68
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE21set_empty_value_rangeEv
Line
Count
Source
143
367
    void set_empty_value_range() {
144
367
        _fixed_values.clear();
145
367
        _low_value = TYPE_MAX;
146
367
        _high_value = TYPE_MIN;
147
367
        _contain_null = false;
148
367
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE21set_empty_value_rangeEv
Line
Count
Source
143
251
    void set_empty_value_range() {
144
251
        _fixed_values.clear();
145
251
        _low_value = TYPE_MAX;
146
251
        _high_value = TYPE_MIN;
147
251
        _contain_null = false;
148
251
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE21set_empty_value_rangeEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE21set_empty_value_rangeEv
Line
Count
Source
143
118
    void set_empty_value_range() {
144
118
        _fixed_values.clear();
145
118
        _low_value = TYPE_MAX;
146
118
        _high_value = TYPE_MIN;
147
118
        _contain_null = false;
148
118
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE21set_empty_value_rangeEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE21set_empty_value_rangeEv
Line
Count
Source
143
68
    void set_empty_value_range() {
144
68
        _fixed_values.clear();
145
68
        _low_value = TYPE_MAX;
146
68
        _high_value = TYPE_MIN;
147
68
        _contain_null = false;
148
68
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE21set_empty_value_rangeEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE21set_empty_value_rangeEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE21set_empty_value_rangeEv
Line
Count
Source
143
72
    void set_empty_value_range() {
144
72
        _fixed_values.clear();
145
72
        _low_value = TYPE_MAX;
146
72
        _high_value = TYPE_MIN;
147
72
        _contain_null = false;
148
72
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE21set_empty_value_rangeEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE21set_empty_value_rangeEv
Line
Count
Source
143
8
    void set_empty_value_range() {
144
8
        _fixed_values.clear();
145
8
        _low_value = TYPE_MAX;
146
8
        _high_value = TYPE_MIN;
147
8
        _contain_null = false;
148
8
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE21set_empty_value_rangeEv
Line
Count
Source
143
134
    void set_empty_value_range() {
144
134
        _fixed_values.clear();
145
134
        _low_value = TYPE_MAX;
146
134
        _high_value = TYPE_MIN;
147
134
        _contain_null = false;
148
134
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE21set_empty_value_rangeEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE21set_empty_value_rangeEv
149
150
253k
    const SetType& get_fixed_value_set() const { return _fixed_values; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE19get_fixed_value_setEv
Line
Count
Source
150
10
    const SetType& get_fixed_value_set() const { return _fixed_values; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE19get_fixed_value_setEv
Line
Count
Source
150
3
    const SetType& get_fixed_value_set() const { return _fixed_values; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE19get_fixed_value_setEv
Line
Count
Source
150
1.79k
    const SetType& get_fixed_value_set() const { return _fixed_values; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE19get_fixed_value_setEv
Line
Count
Source
150
728
    const SetType& get_fixed_value_set() const { return _fixed_values; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE19get_fixed_value_setEv
Line
Count
Source
150
138
    const SetType& get_fixed_value_set() const { return _fixed_values; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE19get_fixed_value_setEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE19get_fixed_value_setEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE19get_fixed_value_setEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE19get_fixed_value_setEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE19get_fixed_value_setB5cxx11Ev
Line
Count
Source
150
14
    const SetType& get_fixed_value_set() const { return _fixed_values; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE19get_fixed_value_setB5cxx11Ev
Line
Count
Source
150
250k
    const SetType& get_fixed_value_set() const { return _fixed_values; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE19get_fixed_value_setB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE19get_fixed_value_setEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE19get_fixed_value_setEv
Line
Count
Source
150
343
    const SetType& get_fixed_value_set() const { return _fixed_values; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE19get_fixed_value_setEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE19get_fixed_value_setEv
Line
Count
Source
150
19
    const SetType& get_fixed_value_set() const { return _fixed_values; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE19get_fixed_value_setEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE19get_fixed_value_setEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE19get_fixed_value_setEv
Line
Count
Source
150
3
    const SetType& get_fixed_value_set() const { return _fixed_values; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE19get_fixed_value_setEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE19get_fixed_value_setEv
Line
Count
Source
150
3
    const SetType& get_fixed_value_set() const { return _fixed_values; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE19get_fixed_value_setEv
Line
Count
Source
150
11
    const SetType& get_fixed_value_set() const { return _fixed_values; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE19get_fixed_value_setEv
Line
Count
Source
150
6
    const SetType& get_fixed_value_set() const { return _fixed_values; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE19get_fixed_value_setEv
151
152
392k
    CppType get_range_max_value() const { return _high_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE19get_range_max_valueEv
Line
Count
Source
152
975
    CppType get_range_max_value() const { return _high_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE19get_range_max_valueEv
Line
Count
Source
152
502
    CppType get_range_max_value() const { return _high_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE19get_range_max_valueEv
Line
Count
Source
152
78.3k
    CppType get_range_max_value() const { return _high_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE19get_range_max_valueEv
Line
Count
Source
152
113k
    CppType get_range_max_value() const { return _high_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE19get_range_max_valueEv
Line
Count
Source
152
6.98k
    CppType get_range_max_value() const { return _high_value; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE19get_range_max_valueEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE19get_range_max_valueEv
Line
Count
Source
152
18
    CppType get_range_max_value() const { return _high_value; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE19get_range_max_valueEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE19get_range_max_valueEv
Line
Count
Source
152
2
    CppType get_range_max_value() const { return _high_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE19get_range_max_valueB5cxx11Ev
Line
Count
Source
152
420
    CppType get_range_max_value() const { return _high_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE19get_range_max_valueB5cxx11Ev
Line
Count
Source
152
184k
    CppType get_range_max_value() const { return _high_value; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE19get_range_max_valueB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE19get_range_max_valueEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE19get_range_max_valueEv
Line
Count
Source
152
1.85k
    CppType get_range_max_value() const { return _high_value; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE19get_range_max_valueEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE19get_range_max_valueEv
Line
Count
Source
152
1.91k
    CppType get_range_max_value() const { return _high_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE19get_range_max_valueEv
Line
Count
Source
152
4
    CppType get_range_max_value() const { return _high_value; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE19get_range_max_valueEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE19get_range_max_valueEv
Line
Count
Source
152
2.75k
    CppType get_range_max_value() const { return _high_value; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE19get_range_max_valueEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE19get_range_max_valueEv
Line
Count
Source
152
66
    CppType get_range_max_value() const { return _high_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE19get_range_max_valueEv
Line
Count
Source
152
217
    CppType get_range_max_value() const { return _high_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE19get_range_max_valueEv
Line
Count
Source
152
128
    CppType get_range_max_value() const { return _high_value; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE19get_range_max_valueEv
153
154
392k
    CppType get_range_min_value() const { return _low_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE19get_range_min_valueEv
Line
Count
Source
154
974
    CppType get_range_min_value() const { return _low_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE19get_range_min_valueEv
Line
Count
Source
154
502
    CppType get_range_min_value() const { return _low_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE19get_range_min_valueEv
Line
Count
Source
154
78.3k
    CppType get_range_min_value() const { return _low_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE19get_range_min_valueEv
Line
Count
Source
154
113k
    CppType get_range_min_value() const { return _low_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE19get_range_min_valueEv
Line
Count
Source
154
7.00k
    CppType get_range_min_value() const { return _low_value; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE19get_range_min_valueEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE19get_range_min_valueEv
Line
Count
Source
154
18
    CppType get_range_min_value() const { return _low_value; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE19get_range_min_valueEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE19get_range_min_valueEv
Line
Count
Source
154
2
    CppType get_range_min_value() const { return _low_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE19get_range_min_valueB5cxx11Ev
Line
Count
Source
154
425
    CppType get_range_min_value() const { return _low_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE19get_range_min_valueB5cxx11Ev
Line
Count
Source
154
184k
    CppType get_range_min_value() const { return _low_value; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE19get_range_min_valueB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE19get_range_min_valueEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE19get_range_min_valueEv
Line
Count
Source
154
1.86k
    CppType get_range_min_value() const { return _low_value; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE19get_range_min_valueEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE19get_range_min_valueEv
Line
Count
Source
154
1.91k
    CppType get_range_min_value() const { return _low_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE19get_range_min_valueEv
Line
Count
Source
154
6
    CppType get_range_min_value() const { return _low_value; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE19get_range_min_valueEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE19get_range_min_valueEv
Line
Count
Source
154
2.75k
    CppType get_range_min_value() const { return _low_value; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE19get_range_min_valueEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE19get_range_min_valueEv
Line
Count
Source
154
66
    CppType get_range_min_value() const { return _low_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE19get_range_min_valueEv
Line
Count
Source
154
217
    CppType get_range_min_value() const { return _low_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE19get_range_min_valueEv
Line
Count
Source
154
128
    CppType get_range_min_value() const { return _low_value; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE19get_range_min_valueEv
155
156
    const CppType* get_range_max_value_ptr() const { return &_high_value; }
157
158
    const CppType* get_range_min_value_ptr() const { return &_low_value; }
159
160
    SQLFilterOp get_range_high_op() const { return _high_op; }
161
162
    SQLFilterOp get_range_low_op() const { return _low_op; }
163
164
    bool is_low_value_minimum() const { return Compare::equal(_low_value, TYPE_MIN); }
165
166
    bool is_high_value_maximum() const { return Compare::equal(_high_value, TYPE_MAX); }
167
168
195k
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE16is_begin_includeEv
Line
Count
Source
168
940
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE16is_begin_includeEv
Line
Count
Source
168
217
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE16is_begin_includeEv
Line
Count
Source
168
37.8k
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE16is_begin_includeEv
Line
Count
Source
168
56.8k
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE16is_begin_includeEv
Line
Count
Source
168
3.41k
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE16is_begin_includeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE16is_begin_includeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE16is_begin_includeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE16is_begin_includeEv
Line
Count
Source
168
1
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE16is_begin_includeEv
Line
Count
Source
168
166
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE16is_begin_includeEv
Line
Count
Source
168
91.8k
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE16is_begin_includeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE16is_begin_includeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE16is_begin_includeEv
Line
Count
Source
168
1.77k
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE16is_begin_includeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE16is_begin_includeEv
Line
Count
Source
168
958
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE16is_begin_includeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE16is_begin_includeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE16is_begin_includeEv
Line
Count
Source
168
1.37k
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE16is_begin_includeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE16is_begin_includeEv
Line
Count
Source
168
33
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE16is_begin_includeEv
Line
Count
Source
168
108
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE16is_begin_includeEv
Line
Count
Source
168
64
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE16is_begin_includeEv
169
170
195k
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE14is_end_includeEv
Line
Count
Source
170
940
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE14is_end_includeEv
Line
Count
Source
170
219
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE14is_end_includeEv
Line
Count
Source
170
37.9k
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE14is_end_includeEv
Line
Count
Source
170
56.8k
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE14is_end_includeEv
Line
Count
Source
170
3.44k
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE14is_end_includeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE14is_end_includeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE14is_end_includeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE14is_end_includeEv
Line
Count
Source
170
1
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE14is_end_includeEv
Line
Count
Source
170
167
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE14is_end_includeEv
Line
Count
Source
170
91.9k
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE14is_end_includeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE14is_end_includeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE14is_end_includeEv
Line
Count
Source
170
1.77k
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE14is_end_includeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE14is_end_includeEv
Line
Count
Source
170
958
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE14is_end_includeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE14is_end_includeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE14is_end_includeEv
Line
Count
Source
170
1.37k
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE14is_end_includeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE14is_end_includeEv
Line
Count
Source
170
33
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE14is_end_includeEv
Line
Count
Source
170
108
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE14is_end_includeEv
Line
Count
Source
170
64
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE14is_end_includeEv
171
172
    PrimitiveType type() const { return _column_type; }
173
174
    const std::string& column_name() const { return _column_name; }
175
176
538k
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE12contain_nullEv
Line
Count
Source
176
1.43k
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE12contain_nullEv
Line
Count
Source
176
649
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE12contain_nullEv
Line
Count
Source
176
45.5k
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE12contain_nullEv
Line
Count
Source
176
131k
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE12contain_nullEv
Line
Count
Source
176
3.71k
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE12contain_nullEv
Line
Count
Source
176
196
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE12contain_nullEv
Line
Count
Source
176
264
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE12contain_nullEv
Line
Count
Source
176
6
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE12contain_nullEv
Line
Count
Source
176
3
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE12contain_nullEv
Line
Count
Source
176
466
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE12contain_nullEv
Line
Count
Source
176
343k
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE12contain_nullEv
Line
Count
Source
176
4.70k
    bool contain_null() const { return _contain_null; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE12contain_nullEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE12contain_nullEv
Line
Count
Source
176
2.46k
    bool contain_null() const { return _contain_null; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE12contain_nullEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE12contain_nullEv
Line
Count
Source
176
1.23k
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE12contain_nullEv
Line
Count
Source
176
5
    bool contain_null() const { return _contain_null; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE12contain_nullEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE12contain_nullEv
Line
Count
Source
176
1.61k
    bool contain_null() const { return _contain_null; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE12contain_nullEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE12contain_nullEv
Line
Count
Source
176
66
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE12contain_nullEv
Line
Count
Source
176
953
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE12contain_nullEv
Line
Count
Source
176
86
    bool contain_null() const { return _contain_null; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE12contain_nullEv
177
178
702k
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE20get_fixed_value_sizeEv
Line
Count
Source
178
971
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE20get_fixed_value_sizeEv
Line
Count
Source
178
225
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE20get_fixed_value_sizeEv
Line
Count
Source
178
41.8k
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE20get_fixed_value_sizeEv
Line
Count
Source
178
58.3k
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE20get_fixed_value_sizeEv
Line
Count
Source
178
3.79k
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE20get_fixed_value_sizeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE20get_fixed_value_sizeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE20get_fixed_value_sizeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE20get_fixed_value_sizeEv
Line
Count
Source
178
1
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE20get_fixed_value_sizeEv
Line
Count
Source
178
197
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE20get_fixed_value_sizeEv
Line
Count
Source
178
592k
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE20get_fixed_value_sizeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE20get_fixed_value_sizeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE20get_fixed_value_sizeEv
Line
Count
Source
178
2.47k
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE20get_fixed_value_sizeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE20get_fixed_value_sizeEv
Line
Count
Source
178
997
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE20get_fixed_value_sizeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE20get_fixed_value_sizeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE20get_fixed_value_sizeEv
Line
Count
Source
178
1.38k
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE20get_fixed_value_sizeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE20get_fixed_value_sizeEv
Line
Count
Source
178
39
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE20get_fixed_value_sizeEv
Line
Count
Source
178
131
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE20get_fixed_value_sizeEv
Line
Count
Source
178
76
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE20get_fixed_value_sizeEv
179
180
3.15k
    void set_whole_value_range() {
181
3.15k
        _fixed_values.clear();
182
3.15k
        _low_value = TYPE_MIN;
183
3.15k
        _high_value = TYPE_MAX;
184
3.15k
        _low_op = FILTER_LARGER_OR_EQUAL;
185
3.15k
        _high_op = FILTER_LESS_OR_EQUAL;
186
3.15k
        _contain_null = _is_nullable_col;
187
3.15k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE21set_whole_value_rangeEv
Line
Count
Source
180
172
    void set_whole_value_range() {
181
172
        _fixed_values.clear();
182
172
        _low_value = TYPE_MIN;
183
172
        _high_value = TYPE_MAX;
184
172
        _low_op = FILTER_LARGER_OR_EQUAL;
185
172
        _high_op = FILTER_LESS_OR_EQUAL;
186
172
        _contain_null = _is_nullable_col;
187
172
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE21set_whole_value_rangeEv
Line
Count
Source
180
20
    void set_whole_value_range() {
181
20
        _fixed_values.clear();
182
20
        _low_value = TYPE_MIN;
183
20
        _high_value = TYPE_MAX;
184
20
        _low_op = FILTER_LARGER_OR_EQUAL;
185
20
        _high_op = FILTER_LESS_OR_EQUAL;
186
20
        _contain_null = _is_nullable_col;
187
20
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE21set_whole_value_rangeEv
Line
Count
Source
180
434
    void set_whole_value_range() {
181
434
        _fixed_values.clear();
182
434
        _low_value = TYPE_MIN;
183
434
        _high_value = TYPE_MAX;
184
434
        _low_op = FILTER_LARGER_OR_EQUAL;
185
434
        _high_op = FILTER_LESS_OR_EQUAL;
186
434
        _contain_null = _is_nullable_col;
187
434
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE21set_whole_value_rangeEv
Line
Count
Source
180
18
    void set_whole_value_range() {
181
18
        _fixed_values.clear();
182
18
        _low_value = TYPE_MIN;
183
18
        _high_value = TYPE_MAX;
184
18
        _low_op = FILTER_LARGER_OR_EQUAL;
185
18
        _high_op = FILTER_LESS_OR_EQUAL;
186
18
        _contain_null = _is_nullable_col;
187
18
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE21set_whole_value_rangeEv
Line
Count
Source
180
2
    void set_whole_value_range() {
181
2
        _fixed_values.clear();
182
2
        _low_value = TYPE_MIN;
183
2
        _high_value = TYPE_MAX;
184
2
        _low_op = FILTER_LARGER_OR_EQUAL;
185
2
        _high_op = FILTER_LESS_OR_EQUAL;
186
2
        _contain_null = _is_nullable_col;
187
2
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE21set_whole_value_rangeEv
Line
Count
Source
180
8
    void set_whole_value_range() {
181
8
        _fixed_values.clear();
182
8
        _low_value = TYPE_MIN;
183
8
        _high_value = TYPE_MAX;
184
8
        _low_op = FILTER_LARGER_OR_EQUAL;
185
8
        _high_op = FILTER_LESS_OR_EQUAL;
186
8
        _contain_null = _is_nullable_col;
187
8
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE21set_whole_value_rangeEv
Line
Count
Source
180
31
    void set_whole_value_range() {
181
31
        _fixed_values.clear();
182
31
        _low_value = TYPE_MIN;
183
31
        _high_value = TYPE_MAX;
184
31
        _low_op = FILTER_LARGER_OR_EQUAL;
185
31
        _high_op = FILTER_LESS_OR_EQUAL;
186
31
        _contain_null = _is_nullable_col;
187
31
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE21set_whole_value_rangeEv
Line
Count
Source
180
3
    void set_whole_value_range() {
181
3
        _fixed_values.clear();
182
3
        _low_value = TYPE_MIN;
183
3
        _high_value = TYPE_MAX;
184
3
        _low_op = FILTER_LARGER_OR_EQUAL;
185
3
        _high_op = FILTER_LESS_OR_EQUAL;
186
3
        _contain_null = _is_nullable_col;
187
3
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE21set_whole_value_rangeEv
Line
Count
Source
180
1
    void set_whole_value_range() {
181
1
        _fixed_values.clear();
182
1
        _low_value = TYPE_MIN;
183
1
        _high_value = TYPE_MAX;
184
1
        _low_op = FILTER_LARGER_OR_EQUAL;
185
1
        _high_op = FILTER_LESS_OR_EQUAL;
186
1
        _contain_null = _is_nullable_col;
187
1
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE21set_whole_value_rangeEv
Line
Count
Source
180
14
    void set_whole_value_range() {
181
14
        _fixed_values.clear();
182
14
        _low_value = TYPE_MIN;
183
14
        _high_value = TYPE_MAX;
184
14
        _low_op = FILTER_LARGER_OR_EQUAL;
185
14
        _high_op = FILTER_LESS_OR_EQUAL;
186
14
        _contain_null = _is_nullable_col;
187
14
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE21set_whole_value_rangeEv
Line
Count
Source
180
48
    void set_whole_value_range() {
181
48
        _fixed_values.clear();
182
48
        _low_value = TYPE_MIN;
183
48
        _high_value = TYPE_MAX;
184
48
        _low_op = FILTER_LARGER_OR_EQUAL;
185
48
        _high_op = FILTER_LESS_OR_EQUAL;
186
48
        _contain_null = _is_nullable_col;
187
48
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE21set_whole_value_rangeEv
Line
Count
Source
180
2.05k
    void set_whole_value_range() {
181
2.05k
        _fixed_values.clear();
182
2.05k
        _low_value = TYPE_MIN;
183
2.05k
        _high_value = TYPE_MAX;
184
2.05k
        _low_op = FILTER_LARGER_OR_EQUAL;
185
2.05k
        _high_op = FILTER_LESS_OR_EQUAL;
186
2.05k
        _contain_null = _is_nullable_col;
187
2.05k
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE21set_whole_value_rangeEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE21set_whole_value_rangeEv
Line
Count
Source
180
20
    void set_whole_value_range() {
181
20
        _fixed_values.clear();
182
20
        _low_value = TYPE_MIN;
183
20
        _high_value = TYPE_MAX;
184
20
        _low_op = FILTER_LARGER_OR_EQUAL;
185
20
        _high_op = FILTER_LESS_OR_EQUAL;
186
20
        _contain_null = _is_nullable_col;
187
20
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE21set_whole_value_rangeEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE21set_whole_value_rangeEv
Line
Count
Source
180
44
    void set_whole_value_range() {
181
44
        _fixed_values.clear();
182
44
        _low_value = TYPE_MIN;
183
44
        _high_value = TYPE_MAX;
184
44
        _low_op = FILTER_LARGER_OR_EQUAL;
185
44
        _high_op = FILTER_LESS_OR_EQUAL;
186
44
        _contain_null = _is_nullable_col;
187
44
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE21set_whole_value_rangeEv
Line
Count
Source
180
1
    void set_whole_value_range() {
181
1
        _fixed_values.clear();
182
1
        _low_value = TYPE_MIN;
183
1
        _high_value = TYPE_MAX;
184
1
        _low_op = FILTER_LARGER_OR_EQUAL;
185
1
        _high_op = FILTER_LESS_OR_EQUAL;
186
1
        _contain_null = _is_nullable_col;
187
1
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE21set_whole_value_rangeEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE21set_whole_value_rangeEv
Line
Count
Source
180
10
    void set_whole_value_range() {
181
10
        _fixed_values.clear();
182
10
        _low_value = TYPE_MIN;
183
10
        _high_value = TYPE_MAX;
184
10
        _low_op = FILTER_LARGER_OR_EQUAL;
185
10
        _high_op = FILTER_LESS_OR_EQUAL;
186
10
        _contain_null = _is_nullable_col;
187
10
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE21set_whole_value_rangeEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE21set_whole_value_rangeEv
Line
Count
Source
180
5
    void set_whole_value_range() {
181
5
        _fixed_values.clear();
182
5
        _low_value = TYPE_MIN;
183
5
        _high_value = TYPE_MAX;
184
5
        _low_op = FILTER_LARGER_OR_EQUAL;
185
5
        _high_op = FILTER_LESS_OR_EQUAL;
186
5
        _contain_null = _is_nullable_col;
187
5
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE21set_whole_value_rangeEv
Line
Count
Source
180
255
    void set_whole_value_range() {
181
255
        _fixed_values.clear();
182
255
        _low_value = TYPE_MIN;
183
255
        _high_value = TYPE_MAX;
184
255
        _low_op = FILTER_LARGER_OR_EQUAL;
185
255
        _high_op = FILTER_LESS_OR_EQUAL;
186
255
        _contain_null = _is_nullable_col;
187
255
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE21set_whole_value_rangeEv
Line
Count
Source
180
8
    void set_whole_value_range() {
181
8
        _fixed_values.clear();
182
8
        _low_value = TYPE_MIN;
183
8
        _high_value = TYPE_MAX;
184
8
        _low_op = FILTER_LARGER_OR_EQUAL;
185
8
        _high_op = FILTER_LESS_OR_EQUAL;
186
8
        _contain_null = _is_nullable_col;
187
8
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE21set_whole_value_rangeEv
188
189
1.85k
    bool is_whole_value_range() const {
190
18.4E
        DCHECK(_is_nullable_col || !contain_null())
191
18.4E
                << "Non-nullable column cannot contains null value";
192
193
1.86k
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
1.85k
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
1.85k
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
1.85k
    }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE20is_whole_value_rangeEv
Line
Count
Source
189
64
    bool is_whole_value_range() const {
190
64
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
64
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
64
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
64
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
64
    }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE20is_whole_value_rangeEv
Line
Count
Source
189
64
    bool is_whole_value_range() const {
190
64
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
64
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
64
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
64
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
64
    }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE20is_whole_value_rangeEv
Line
Count
Source
189
434
    bool is_whole_value_range() const {
190
434
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
435
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
434
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
434
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
434
    }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE20is_whole_value_rangeEv
Line
Count
Source
189
64
    bool is_whole_value_range() const {
190
64
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
64
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
64
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
64
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
64
    }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE20is_whole_value_rangeEv
Line
Count
Source
189
20
    bool is_whole_value_range() const {
190
20
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
20
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
20
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
20
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
20
    }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE20is_whole_value_rangeEv
Line
Count
Source
189
72
    bool is_whole_value_range() const {
190
72
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
72
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
72
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
72
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
72
    }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE20is_whole_value_rangeEv
Line
Count
Source
189
79
    bool is_whole_value_range() const {
190
18.4E
        DCHECK(_is_nullable_col || !contain_null())
191
18.4E
                << "Non-nullable column cannot contains null value";
192
193
81
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
79
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
79
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
79
    }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE20is_whole_value_rangeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE20is_whole_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE20is_whole_value_rangeEv
Line
Count
Source
189
66
    bool is_whole_value_range() const {
190
18.4E
        DCHECK(_is_nullable_col || !contain_null())
191
18.4E
                << "Non-nullable column cannot contains null value";
192
193
68
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
66
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
66
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
66
    }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE20is_whole_value_rangeEv
Line
Count
Source
189
358
    bool is_whole_value_range() const {
190
358
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
358
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
358
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
358
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
358
    }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE20is_whole_value_rangeEv
Line
Count
Source
189
251
    bool is_whole_value_range() const {
190
251
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
251
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
251
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
251
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
251
    }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE20is_whole_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE20is_whole_value_rangeEv
Line
Count
Source
189
102
    bool is_whole_value_range() const {
190
102
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
102
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
102
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
102
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
102
    }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE20is_whole_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE20is_whole_value_rangeEv
Line
Count
Source
189
68
    bool is_whole_value_range() const {
190
68
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
68
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
68
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
68
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
68
    }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE20is_whole_value_rangeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE20is_whole_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE20is_whole_value_rangeEv
Line
Count
Source
189
74
    bool is_whole_value_range() const {
190
74
        DCHECK(_is_nullable_col || !contain_null())
191
2
                << "Non-nullable column cannot contains null value";
192
193
74
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
74
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
74
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
74
    }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE20is_whole_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE20is_whole_value_rangeEv
Line
Count
Source
189
8
    bool is_whole_value_range() const {
190
8
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
8
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
8
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
8
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
8
    }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE20is_whole_value_rangeEv
Line
Count
Source
189
134
    bool is_whole_value_range() const {
190
134
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
134
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
134
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
134
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
134
    }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE20is_whole_value_rangeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE20is_whole_value_rangeEv
197
198
    // only two case will set range contain null, call by temp_range in olap scan node
199
    // 'is null' and 'is not null'
200
    // 1. if the pred is 'is null' means the range should be
201
    // empty in fixed_range and _high_value < _low_value
202
    // 2. if the pred is 'is not null' means the range should be whole range and
203
    // 'is not null' be effective
204
5.02k
    void set_contain_null(bool contain_null) {
205
5.02k
        if (contain_null) {
206
1.86k
            set_empty_value_range();
207
3.15k
        } else {
208
3.15k
            set_whole_value_range();
209
3.15k
        }
210
5.02k
        _contain_null = _is_nullable_col && contain_null;
211
5.02k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE16set_contain_nullEb
Line
Count
Source
204
236
    void set_contain_null(bool contain_null) {
205
236
        if (contain_null) {
206
64
            set_empty_value_range();
207
172
        } else {
208
172
            set_whole_value_range();
209
172
        }
210
236
        _contain_null = _is_nullable_col && contain_null;
211
236
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE16set_contain_nullEb
Line
Count
Source
204
85
    void set_contain_null(bool contain_null) {
205
85
        if (contain_null) {
206
64
            set_empty_value_range();
207
64
        } else {
208
21
            set_whole_value_range();
209
21
        }
210
85
        _contain_null = _is_nullable_col && contain_null;
211
85
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE16set_contain_nullEb
Line
Count
Source
204
871
    void set_contain_null(bool contain_null) {
205
871
        if (contain_null) {
206
440
            set_empty_value_range();
207
440
        } else {
208
431
            set_whole_value_range();
209
431
        }
210
871
        _contain_null = _is_nullable_col && contain_null;
211
871
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE16set_contain_nullEb
Line
Count
Source
204
83
    void set_contain_null(bool contain_null) {
205
83
        if (contain_null) {
206
65
            set_empty_value_range();
207
65
        } else {
208
18
            set_whole_value_range();
209
18
        }
210
83
        _contain_null = _is_nullable_col && contain_null;
211
83
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE16set_contain_nullEb
Line
Count
Source
204
22
    void set_contain_null(bool contain_null) {
205
22
        if (contain_null) {
206
20
            set_empty_value_range();
207
20
        } else {
208
2
            set_whole_value_range();
209
2
        }
210
22
        _contain_null = _is_nullable_col && contain_null;
211
22
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE16set_contain_nullEb
Line
Count
Source
204
80
    void set_contain_null(bool contain_null) {
205
80
        if (contain_null) {
206
72
            set_empty_value_range();
207
72
        } else {
208
8
            set_whole_value_range();
209
8
        }
210
80
        _contain_null = _is_nullable_col && contain_null;
211
80
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE16set_contain_nullEb
Line
Count
Source
204
113
    void set_contain_null(bool contain_null) {
205
113
        if (contain_null) {
206
82
            set_empty_value_range();
207
82
        } else {
208
31
            set_whole_value_range();
209
31
        }
210
113
        _contain_null = _is_nullable_col && contain_null;
211
113
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE16set_contain_nullEb
Line
Count
Source
204
3
    void set_contain_null(bool contain_null) {
205
3
        if (contain_null) {
206
0
            set_empty_value_range();
207
3
        } else {
208
3
            set_whole_value_range();
209
3
        }
210
3
        _contain_null = _is_nullable_col && contain_null;
211
3
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE16set_contain_nullEb
Line
Count
Source
204
1
    void set_contain_null(bool contain_null) {
205
1
        if (contain_null) {
206
0
            set_empty_value_range();
207
1
        } else {
208
1
            set_whole_value_range();
209
1
        }
210
1
        _contain_null = _is_nullable_col && contain_null;
211
1
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE16set_contain_nullEb
Line
Count
Source
204
82
    void set_contain_null(bool contain_null) {
205
82
        if (contain_null) {
206
68
            set_empty_value_range();
207
68
        } else {
208
14
            set_whole_value_range();
209
14
        }
210
82
        _contain_null = _is_nullable_col && contain_null;
211
82
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE16set_contain_nullEb
Line
Count
Source
204
406
    void set_contain_null(bool contain_null) {
205
406
        if (contain_null) {
206
358
            set_empty_value_range();
207
358
        } else {
208
48
            set_whole_value_range();
209
48
        }
210
406
        _contain_null = _is_nullable_col && contain_null;
211
406
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE16set_contain_nullEb
Line
Count
Source
204
2.31k
    void set_contain_null(bool contain_null) {
205
2.31k
        if (contain_null) {
206
251
            set_empty_value_range();
207
2.06k
        } else {
208
2.06k
            set_whole_value_range();
209
2.06k
        }
210
2.32k
        _contain_null = _is_nullable_col && contain_null;
211
2.31k
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE16set_contain_nullEb
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE16set_contain_nullEb
Line
Count
Source
204
123
    void set_contain_null(bool contain_null) {
205
123
        if (contain_null) {
206
103
            set_empty_value_range();
207
103
        } else {
208
20
            set_whole_value_range();
209
20
        }
210
124
        _contain_null = _is_nullable_col && contain_null;
211
123
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE16set_contain_nullEb
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE16set_contain_nullEb
Line
Count
Source
204
113
    void set_contain_null(bool contain_null) {
205
113
        if (contain_null) {
206
68
            set_empty_value_range();
207
68
        } else {
208
45
            set_whole_value_range();
209
45
        }
210
113
        _contain_null = _is_nullable_col && contain_null;
211
113
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE16set_contain_nullEb
Line
Count
Source
204
1
    void set_contain_null(bool contain_null) {
205
1
        if (contain_null) {
206
0
            set_empty_value_range();
207
1
        } else {
208
1
            set_whole_value_range();
209
1
        }
210
1
        _contain_null = _is_nullable_col && contain_null;
211
1
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE16set_contain_nullEb
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE16set_contain_nullEb
Line
Count
Source
204
82
    void set_contain_null(bool contain_null) {
205
82
        if (contain_null) {
206
72
            set_empty_value_range();
207
72
        } else {
208
10
            set_whole_value_range();
209
10
        }
210
82
        _contain_null = _is_nullable_col && contain_null;
211
82
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE16set_contain_nullEb
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE16set_contain_nullEb
Line
Count
Source
204
13
    void set_contain_null(bool contain_null) {
205
13
        if (contain_null) {
206
8
            set_empty_value_range();
207
8
        } else {
208
5
            set_whole_value_range();
209
5
        }
210
13
        _contain_null = _is_nullable_col && contain_null;
211
13
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE16set_contain_nullEb
Line
Count
Source
204
387
    void set_contain_null(bool contain_null) {
205
387
        if (contain_null) {
206
134
            set_empty_value_range();
207
253
        } else {
208
253
            set_whole_value_range();
209
253
        }
210
387
        _contain_null = _is_nullable_col && contain_null;
211
387
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE16set_contain_nullEb
Line
Count
Source
204
8
    void set_contain_null(bool contain_null) {
205
8
        if (contain_null) {
206
0
            set_empty_value_range();
207
8
        } else {
208
8
            set_whole_value_range();
209
8
        }
210
8
        _contain_null = _is_nullable_col && contain_null;
211
8
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE16set_contain_nullEb
212
213
490k
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE9precisionEv
Line
Count
Source
213
98.3k
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE9precisionEv
Line
Count
Source
213
843
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE9precisionEv
Line
Count
Source
213
15.6k
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE9precisionEv
Line
Count
Source
213
77.1k
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE9precisionEv
Line
Count
Source
213
408
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE9precisionEv
Line
Count
Source
213
170
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE9precisionEv
Line
Count
Source
213
367
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE9precisionEv
Line
Count
Source
213
5
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE9precisionEv
Line
Count
Source
213
5
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE9precisionEv
Line
Count
Source
213
1.22k
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE9precisionEv
Line
Count
Source
213
259k
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE9precisionEv
Line
Count
Source
213
4.20k
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE9precisionEv
Line
Count
Source
213
18
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE9precisionEv
Line
Count
Source
213
27.3k
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE9precisionEv
Line
Count
Source
213
20
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE9precisionEv
Line
Count
Source
213
3.36k
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE9precisionEv
Line
Count
Source
213
21
    int precision() const { return _precision; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE9precisionEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE9precisionEv
Line
Count
Source
213
298
    int precision() const { return _precision; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE9precisionEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE9precisionEv
Line
Count
Source
213
47
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE9precisionEv
Line
Count
Source
213
880
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE9precisionEv
Line
Count
Source
213
218
    int precision() const { return _precision; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE9precisionEv
214
215
1.65M
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE5scaleEv
Line
Count
Source
215
175k
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE5scaleEv
Line
Count
Source
215
16.9k
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE5scaleEv
Line
Count
Source
215
119k
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE5scaleEv
Line
Count
Source
215
194k
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE5scaleEv
Line
Count
Source
215
7.77k
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE5scaleEv
Line
Count
Source
215
170
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE5scaleEv
Line
Count
Source
215
367
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE5scaleEv
Line
Count
Source
215
5
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE5scaleEv
Line
Count
Source
215
7
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE5scaleEv
Line
Count
Source
215
1.77k
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE5scaleEv
Line
Count
Source
215
943k
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE5scaleEv
Line
Count
Source
215
4.20k
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE5scaleEv
Line
Count
Source
215
18
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE5scaleEv
Line
Count
Source
215
184k
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE5scaleEv
Line
Count
Source
215
20
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE5scaleEv
Line
Count
Source
215
5.32k
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE5scaleEv
Line
Count
Source
215
21
    int scale() const { return _scale; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE5scaleEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE5scaleEv
Line
Count
Source
215
3.10k
    int scale() const { return _scale; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE5scaleEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE5scaleEv
Line
Count
Source
215
119
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE5scaleEv
Line
Count
Source
215
1.12k
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE5scaleEv
Line
Count
Source
215
358
    int scale() const { return _scale; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE5scaleEv
216
217
    static void add_fixed_value_range(ColumnValueRange<primitive_type>& range, SQLFilterOp op,
218
406k
                                      const CppType& value) {
219
406k
        static_cast<void>(range.add_fixed_value(value));
220
406k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKa
Line
Count
Source
218
97.1k
                                      const CppType& value) {
219
97.1k
        static_cast<void>(range.add_fixed_value(value));
220
97.1k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKs
Line
Count
Source
218
103
                                      const CppType& value) {
219
103
        static_cast<void>(range.add_fixed_value(value));
220
103
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKi
Line
Count
Source
218
36.2k
                                      const CppType& value) {
219
36.2k
        static_cast<void>(range.add_fixed_value(value));
220
36.2k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKl
Line
Count
Source
218
1.66k
                                      const CppType& value) {
219
1.66k
        static_cast<void>(range.add_fixed_value(value));
220
1.66k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKn
Line
Count
Source
218
224
                                      const CppType& value) {
219
224
        static_cast<void>(range.add_fixed_value(value));
220
224
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKf
Line
Count
Source
218
48
                                      const CppType& value) {
219
48
        static_cast<void>(range.add_fixed_value(value));
220
48
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKd
Line
Count
Source
218
105
                                      const CppType& value) {
219
105
        static_cast<void>(range.add_fixed_value(value));
220
105
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKj
Line
Count
Source
218
2
                                      const CppType& value) {
219
2
        static_cast<void>(range.add_fixed_value(value));
220
2
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKo
Line
Count
Source
218
4
                                      const CppType& value) {
219
4
        static_cast<void>(range.add_fixed_value(value));
220
4
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
218
620
                                      const CppType& value) {
219
620
        static_cast<void>(range.add_fixed_value(value));
220
620
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
218
259k
                                      const CppType& value) {
219
259k
        static_cast<void>(range.add_fixed_value(value));
220
259k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
218
1.55k
                                      const CppType& value) {
219
1.55k
        static_cast<void>(range.add_fixed_value(value));
220
1.55k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_16VecDateTimeValueE
Line
Count
Source
218
18
                                      const CppType& value) {
219
18
        static_cast<void>(range.add_fixed_value(value));
220
18
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_11DateV2ValueINS_15DateV2ValueTypeEEE
Line
Count
Source
218
8.00k
                                      const CppType& value) {
219
8.00k
        static_cast<void>(range.add_fixed_value(value));
220
8.00k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_16VecDateTimeValueE
Line
Count
Source
218
20
                                      const CppType& value) {
219
20
        static_cast<void>(range.add_fixed_value(value));
220
20
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_11DateV2ValueINS_19DateTimeV2ValueTypeEEE
Line
Count
Source
218
614
                                      const CppType& value) {
219
614
        static_cast<void>(range.add_fixed_value(value));
220
614
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_16TimestampTzValueE
Line
Count
Source
218
6
                                      const CppType& value) {
219
6
        static_cast<void>(range.add_fixed_value(value));
220
6
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_14DecimalV2ValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKh
Line
Count
Source
218
211
                                      const CppType& value) {
219
211
        static_cast<void>(range.add_fixed_value(value));
220
211
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_9StringRefE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_7DecimalIiEE
Line
Count
Source
218
18
                                      const CppType& value) {
219
18
        static_cast<void>(range.add_fixed_value(value));
220
18
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_7DecimalIlEE
Line
Count
Source
218
228
                                      const CppType& value) {
219
228
        static_cast<void>(range.add_fixed_value(value));
220
228
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_12Decimal128V3E
Line
Count
Source
218
75
                                      const CppType& value) {
219
75
        static_cast<void>(range.add_fixed_value(value));
220
75
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_7DecimalIN4wide7integerILm256EiEEEE
221
222
    static void remove_fixed_value_range(ColumnValueRange<primitive_type>& range, SQLFilterOp op,
223
3
                                         const CppType& value) {
224
3
        range.remove_fixed_value(value);
225
3
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKa
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKs
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKi
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKl
Line
Count
Source
223
3
                                         const CppType& value) {
224
3
        range.remove_fixed_value(value);
225
3
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKn
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKf
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKd
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKj
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKo
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_16VecDateTimeValueE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_11DateV2ValueINS_15DateV2ValueTypeEEE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_16VecDateTimeValueE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_11DateV2ValueINS_19DateTimeV2ValueTypeEEE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_16TimestampTzValueE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_14DecimalV2ValueE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKh
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_9StringRefE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_7DecimalIiEE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_7DecimalIlEE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_12Decimal128V3E
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE24remove_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_7DecimalIN4wide7integerILm256EiEEEE
226
227
    static void empty_function(ColumnValueRange<primitive_type>& range, SQLFilterOp op,
228
2.14k
                               const CppType& value) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE14empty_functionERS2_NS_11SQLFilterOpERKa
Line
Count
Source
228
24
                               const CppType& value) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE14empty_functionERS2_NS_11SQLFilterOpERKs
Line
Count
Source
228
2
                               const CppType& value) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE14empty_functionERS2_NS_11SQLFilterOpERKi
Line
Count
Source
228
1.05k
                               const CppType& value) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE14empty_functionERS2_NS_11SQLFilterOpERKl
Line
Count
Source
228
21
                               const CppType& value) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE14empty_functionERS2_NS_11SQLFilterOpERKn
Line
Count
Source
228
2
                               const CppType& value) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE14empty_functionERS2_NS_11SQLFilterOpERKf
Line
Count
Source
228
6
                               const CppType& value) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE14empty_functionERS2_NS_11SQLFilterOpERKd
Line
Count
Source
228
32
                               const CppType& value) {}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE14empty_functionERS2_NS_11SQLFilterOpERKj
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE14empty_functionERS2_NS_11SQLFilterOpERKo
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE14empty_functionERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
228
133
                               const CppType& value) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE14empty_functionERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
228
463
                               const CppType& value) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE14empty_functionERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
228
265
                               const CppType& value) {}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE14empty_functionERS2_NS_11SQLFilterOpERKNS_16VecDateTimeValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE14empty_functionERS2_NS_11SQLFilterOpERKNS_11DateV2ValueINS_15DateV2ValueTypeEEE
Line
Count
Source
228
27
                               const CppType& value) {}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE14empty_functionERS2_NS_11SQLFilterOpERKNS_16VecDateTimeValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE14empty_functionERS2_NS_11SQLFilterOpERKNS_11DateV2ValueINS_19DateTimeV2ValueTypeEEE
Line
Count
Source
228
90
                               const CppType& value) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE14empty_functionERS2_NS_11SQLFilterOpERKNS_16TimestampTzValueE
Line
Count
Source
228
6
                               const CppType& value) {}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE14empty_functionERS2_NS_11SQLFilterOpERKNS_14DecimalV2ValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE14empty_functionERS2_NS_11SQLFilterOpERKh
Line
Count
Source
228
2
                               const CppType& value) {}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE14empty_functionERS2_NS_11SQLFilterOpERKNS_9StringRefE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE14empty_functionERS2_NS_11SQLFilterOpERKNS_7DecimalIiEE
Line
Count
Source
228
2
                               const CppType& value) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE14empty_functionERS2_NS_11SQLFilterOpERKNS_7DecimalIlEE
Line
Count
Source
228
2
                               const CppType& value) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE14empty_functionERS2_NS_11SQLFilterOpERKNS_12Decimal128V3E
Line
Count
Source
228
15
                               const CppType& value) {}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE14empty_functionERS2_NS_11SQLFilterOpERKNS_7DecimalIN4wide7integerILm256EiEEEE
229
230
    static void add_value_range(ColumnValueRange<primitive_type>& range, SQLFilterOp op,
231
88.9k
                                const CppType& value) {
232
88.9k
        static_cast<void>(range.add_range(op, value));
233
88.9k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE15add_value_rangeERS2_NS_11SQLFilterOpERKa
Line
Count
Source
231
581
                                const CppType& value) {
232
581
        static_cast<void>(range.add_range(op, value));
233
581
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE15add_value_rangeERS2_NS_11SQLFilterOpERKs
Line
Count
Source
231
700
                                const CppType& value) {
232
700
        static_cast<void>(range.add_range(op, value));
233
700
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE15add_value_rangeERS2_NS_11SQLFilterOpERKi
Line
Count
Source
231
8.46k
                                const CppType& value) {
232
8.46k
        static_cast<void>(range.add_range(op, value));
233
8.46k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE15add_value_rangeERS2_NS_11SQLFilterOpERKl
Line
Count
Source
231
54.3k
                                const CppType& value) {
232
54.3k
        static_cast<void>(range.add_range(op, value));
233
54.3k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE15add_value_rangeERS2_NS_11SQLFilterOpERKn
Line
Count
Source
231
194
                                const CppType& value) {
232
194
        static_cast<void>(range.add_range(op, value));
233
194
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE15add_value_rangeERS2_NS_11SQLFilterOpERKf
Line
Count
Source
231
83
                                const CppType& value) {
232
83
        static_cast<void>(range.add_range(op, value));
233
83
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE15add_value_rangeERS2_NS_11SQLFilterOpERKd
Line
Count
Source
231
182
                                const CppType& value) {
232
182
        static_cast<void>(range.add_range(op, value));
233
182
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE15add_value_rangeERS2_NS_11SQLFilterOpERKj
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE15add_value_rangeERS2_NS_11SQLFilterOpERKo
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE15add_value_rangeERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
231
640
                                const CppType& value) {
232
640
        static_cast<void>(range.add_range(op, value));
233
640
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE15add_value_rangeERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
231
688
                                const CppType& value) {
232
688
        static_cast<void>(range.add_range(op, value));
233
688
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE15add_value_rangeERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
231
421
                                const CppType& value) {
232
421
        static_cast<void>(range.add_range(op, value));
233
421
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE15add_value_rangeERS2_NS_11SQLFilterOpERKNS_16VecDateTimeValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE15add_value_rangeERS2_NS_11SQLFilterOpERKNS_11DateV2ValueINS_15DateV2ValueTypeEEE
Line
Count
Source
231
19.4k
                                const CppType& value) {
232
19.4k
        static_cast<void>(range.add_range(op, value));
233
19.4k
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE15add_value_rangeERS2_NS_11SQLFilterOpERKNS_16VecDateTimeValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE15add_value_rangeERS2_NS_11SQLFilterOpERKNS_11DateV2ValueINS_19DateTimeV2ValueTypeEEE
Line
Count
Source
231
2.62k
                                const CppType& value) {
232
2.62k
        static_cast<void>(range.add_range(op, value));
233
2.62k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE15add_value_rangeERS2_NS_11SQLFilterOpERKNS_16TimestampTzValueE
Line
Count
Source
231
12
                                const CppType& value) {
232
12
        static_cast<void>(range.add_range(op, value));
233
12
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE15add_value_rangeERS2_NS_11SQLFilterOpERKNS_14DecimalV2ValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE15add_value_rangeERS2_NS_11SQLFilterOpERKh
Line
Count
Source
231
48
                                const CppType& value) {
232
48
        static_cast<void>(range.add_range(op, value));
233
48
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE15add_value_rangeERS2_NS_11SQLFilterOpERKNS_9StringRefE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE15add_value_rangeERS2_NS_11SQLFilterOpERKNS_7DecimalIiEE
Line
Count
Source
231
18
                                const CppType& value) {
232
18
        static_cast<void>(range.add_range(op, value));
233
18
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE15add_value_rangeERS2_NS_11SQLFilterOpERKNS_7DecimalIlEE
Line
Count
Source
231
392
                                const CppType& value) {
232
392
        static_cast<void>(range.add_range(op, value));
233
392
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE15add_value_rangeERS2_NS_11SQLFilterOpERKNS_12Decimal128V3E
Line
Count
Source
231
118
                                const CppType& value) {
232
118
        static_cast<void>(range.add_range(op, value));
233
118
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE15add_value_rangeERS2_NS_11SQLFilterOpERKNS_7DecimalIN4wide7integerILm256EiEEEE
234
235
    static ColumnValueRange<primitive_type> create_empty_column_value_range(bool is_nullable_col,
236
                                                                            int precision,
237
488k
                                                                            int scale) {
238
488k
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
488k
                                                precision, scale);
240
488k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
98.0k
                                                                            int scale) {
238
98.0k
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
98.0k
                                                precision, scale);
240
98.0k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
838
                                                                            int scale) {
238
838
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
838
                                                precision, scale);
240
838
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
15.6k
                                                                            int scale) {
238
15.6k
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
15.6k
                                                precision, scale);
240
15.6k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
76.9k
                                                                            int scale) {
238
76.9k
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
76.9k
                                                precision, scale);
240
76.9k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
399
                                                                            int scale) {
238
399
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
399
                                                precision, scale);
240
399
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
169
                                                                            int scale) {
238
169
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
169
                                                precision, scale);
240
169
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
366
                                                                            int scale) {
238
366
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
366
                                                precision, scale);
240
366
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
5
                                                                            int scale) {
238
5
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
5
                                                precision, scale);
240
5
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
5
                                                                            int scale) {
238
5
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
5
                                                precision, scale);
240
5
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
1.20k
                                                                            int scale) {
238
1.20k
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
1.20k
                                                precision, scale);
240
1.20k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
258k
                                                                            int scale) {
238
258k
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
258k
                                                precision, scale);
240
258k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
4.17k
                                                                            int scale) {
238
4.17k
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
4.17k
                                                precision, scale);
240
4.17k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
18
                                                                            int scale) {
238
18
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
18
                                                precision, scale);
240
18
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
27.2k
                                                                            int scale) {
238
27.2k
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
27.2k
                                                precision, scale);
240
27.2k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
20
                                                                            int scale) {
238
20
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
20
                                                precision, scale);
240
20
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
3.33k
                                                                            int scale) {
238
3.33k
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
3.33k
                                                precision, scale);
240
3.33k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
21
                                                                            int scale) {
238
21
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
21
                                                precision, scale);
240
21
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE31create_empty_column_value_rangeEbii
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
298
                                                                            int scale) {
238
298
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
298
                                                precision, scale);
240
298
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE31create_empty_column_value_rangeEbii
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
47
                                                                            int scale) {
238
47
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
47
                                                precision, scale);
240
47
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
875
                                                                            int scale) {
238
875
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
875
                                                precision, scale);
240
875
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
219
                                                                            int scale) {
238
219
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
219
                                                precision, scale);
240
219
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE31create_empty_column_value_rangeEbii
241
242
protected:
243
    bool is_in_range(const CppType& value);
244
245
private:
246
    ColumnValueRange(std::string col_name, const CppType& min, const CppType& max,
247
                     bool contain_null);
248
249
    ColumnValueRange(std::string col_name, const CppType& min, const CppType& max,
250
                     bool is_nullable_col, bool contain_null, int precision, int scale);
251
252
    const static CppType TYPE_MIN; // Column type's min value
253
    const static CppType TYPE_MAX; // Column type's max value
254
255
    std::string _column_name;
256
    PrimitiveType _column_type; // Column type (eg: TINYINT,SMALLINT,INT,BIGINT)
257
    CppType _low_value;         // Column's low value, closed interval at left
258
    CppType _high_value;        // Column's high value, open interval at right
259
    SQLFilterOp _low_op;
260
    SQLFilterOp _high_op;
261
    SetType _fixed_values; // Column's fixed int value
262
263
    bool _is_nullable_col;
264
    bool _contain_null;
265
    int _precision;
266
    int _scale;
267
268
    static constexpr bool _is_reject_split_type =
269
            primitive_type == PrimitiveType::TYPE_FLOAT ||
270
            primitive_type == PrimitiveType::TYPE_DOUBLE ||
271
            primitive_type == PrimitiveType::TYPE_LARGEINT ||
272
            primitive_type == PrimitiveType::TYPE_DECIMALV2 ||
273
            primitive_type == PrimitiveType::TYPE_HLL ||
274
            primitive_type == PrimitiveType::TYPE_VARCHAR ||
275
            primitive_type == PrimitiveType::TYPE_CHAR ||
276
            primitive_type == PrimitiveType::TYPE_STRING ||
277
            primitive_type == PrimitiveType::TYPE_BOOLEAN ||
278
            primitive_type == PrimitiveType::TYPE_DATETIME ||
279
            primitive_type == PrimitiveType::TYPE_DATETIMEV2 ||
280
            primitive_type == PrimitiveType::TYPE_TIMESTAMPTZ ||
281
            primitive_type == PrimitiveType::TYPE_DECIMAL256;
282
};
283
template <>
284
const typename ColumnValueRange<TYPE_FLOAT>::CppType ColumnValueRange<TYPE_FLOAT>::TYPE_MIN;
285
template <>
286
const typename ColumnValueRange<TYPE_FLOAT>::CppType ColumnValueRange<TYPE_FLOAT>::TYPE_MAX;
287
template <>
288
const typename ColumnValueRange<TYPE_DOUBLE>::CppType ColumnValueRange<TYPE_DOUBLE>::TYPE_MIN;
289
template <>
290
const typename ColumnValueRange<TYPE_DOUBLE>::CppType ColumnValueRange<TYPE_DOUBLE>::TYPE_MAX;
291
292
class OlapScanKeys {
293
public:
294
    // TODO(gabriel): use ColumnPredicate to extend scan key
295
    template <PrimitiveType primitive_type>
296
    Status extend_scan_key(ColumnValueRange<primitive_type>& range, int32_t max_scan_key_num,
297
                           bool* exact_value, bool* eos, bool* should_break);
298
299
    Status get_key_range(std::vector<std::unique_ptr<OlapScanRange>>* key_range);
300
301
650k
    bool has_range_value() const { return _has_range_value; }
302
303
0
    void clear() {
304
0
        _has_range_value = false;
305
0
        _begin_scan_keys.clear();
306
0
        _end_scan_keys.clear();
307
0
    }
308
309
1.80k
    std::string debug_string() {
310
1.80k
        std::stringstream ss;
311
1.80k
        DCHECK(_begin_scan_keys.size() == _end_scan_keys.size());
312
1.80k
        ss << "ScanKeys:";
313
314
14.3k
        for (int i = 0; i < _begin_scan_keys.size(); ++i) {
315
18.4E
            ss << "ScanKey=" << (_begin_include ? "[" : "(") << _begin_scan_keys[i] << " : "
316
18.4E
               << _end_scan_keys[i] << (_end_include ? "]" : ")");
317
12.5k
        }
318
1.80k
        return ss.str();
319
1.80k
    }
320
321
0
    size_t size() {
322
0
        DCHECK(_begin_scan_keys.size() == _end_scan_keys.size());
323
0
        return _begin_scan_keys.size();
324
0
    }
325
326
231k
    void set_is_convertible(bool is_convertible) { _is_convertible = is_convertible; }
327
328
private:
329
    std::vector<OlapTuple> _begin_scan_keys;
330
    std::vector<OlapTuple> _end_scan_keys;
331
    bool _has_range_value = false;
332
    bool _begin_include = false;
333
    bool _end_include = false;
334
    bool _is_convertible = false;
335
};
336
337
using ColumnValueRangeType = std::variant<
338
        ColumnValueRange<TYPE_TINYINT>, ColumnValueRange<TYPE_SMALLINT>, ColumnValueRange<TYPE_INT>,
339
        ColumnValueRange<TYPE_BIGINT>, ColumnValueRange<TYPE_LARGEINT>,
340
        ColumnValueRange<TYPE_FLOAT>, ColumnValueRange<TYPE_DOUBLE>, ColumnValueRange<TYPE_IPV4>,
341
        ColumnValueRange<TYPE_IPV6>, ColumnValueRange<TYPE_CHAR>, ColumnValueRange<TYPE_VARCHAR>,
342
        ColumnValueRange<TYPE_STRING>, ColumnValueRange<TYPE_DATE>, ColumnValueRange<TYPE_DATEV2>,
343
        ColumnValueRange<TYPE_DATETIME>, ColumnValueRange<TYPE_DATETIMEV2>,
344
        ColumnValueRange<TYPE_TIMESTAMPTZ>, ColumnValueRange<TYPE_DECIMALV2>,
345
        ColumnValueRange<TYPE_BOOLEAN>, ColumnValueRange<TYPE_HLL>,
346
        ColumnValueRange<TYPE_DECIMAL32>, ColumnValueRange<TYPE_DECIMAL64>,
347
        ColumnValueRange<TYPE_DECIMAL128I>, ColumnValueRange<TYPE_DECIMAL256>>;
348
349
template <PrimitiveType primitive_type>
350
const typename ColumnValueRange<primitive_type>::CppType
351
        ColumnValueRange<primitive_type>::TYPE_MIN =
352
                type_limit<typename ColumnValueRange<primitive_type>::CppType>::min();
353
template <PrimitiveType primitive_type>
354
const typename ColumnValueRange<primitive_type>::CppType
355
        ColumnValueRange<primitive_type>::TYPE_MAX =
356
                type_limit<typename ColumnValueRange<primitive_type>::CppType>::max();
357
358
template <PrimitiveType primitive_type>
359
ColumnValueRange<primitive_type>::ColumnValueRange()
360
2.05M
        : _column_type(INVALID_TYPE), _precision(-1), _scale(-1) {}
361
362
template <PrimitiveType primitive_type>
363
ColumnValueRange<primitive_type>::ColumnValueRange(std::string col_name, const CppType& min,
364
                                                   const CppType& max, bool contain_null)
365
        : _column_name(std::move(col_name)),
366
          _column_type(primitive_type),
367
          _low_value(min),
368
          _high_value(max),
369
          _low_op(FILTER_LARGER_OR_EQUAL),
370
          _high_op(FILTER_LESS_OR_EQUAL),
371
          _is_nullable_col(true),
372
          _contain_null(contain_null),
373
          _precision(-1),
374
          _scale(-1) {}
375
376
template <PrimitiveType primitive_type>
377
ColumnValueRange<primitive_type>::ColumnValueRange(std::string col_name, const CppType& min,
378
                                                   const CppType& max, bool is_nullable_col,
379
                                                   bool contain_null, int precision, int scale)
380
2.55M
        : _column_name(std::move(col_name)),
381
2.55M
          _column_type(primitive_type),
382
1.53M
          _low_value(min),
383
1.53M
          _high_value(max),
384
2.55M
          _low_op(FILTER_LARGER_OR_EQUAL),
385
2.55M
          _high_op(FILTER_LESS_OR_EQUAL),
386
2.55M
          _is_nullable_col(is_nullable_col),
387
2.55M
          _contain_null(is_nullable_col && contain_null),
388
2.55M
          _precision(precision),
389
2.55M
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKaSA_bbii
Line
Count
Source
380
213k
        : _column_name(std::move(col_name)),
381
213k
          _column_type(primitive_type),
382
213k
          _low_value(min),
383
213k
          _high_value(max),
384
213k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
213k
          _high_op(FILTER_LESS_OR_EQUAL),
386
213k
          _is_nullable_col(is_nullable_col),
387
213k
          _contain_null(is_nullable_col && contain_null),
388
213k
          _precision(precision),
389
213k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKsSA_bbii
Line
Count
Source
380
16.3k
        : _column_name(std::move(col_name)),
381
16.3k
          _column_type(primitive_type),
382
16.3k
          _low_value(min),
383
16.3k
          _high_value(max),
384
16.3k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
16.3k
          _high_op(FILTER_LESS_OR_EQUAL),
386
16.3k
          _is_nullable_col(is_nullable_col),
387
16.3k
          _contain_null(is_nullable_col && contain_null),
388
16.3k
          _precision(precision),
389
16.3k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKiSA_bbii
Line
Count
Source
380
214k
        : _column_name(std::move(col_name)),
381
214k
          _column_type(primitive_type),
382
214k
          _low_value(min),
383
214k
          _high_value(max),
384
214k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
214k
          _high_op(FILTER_LESS_OR_EQUAL),
386
214k
          _is_nullable_col(is_nullable_col),
387
214k
          _contain_null(is_nullable_col && contain_null),
388
214k
          _precision(precision),
389
214k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKlSA_bbii
Line
Count
Source
380
529k
        : _column_name(std::move(col_name)),
381
529k
          _column_type(primitive_type),
382
529k
          _low_value(min),
383
529k
          _high_value(max),
384
529k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
529k
          _high_op(FILTER_LESS_OR_EQUAL),
386
529k
          _is_nullable_col(is_nullable_col),
387
529k
          _contain_null(is_nullable_col && contain_null),
388
529k
          _precision(precision),
389
529k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKnSA_bbii
Line
Count
Source
380
9.29k
        : _column_name(std::move(col_name)),
381
9.29k
          _column_type(primitive_type),
382
9.29k
          _low_value(min),
383
9.29k
          _high_value(max),
384
9.29k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
9.29k
          _high_op(FILTER_LESS_OR_EQUAL),
386
9.29k
          _is_nullable_col(is_nullable_col),
387
9.29k
          _contain_null(is_nullable_col && contain_null),
388
9.29k
          _precision(precision),
389
9.29k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKfSA_bbii
Line
Count
Source
380
8.72k
        : _column_name(std::move(col_name)),
381
8.72k
          _column_type(primitive_type),
382
8.72k
          _low_value(min),
383
8.72k
          _high_value(max),
384
8.72k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
8.72k
          _high_op(FILTER_LESS_OR_EQUAL),
386
8.72k
          _is_nullable_col(is_nullable_col),
387
8.72k
          _contain_null(is_nullable_col && contain_null),
388
8.72k
          _precision(precision),
389
8.72k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKdSA_bbii
Line
Count
Source
380
13.5k
        : _column_name(std::move(col_name)),
381
13.5k
          _column_type(primitive_type),
382
13.5k
          _low_value(min),
383
13.5k
          _high_value(max),
384
13.5k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
13.5k
          _high_op(FILTER_LESS_OR_EQUAL),
386
13.5k
          _is_nullable_col(is_nullable_col),
387
13.5k
          _contain_null(is_nullable_col && contain_null),
388
13.5k
          _precision(precision),
389
13.5k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKjSA_bbii
Line
Count
Source
380
220
        : _column_name(std::move(col_name)),
381
220
          _column_type(primitive_type),
382
220
          _low_value(min),
383
220
          _high_value(max),
384
220
          _low_op(FILTER_LARGER_OR_EQUAL),
385
220
          _high_op(FILTER_LESS_OR_EQUAL),
386
220
          _is_nullable_col(is_nullable_col),
387
220
          _contain_null(is_nullable_col && contain_null),
388
220
          _precision(precision),
389
220
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKoSA_bbii
Line
Count
Source
380
222
        : _column_name(std::move(col_name)),
381
222
          _column_type(primitive_type),
382
222
          _low_value(min),
383
222
          _high_value(max),
384
222
          _low_op(FILTER_LARGER_OR_EQUAL),
385
222
          _high_op(FILTER_LESS_OR_EQUAL),
386
222
          _is_nullable_col(is_nullable_col),
387
222
          _contain_null(is_nullable_col && contain_null),
388
222
          _precision(precision),
389
222
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS8_SA_bbii
Line
Count
Source
380
17.3k
        : _column_name(std::move(col_name)),
381
17.3k
          _column_type(primitive_type),
382
17.3k
          _low_value(min),
383
17.3k
          _high_value(max),
384
17.3k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
17.3k
          _high_op(FILTER_LESS_OR_EQUAL),
386
17.3k
          _is_nullable_col(is_nullable_col),
387
17.3k
          _contain_null(is_nullable_col && contain_null),
388
17.3k
          _precision(precision),
389
17.3k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS8_SA_bbii
Line
Count
Source
380
1.09M
        : _column_name(std::move(col_name)),
381
1.09M
          _column_type(primitive_type),
382
1.09M
          _low_value(min),
383
1.09M
          _high_value(max),
384
1.09M
          _low_op(FILTER_LARGER_OR_EQUAL),
385
1.09M
          _high_op(FILTER_LESS_OR_EQUAL),
386
1.09M
          _is_nullable_col(is_nullable_col),
387
1.09M
          _contain_null(is_nullable_col && contain_null),
388
1.09M
          _precision(precision),
389
1.09M
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS8_SA_bbii
Line
Count
Source
380
149k
        : _column_name(std::move(col_name)),
381
149k
          _column_type(primitive_type),
382
149k
          _low_value(min),
383
149k
          _high_value(max),
384
149k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
149k
          _high_op(FILTER_LESS_OR_EQUAL),
386
149k
          _is_nullable_col(is_nullable_col),
387
149k
          _contain_null(is_nullable_col && contain_null),
388
149k
          _precision(precision),
389
149k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_16VecDateTimeValueESB_bbii
Line
Count
Source
380
405
        : _column_name(std::move(col_name)),
381
405
          _column_type(primitive_type),
382
405
          _low_value(min),
383
405
          _high_value(max),
384
405
          _low_op(FILTER_LARGER_OR_EQUAL),
385
405
          _high_op(FILTER_LESS_OR_EQUAL),
386
405
          _is_nullable_col(is_nullable_col),
387
405
          _contain_null(is_nullable_col && contain_null),
388
405
          _precision(precision),
389
405
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_11DateV2ValueINS_15DateV2ValueTypeEEESD_bbii
Line
Count
Source
380
113k
        : _column_name(std::move(col_name)),
381
113k
          _column_type(primitive_type),
382
113k
          _low_value(min),
383
113k
          _high_value(max),
384
113k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
113k
          _high_op(FILTER_LESS_OR_EQUAL),
386
113k
          _is_nullable_col(is_nullable_col),
387
113k
          _contain_null(is_nullable_col && contain_null),
388
113k
          _precision(precision),
389
113k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_16VecDateTimeValueESB_bbii
Line
Count
Source
380
396
        : _column_name(std::move(col_name)),
381
396
          _column_type(primitive_type),
382
396
          _low_value(min),
383
396
          _high_value(max),
384
396
          _low_op(FILTER_LARGER_OR_EQUAL),
385
396
          _high_op(FILTER_LESS_OR_EQUAL),
386
396
          _is_nullable_col(is_nullable_col),
387
396
          _contain_null(is_nullable_col && contain_null),
388
396
          _precision(precision),
389
396
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_11DateV2ValueINS_19DateTimeV2ValueTypeEEESD_bbii
Line
Count
Source
380
115k
        : _column_name(std::move(col_name)),
381
115k
          _column_type(primitive_type),
382
115k
          _low_value(min),
383
115k
          _high_value(max),
384
115k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
115k
          _high_op(FILTER_LESS_OR_EQUAL),
386
115k
          _is_nullable_col(is_nullable_col),
387
115k
          _contain_null(is_nullable_col && contain_null),
388
115k
          _precision(precision),
389
115k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_16TimestampTzValueESB_bbii
Line
Count
Source
380
113
        : _column_name(std::move(col_name)),
381
113
          _column_type(primitive_type),
382
113
          _low_value(min),
383
113
          _high_value(max),
384
113
          _low_op(FILTER_LARGER_OR_EQUAL),
385
113
          _high_op(FILTER_LESS_OR_EQUAL),
386
113
          _is_nullable_col(is_nullable_col),
387
113
          _contain_null(is_nullable_col && contain_null),
388
113
          _precision(precision),
389
113
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_14DecimalV2ValueESB_bbii
Line
Count
Source
380
285
        : _column_name(std::move(col_name)),
381
285
          _column_type(primitive_type),
382
285
          _low_value(min),
383
285
          _high_value(max),
384
285
          _low_op(FILTER_LARGER_OR_EQUAL),
385
285
          _high_op(FILTER_LESS_OR_EQUAL),
386
285
          _is_nullable_col(is_nullable_col),
387
285
          _contain_null(is_nullable_col && contain_null),
388
285
          _precision(precision),
389
285
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKhSA_bbii
Line
Count
Source
380
11.1k
        : _column_name(std::move(col_name)),
381
11.1k
          _column_type(primitive_type),
382
11.1k
          _low_value(min),
383
11.1k
          _high_value(max),
384
11.1k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
11.1k
          _high_op(FILTER_LESS_OR_EQUAL),
386
11.1k
          _is_nullable_col(is_nullable_col),
387
11.1k
          _contain_null(is_nullable_col && contain_null),
388
11.1k
          _precision(precision),
389
11.1k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_9StringRefESB_bbii
Line
Count
Source
380
455
        : _column_name(std::move(col_name)),
381
455
          _column_type(primitive_type),
382
455
          _low_value(min),
383
455
          _high_value(max),
384
455
          _low_op(FILTER_LARGER_OR_EQUAL),
385
455
          _high_op(FILTER_LESS_OR_EQUAL),
386
455
          _is_nullable_col(is_nullable_col),
387
455
          _contain_null(is_nullable_col && contain_null),
388
455
          _precision(precision),
389
455
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_7DecimalIiEESC_bbii
Line
Count
Source
380
9.00k
        : _column_name(std::move(col_name)),
381
9.00k
          _column_type(primitive_type),
382
9.00k
          _low_value(min),
383
9.00k
          _high_value(max),
384
9.00k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
9.00k
          _high_op(FILTER_LESS_OR_EQUAL),
386
9.00k
          _is_nullable_col(is_nullable_col),
387
9.00k
          _contain_null(is_nullable_col && contain_null),
388
9.00k
          _precision(precision),
389
9.00k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_7DecimalIlEESC_bbii
Line
Count
Source
380
27.4k
        : _column_name(std::move(col_name)),
381
27.4k
          _column_type(primitive_type),
382
27.4k
          _low_value(min),
383
27.4k
          _high_value(max),
384
27.4k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
27.4k
          _high_op(FILTER_LESS_OR_EQUAL),
386
27.4k
          _is_nullable_col(is_nullable_col),
387
27.4k
          _contain_null(is_nullable_col && contain_null),
388
27.4k
          _precision(precision),
389
27.4k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_12Decimal128V3ESB_bbii
Line
Count
Source
380
8.51k
        : _column_name(std::move(col_name)),
381
8.51k
          _column_type(primitive_type),
382
8.51k
          _low_value(min),
383
8.51k
          _high_value(max),
384
8.51k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
8.51k
          _high_op(FILTER_LESS_OR_EQUAL),
386
8.51k
          _is_nullable_col(is_nullable_col),
387
8.51k
          _contain_null(is_nullable_col && contain_null),
388
8.51k
          _precision(precision),
389
8.51k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_7DecimalIN4wide7integerILm256EiEEEESF_bbii
Line
Count
Source
380
80
        : _column_name(std::move(col_name)),
381
80
          _column_type(primitive_type),
382
80
          _low_value(min),
383
80
          _high_value(max),
384
80
          _low_op(FILTER_LARGER_OR_EQUAL),
385
80
          _high_op(FILTER_LESS_OR_EQUAL),
386
80
          _is_nullable_col(is_nullable_col),
387
80
          _contain_null(is_nullable_col && contain_null),
388
80
          _precision(precision),
389
80
          _scale(scale) {}
390
391
template <PrimitiveType primitive_type>
392
ColumnValueRange<primitive_type>::ColumnValueRange(std::string col_name, bool is_nullable_col,
393
                                                   int precision, int scale)
394
2.05M
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
2.05M
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
115k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
115k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
15.4k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
15.4k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
198k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
198k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
452k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
452k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
8.86k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
8.86k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
8.53k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
8.53k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
13.1k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
13.1k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
16.0k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
16.0k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
385
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
385
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
375
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
375
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
86.0k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
86.0k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
112k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
112k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
92
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
92
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
829k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
829k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
145k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
145k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
450
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
450
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
8.92k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
8.92k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
26.3k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
26.3k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
8.23k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
8.23k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
80
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
80
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
285
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
285
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
10.8k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
10.8k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
213
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
213
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
216
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
216
                           is_nullable_col, precision, scale) {}
396
397
template <PrimitiveType primitive_type>
398
416k
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
416k
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
416k
    _fixed_values.insert(value);
404
416k
    _contain_null = false;
405
406
416k
    _high_value = TYPE_MIN;
407
416k
    _low_value = TYPE_MAX;
408
409
416k
    return Status::OK();
410
416k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE15add_fixed_valueERKa
Line
Count
Source
398
97.2k
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
97.2k
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
97.2k
    _fixed_values.insert(value);
404
97.2k
    _contain_null = false;
405
406
97.2k
    _high_value = TYPE_MIN;
407
97.2k
    _low_value = TYPE_MAX;
408
409
97.2k
    return Status::OK();
410
97.2k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE15add_fixed_valueERKs
Line
Count
Source
398
103
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
103
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
103
    _fixed_values.insert(value);
404
103
    _contain_null = false;
405
406
103
    _high_value = TYPE_MIN;
407
103
    _low_value = TYPE_MAX;
408
409
103
    return Status::OK();
410
103
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE15add_fixed_valueERKi
Line
Count
Source
398
36.5k
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
36.5k
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
36.5k
    _fixed_values.insert(value);
404
36.5k
    _contain_null = false;
405
406
36.5k
    _high_value = TYPE_MIN;
407
36.5k
    _low_value = TYPE_MAX;
408
409
36.5k
    return Status::OK();
410
36.5k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE15add_fixed_valueERKl
Line
Count
Source
398
10.9k
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
10.9k
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
10.9k
    _fixed_values.insert(value);
404
10.9k
    _contain_null = false;
405
406
10.9k
    _high_value = TYPE_MIN;
407
10.9k
    _low_value = TYPE_MAX;
408
409
10.9k
    return Status::OK();
410
10.9k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE15add_fixed_valueERKn
Line
Count
Source
398
236
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
236
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
236
    _fixed_values.insert(value);
404
236
    _contain_null = false;
405
406
236
    _high_value = TYPE_MIN;
407
236
    _low_value = TYPE_MAX;
408
409
236
    return Status::OK();
410
236
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE15add_fixed_valueERKf
Line
Count
Source
398
64
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
64
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
64
    _fixed_values.insert(value);
404
64
    _contain_null = false;
405
406
64
    _high_value = TYPE_MIN;
407
64
    _low_value = TYPE_MAX;
408
409
64
    return Status::OK();
410
64
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE15add_fixed_valueERKd
Line
Count
Source
398
107
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
107
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
107
    _fixed_values.insert(value);
404
107
    _contain_null = false;
405
406
107
    _high_value = TYPE_MIN;
407
107
    _low_value = TYPE_MAX;
408
409
107
    return Status::OK();
410
107
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE15add_fixed_valueERKj
Line
Count
Source
398
2
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
2
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
2
    _fixed_values.insert(value);
404
2
    _contain_null = false;
405
406
2
    _high_value = TYPE_MIN;
407
2
    _low_value = TYPE_MAX;
408
409
2
    return Status::OK();
410
2
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE15add_fixed_valueERKo
Line
Count
Source
398
4
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
4
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
4
    _fixed_values.insert(value);
404
4
    _contain_null = false;
405
406
4
    _high_value = TYPE_MIN;
407
4
    _low_value = TYPE_MAX;
408
409
4
    return Status::OK();
410
4
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE15add_fixed_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
398
625
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
625
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
625
    _fixed_values.insert(value);
404
625
    _contain_null = false;
405
406
625
    _high_value = TYPE_MIN;
407
625
    _low_value = TYPE_MAX;
408
409
625
    return Status::OK();
410
625
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE15add_fixed_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
398
259k
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
259k
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
259k
    _fixed_values.insert(value);
404
259k
    _contain_null = false;
405
406
259k
    _high_value = TYPE_MIN;
407
259k
    _low_value = TYPE_MAX;
408
409
259k
    return Status::OK();
410
259k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE15add_fixed_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
398
1.60k
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
1.60k
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
1.60k
    _fixed_values.insert(value);
404
1.60k
    _contain_null = false;
405
406
1.60k
    _high_value = TYPE_MIN;
407
1.60k
    _low_value = TYPE_MAX;
408
409
1.60k
    return Status::OK();
410
1.60k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE15add_fixed_valueERKNS_16VecDateTimeValueE
Line
Count
Source
398
18
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
18
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
18
    _fixed_values.insert(value);
404
18
    _contain_null = false;
405
406
18
    _high_value = TYPE_MIN;
407
18
    _low_value = TYPE_MAX;
408
409
18
    return Status::OK();
410
18
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE15add_fixed_valueERKNS_11DateV2ValueINS_15DateV2ValueTypeEEE
Line
Count
Source
398
8.07k
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
8.07k
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
8.07k
    _fixed_values.insert(value);
404
8.07k
    _contain_null = false;
405
406
8.07k
    _high_value = TYPE_MIN;
407
8.07k
    _low_value = TYPE_MAX;
408
409
8.07k
    return Status::OK();
410
8.07k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE15add_fixed_valueERKNS_16VecDateTimeValueE
Line
Count
Source
398
20
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
20
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
20
    _fixed_values.insert(value);
404
20
    _contain_null = false;
405
406
20
    _high_value = TYPE_MIN;
407
20
    _low_value = TYPE_MAX;
408
409
20
    return Status::OK();
410
20
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE15add_fixed_valueERKNS_11DateV2ValueINS_19DateTimeV2ValueTypeEEE
Line
Count
Source
398
692
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
692
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
692
    _fixed_values.insert(value);
404
692
    _contain_null = false;
405
406
692
    _high_value = TYPE_MIN;
407
692
    _low_value = TYPE_MAX;
408
409
692
    return Status::OK();
410
692
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE15add_fixed_valueERKNS_16TimestampTzValueE
Line
Count
Source
398
7
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
7
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
7
    _fixed_values.insert(value);
404
7
    _contain_null = false;
405
406
7
    _high_value = TYPE_MIN;
407
7
    _low_value = TYPE_MAX;
408
409
7
    return Status::OK();
410
7
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE15add_fixed_valueERKNS_14DecimalV2ValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE15add_fixed_valueERKh
Line
Count
Source
398
227
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
227
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
227
    _fixed_values.insert(value);
404
227
    _contain_null = false;
405
406
227
    _high_value = TYPE_MIN;
407
227
    _low_value = TYPE_MAX;
408
409
227
    return Status::OK();
410
227
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE15add_fixed_valueERKNS_9StringRefE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE15add_fixed_valueERKNS_7DecimalIiEE
Line
Count
Source
398
18
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
18
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
18
    _fixed_values.insert(value);
404
18
    _contain_null = false;
405
406
18
    _high_value = TYPE_MIN;
407
18
    _low_value = TYPE_MAX;
408
409
18
    return Status::OK();
410
18
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE15add_fixed_valueERKNS_7DecimalIlEE
Line
Count
Source
398
280
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
280
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
280
    _fixed_values.insert(value);
404
280
    _contain_null = false;
405
406
280
    _high_value = TYPE_MIN;
407
280
    _low_value = TYPE_MAX;
408
409
280
    return Status::OK();
410
280
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE15add_fixed_valueERKNS_12Decimal128V3E
Line
Count
Source
398
75
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
75
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
75
    _fixed_values.insert(value);
404
75
    _contain_null = false;
405
406
75
    _high_value = TYPE_MIN;
407
75
    _low_value = TYPE_MAX;
408
409
75
    return Status::OK();
410
75
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE15add_fixed_valueERKNS_7DecimalIN4wide7integerILm256EiEEEE
411
412
template <PrimitiveType primitive_type>
413
3
void ColumnValueRange<primitive_type>::remove_fixed_value(const CppType& value) {
414
3
    _fixed_values.erase(value);
415
3
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE18remove_fixed_valueERKa
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE18remove_fixed_valueERKs
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE18remove_fixed_valueERKi
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE18remove_fixed_valueERKl
Line
Count
Source
413
3
void ColumnValueRange<primitive_type>::remove_fixed_value(const CppType& value) {
414
3
    _fixed_values.erase(value);
415
3
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE18remove_fixed_valueERKn
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE18remove_fixed_valueERKf
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE18remove_fixed_valueERKd
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE18remove_fixed_valueERKj
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE18remove_fixed_valueERKo
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE18remove_fixed_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE18remove_fixed_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE18remove_fixed_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE18remove_fixed_valueERKNS_16VecDateTimeValueE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE18remove_fixed_valueERKNS_11DateV2ValueINS_15DateV2ValueTypeEEE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE18remove_fixed_valueERKNS_16VecDateTimeValueE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE18remove_fixed_valueERKNS_11DateV2ValueINS_19DateTimeV2ValueTypeEEE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE18remove_fixed_valueERKNS_16TimestampTzValueE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE18remove_fixed_valueERKNS_14DecimalV2ValueE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE18remove_fixed_valueERKh
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE18remove_fixed_valueERKNS_9StringRefE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE18remove_fixed_valueERKNS_7DecimalIiEE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE18remove_fixed_valueERKNS_7DecimalIlEE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE18remove_fixed_valueERKNS_12Decimal128V3E
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE18remove_fixed_valueERKNS_7DecimalIN4wide7integerILm256EiEEEE
416
417
template <PrimitiveType primitive_type>
418
6.61M
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
6.61M
    return _fixed_values.size() != 0;
420
6.61M
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE20is_fixed_value_rangeEv
Line
Count
Source
418
889k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
889k
    return _fixed_values.size() != 0;
420
889k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE20is_fixed_value_rangeEv
Line
Count
Source
418
17.6k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
17.6k
    return _fixed_values.size() != 0;
420
17.6k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE20is_fixed_value_rangeEv
Line
Count
Source
418
372k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
372k
    return _fixed_values.size() != 0;
420
372k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE20is_fixed_value_rangeEv
Line
Count
Source
418
811k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
811k
    return _fixed_values.size() != 0;
420
811k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE20is_fixed_value_rangeEv
Line
Count
Source
418
24.6k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
24.6k
    return _fixed_values.size() != 0;
420
24.6k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE20is_fixed_value_rangeEv
Line
Count
Source
418
9.01k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
9.01k
    return _fixed_values.size() != 0;
420
9.01k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE20is_fixed_value_rangeEv
Line
Count
Source
418
14.3k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
14.3k
    return _fixed_values.size() != 0;
420
14.3k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE20is_fixed_value_rangeEv
Line
Count
Source
418
246
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
246
    return _fixed_values.size() != 0;
420
246
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE20is_fixed_value_rangeEv
Line
Count
Source
418
256
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
256
    return _fixed_values.size() != 0;
420
256
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE20is_fixed_value_rangeEv
Line
Count
Source
418
20.8k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
20.8k
    return _fixed_values.size() != 0;
420
20.8k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE20is_fixed_value_rangeEv
Line
Count
Source
418
3.91M
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
3.91M
    return _fixed_values.size() != 0;
420
3.91M
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE20is_fixed_value_rangeEv
Line
Count
Source
418
168k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
168k
    return _fixed_values.size() != 0;
420
168k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE20is_fixed_value_rangeEv
Line
Count
Source
418
521
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
521
    return _fixed_values.size() != 0;
420
521
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE20is_fixed_value_rangeEv
Line
Count
Source
418
174k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
174k
    return _fixed_values.size() != 0;
420
174k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE20is_fixed_value_rangeEv
Line
Count
Source
418
528
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
528
    return _fixed_values.size() != 0;
420
528
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE20is_fixed_value_rangeEv
Line
Count
Source
418
122k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
122k
    return _fixed_values.size() != 0;
420
122k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE20is_fixed_value_rangeEv
Line
Count
Source
418
138
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
138
    return _fixed_values.size() != 0;
420
138
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE20is_fixed_value_rangeEv
Line
Count
Source
418
285
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
285
    return _fixed_values.size() != 0;
420
285
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE20is_fixed_value_rangeEv
Line
Count
Source
418
17.9k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
17.9k
    return _fixed_values.size() != 0;
420
17.9k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE20is_fixed_value_rangeEv
Line
Count
Source
418
449
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
449
    return _fixed_values.size() != 0;
420
449
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE20is_fixed_value_rangeEv
Line
Count
Source
418
9.20k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
9.20k
    return _fixed_values.size() != 0;
420
9.20k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE20is_fixed_value_rangeEv
Line
Count
Source
418
30.0k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
30.0k
    return _fixed_values.size() != 0;
420
30.0k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE20is_fixed_value_rangeEv
Line
Count
Source
418
9.26k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
9.26k
    return _fixed_values.size() != 0;
420
9.26k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE20is_fixed_value_rangeEv
Line
Count
Source
418
80
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
80
    return _fixed_values.size() != 0;
420
80
}
421
422
template <PrimitiveType primitive_type>
423
2.29M
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
2.29M
    return Compare::greater(_high_value, _low_value);
425
2.29M
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE20is_scope_value_rangeEv
Line
Count
Source
423
116k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
116k
    return Compare::greater(_high_value, _low_value);
425
116k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE20is_scope_value_rangeEv
Line
Count
Source
423
15.6k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
15.6k
    return Compare::greater(_high_value, _low_value);
425
15.6k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE20is_scope_value_rangeEv
Line
Count
Source
423
236k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
236k
    return Compare::greater(_high_value, _low_value);
425
236k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE20is_scope_value_rangeEv
Line
Count
Source
423
546k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
546k
    return Compare::greater(_high_value, _low_value);
425
546k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE20is_scope_value_rangeEv
Line
Count
Source
423
12.2k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
12.2k
    return Compare::greater(_high_value, _low_value);
425
12.2k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE20is_scope_value_rangeEv
Line
Count
Source
423
8.56k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
8.56k
    return Compare::greater(_high_value, _low_value);
425
8.56k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE20is_scope_value_rangeEv
Line
Count
Source
423
13.1k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
13.1k
    return Compare::greater(_high_value, _low_value);
425
13.1k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE20is_scope_value_rangeEv
Line
Count
Source
423
218
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
218
    return Compare::greater(_high_value, _low_value);
425
218
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE20is_scope_value_rangeEv
Line
Count
Source
423
218
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
218
    return Compare::greater(_high_value, _low_value);
425
218
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE20is_scope_value_rangeEv
Line
Count
Source
423
16.1k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
16.1k
    return Compare::greater(_high_value, _low_value);
425
16.1k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE20is_scope_value_rangeEv
Line
Count
Source
423
919k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
919k
    return Compare::greater(_high_value, _low_value);
425
919k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE20is_scope_value_rangeEv
Line
Count
Source
423
148k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
148k
    return Compare::greater(_high_value, _low_value);
425
148k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE20is_scope_value_rangeEv
Line
Count
Source
423
380
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
380
    return Compare::greater(_high_value, _low_value);
425
380
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE20is_scope_value_rangeEv
Line
Count
Source
423
87.8k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
87.8k
    return Compare::greater(_high_value, _low_value);
425
87.8k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE20is_scope_value_rangeEv
Line
Count
Source
423
370
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
370
    return Compare::greater(_high_value, _low_value);
425
370
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE20is_scope_value_rangeEv
Line
Count
Source
423
112k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
112k
    return Compare::greater(_high_value, _low_value);
425
112k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE20is_scope_value_rangeEv
Line
Count
Source
423
87
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
87
    return Compare::greater(_high_value, _low_value);
425
87
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE20is_scope_value_rangeEv
Line
Count
Source
423
285
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
285
    return Compare::greater(_high_value, _low_value);
425
285
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE20is_scope_value_rangeEv
Line
Count
Source
423
12.2k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
12.2k
    return Compare::greater(_high_value, _low_value);
425
12.2k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE20is_scope_value_rangeEv
Line
Count
Source
423
447
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
447
    return Compare::greater(_high_value, _low_value);
425
447
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE20is_scope_value_rangeEv
Line
Count
Source
423
8.88k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
8.88k
    return Compare::greater(_high_value, _low_value);
425
8.88k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE20is_scope_value_rangeEv
Line
Count
Source
423
26.9k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
26.9k
    return Compare::greater(_high_value, _low_value);
425
26.9k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE20is_scope_value_rangeEv
Line
Count
Source
423
8.28k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
8.28k
    return Compare::greater(_high_value, _low_value);
425
8.28k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE20is_scope_value_rangeEv
Line
Count
Source
423
80
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
80
    return Compare::greater(_high_value, _low_value);
425
80
}
426
427
template <PrimitiveType primitive_type>
428
3.28M
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
3.28M
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
3.28M
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
3.28M
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE20is_empty_value_rangeEv
Line
Count
Source
428
309k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
309k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
309k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
309k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE20is_empty_value_rangeEv
Line
Count
Source
428
15.8k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
15.8k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
15.8k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
15.8k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE20is_empty_value_rangeEv
Line
Count
Source
428
249k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
249k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
249k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
249k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE20is_empty_value_rangeEv
Line
Count
Source
428
550k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
550k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
550k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
550k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE20is_empty_value_rangeEv
Line
Count
Source
428
12.7k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
12.7k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
12.7k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
12.7k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE20is_empty_value_rangeEv
Line
Count
Source
428
8.62k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
8.62k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
8.62k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
8.62k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE20is_empty_value_rangeEv
Line
Count
Source
428
13.3k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
13.3k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
13.3k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
13.3k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE20is_empty_value_rangeEv
Line
Count
Source
428
221
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
221
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
221
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
221
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE20is_empty_value_rangeEv
Line
Count
Source
428
225
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
225
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
225
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
225
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE20is_empty_value_rangeEv
Line
Count
Source
428
16.9k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
16.9k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
16.9k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
16.9k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE20is_empty_value_rangeEv
Line
Count
Source
428
1.68M
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
1.68M
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
1.68M
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
1.68M
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE20is_empty_value_rangeEv
Line
Count
Source
428
151k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
151k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
151k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
151k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE20is_empty_value_rangeEv
Line
Count
Source
428
415
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
415
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
415
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
415
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE20is_empty_value_rangeEv
Line
Count
Source
428
103k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
103k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
103k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
103k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE20is_empty_value_rangeEv
Line
Count
Source
428
410
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
410
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
410
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
410
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE20is_empty_value_rangeEv
Line
Count
Source
428
114k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
114k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
114k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
114k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE20is_empty_value_rangeEv
Line
Count
Source
428
81
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
81
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
81
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
81
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE20is_empty_value_rangeEv
Line
Count
Source
428
285
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
285
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
285
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
285
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE20is_empty_value_rangeEv
Line
Count
Source
428
12.6k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
12.6k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
12.6k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
12.6k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE20is_empty_value_rangeEv
Line
Count
Source
428
449
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
449
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
449
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
449
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE20is_empty_value_rangeEv
Line
Count
Source
428
8.95k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
8.95k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
8.95k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
8.95k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE20is_empty_value_rangeEv
Line
Count
Source
428
27.3k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
27.3k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
27.3k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
27.3k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE20is_empty_value_rangeEv
Line
Count
Source
428
8.43k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
8.43k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
8.43k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
8.43k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE20is_empty_value_rangeEv
Line
Count
Source
428
79
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
79
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
80
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
79
}
435
436
template <PrimitiveType primitive_type>
437
110k
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
110k
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
110k
    if (!is_enumeration_type(_column_type)) {
443
10.4k
        return false;
444
10.4k
    }
445
446
99.6k
    return true;
447
110k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE26is_fixed_value_convertibleEv
Line
Count
Source
437
916
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
916
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
916
    if (!is_enumeration_type(_column_type)) {
443
0
        return false;
444
0
    }
445
446
916
    return true;
447
916
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE26is_fixed_value_convertibleEv
Line
Count
Source
437
164
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
164
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
164
    if (!is_enumeration_type(_column_type)) {
443
0
        return false;
444
0
    }
445
446
164
    return true;
447
164
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE26is_fixed_value_convertibleEv
Line
Count
Source
437
37.0k
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
37.0k
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
37.0k
    if (!is_enumeration_type(_column_type)) {
443
0
        return false;
444
0
    }
445
446
37.0k
    return true;
447
37.0k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE26is_fixed_value_convertibleEv
Line
Count
Source
437
56.4k
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
56.4k
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
56.4k
    if (!is_enumeration_type(_column_type)) {
443
0
        return false;
444
0
    }
445
446
56.4k
    return true;
447
56.4k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE26is_fixed_value_convertibleEv
Line
Count
Source
437
3.40k
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
3.40k
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
3.40k
    if (!is_enumeration_type(_column_type)) {
443
0
        return false;
444
0
    }
445
446
3.40k
    return true;
447
3.40k
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE26is_fixed_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE26is_fixed_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE26is_fixed_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE26is_fixed_value_convertibleEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE26is_fixed_value_convertibleEv
Line
Count
Source
437
157
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
157
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
159
    if (!is_enumeration_type(_column_type)) {
443
159
        return false;
444
159
    }
445
446
18.4E
    return true;
447
157
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE26is_fixed_value_convertibleEv
Line
Count
Source
437
7.74k
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
7.74k
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
7.74k
    if (!is_enumeration_type(_column_type)) {
443
7.74k
        return false;
444
7.74k
    }
445
446
7
    return true;
447
7.74k
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE26is_fixed_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE26is_fixed_value_convertibleEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE26is_fixed_value_convertibleEv
Line
Count
Source
437
1.69k
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
1.69k
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
1.69k
    if (!is_enumeration_type(_column_type)) {
443
0
        return false;
444
0
    }
445
446
1.69k
    return true;
447
1.69k
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE26is_fixed_value_convertibleEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE26is_fixed_value_convertibleEv
Line
Count
Source
437
955
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
955
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
957
    if (!is_enumeration_type(_column_type)) {
443
957
        return false;
444
957
    }
445
446
18.4E
    return true;
447
955
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE26is_fixed_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE26is_fixed_value_convertibleEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE26is_fixed_value_convertibleEv
Line
Count
Source
437
1.35k
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
1.35k
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
1.35k
    if (!is_enumeration_type(_column_type)) {
443
1.35k
        return false;
444
1.35k
    }
445
446
2
    return true;
447
1.35k
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE26is_fixed_value_convertibleEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE26is_fixed_value_convertibleEv
Line
Count
Source
437
32
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
32
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
32
    if (!is_enumeration_type(_column_type)) {
443
32
        return false;
444
32
    }
445
446
0
    return true;
447
32
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE26is_fixed_value_convertibleEv
Line
Count
Source
437
101
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
101
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
101
    if (!is_enumeration_type(_column_type)) {
443
100
        return false;
444
100
    }
445
446
1
    return true;
447
101
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE26is_fixed_value_convertibleEv
Line
Count
Source
437
64
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
64
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
64
    if (!is_enumeration_type(_column_type)) {
443
64
        return false;
444
64
    }
445
446
0
    return true;
447
64
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE26is_fixed_value_convertibleEv
448
449
template <PrimitiveType primitive_type>
450
57
bool ColumnValueRange<primitive_type>::is_range_value_convertible() const {
451
57
    if (!is_fixed_value_range()) {
452
0
        return false;
453
0
    }
454
455
57
    if (TYPE_NULL == _column_type || TYPE_BOOLEAN == _column_type) {
456
1
        return false;
457
1
    }
458
459
56
    return true;
460
57
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE26is_range_value_convertibleEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE26is_range_value_convertibleEv
Line
Count
Source
450
50
bool ColumnValueRange<primitive_type>::is_range_value_convertible() const {
451
50
    if (!is_fixed_value_range()) {
452
0
        return false;
453
0
    }
454
455
50
    if (TYPE_NULL == _column_type || TYPE_BOOLEAN == _column_type) {
456
0
        return false;
457
0
    }
458
459
50
    return true;
460
50
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE26is_range_value_convertibleEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE26is_range_value_convertibleEv
Line
Count
Source
450
2
bool ColumnValueRange<primitive_type>::is_range_value_convertible() const {
451
2
    if (!is_fixed_value_range()) {
452
0
        return false;
453
0
    }
454
455
2
    if (TYPE_NULL == _column_type || TYPE_BOOLEAN == _column_type) {
456
0
        return false;
457
0
    }
458
459
2
    return true;
460
2
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE26is_range_value_convertibleEv
Line
Count
Source
450
4
bool ColumnValueRange<primitive_type>::is_range_value_convertible() const {
451
4
    if (!is_fixed_value_range()) {
452
0
        return false;
453
0
    }
454
455
4
    if (TYPE_NULL == _column_type || TYPE_BOOLEAN == _column_type) {
456
0
        return false;
457
0
    }
458
459
4
    return true;
460
4
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE26is_range_value_convertibleEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE26is_range_value_convertibleEv
Line
Count
Source
450
1
bool ColumnValueRange<primitive_type>::is_range_value_convertible() const {
451
1
    if (!is_fixed_value_range()) {
452
0
        return false;
453
0
    }
454
455
1
    if (TYPE_NULL == _column_type || TYPE_BOOLEAN == _column_type) {
456
1
        return false;
457
1
    }
458
459
0
    return true;
460
1
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE26is_range_value_convertibleEv
461
462
// The return value indicates whether eos.
463
template <PrimitiveType primitive_type>
464
bool ColumnValueRange<primitive_type>::convert_to_close_range(
465
        std::vector<OlapTuple>& begin_scan_keys, std::vector<OlapTuple>& end_scan_keys,
466
96.1k
        bool& begin_include, bool& end_include) {
467
96.1k
    if constexpr (!_is_reject_split_type) {
468
96.1k
        begin_include = true;
469
96.1k
        end_include = true;
470
471
96.1k
        bool is_empty = false;
472
473
96.1k
        if (!is_begin_include()) {
474
7.65k
            if (Compare::equal(_low_value, TYPE_MAX)) {
475
0
                is_empty = true;
476
7.65k
            } else {
477
7.65k
                ++_low_value;
478
7.65k
            }
479
7.65k
        }
480
481
96.1k
        if (!is_end_include()) {
482
583
            if (Compare::equal(_high_value, TYPE_MIN)) {
483
0
                is_empty = true;
484
583
            } else {
485
583
                --_high_value;
486
583
            }
487
583
        }
488
489
96.1k
        if (Compare::less(_high_value, _low_value)) {
490
28
            is_empty = true;
491
28
        }
492
493
96.1k
        if (is_empty && !contain_null()) {
494
0
            begin_scan_keys.clear();
495
0
            end_scan_keys.clear();
496
0
            return true;
497
0
        }
498
96.1k
    }
499
96.1k
    return false;
500
96.1k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Line
Count
Source
466
909
        bool& begin_include, bool& end_include) {
467
909
    if constexpr (!_is_reject_split_type) {
468
909
        begin_include = true;
469
909
        end_include = true;
470
471
909
        bool is_empty = false;
472
473
909
        if (!is_begin_include()) {
474
29
            if (Compare::equal(_low_value, TYPE_MAX)) {
475
0
                is_empty = true;
476
29
            } else {
477
29
                ++_low_value;
478
29
            }
479
29
        }
480
481
909
        if (!is_end_include()) {
482
10
            if (Compare::equal(_high_value, TYPE_MIN)) {
483
0
                is_empty = true;
484
10
            } else {
485
10
                --_high_value;
486
10
            }
487
10
        }
488
489
909
        if (Compare::less(_high_value, _low_value)) {
490
0
            is_empty = true;
491
0
        }
492
493
909
        if (is_empty && !contain_null()) {
494
0
            begin_scan_keys.clear();
495
0
            end_scan_keys.clear();
496
0
            return true;
497
0
        }
498
909
    }
499
909
    return false;
500
909
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Line
Count
Source
466
162
        bool& begin_include, bool& end_include) {
467
162
    if constexpr (!_is_reject_split_type) {
468
162
        begin_include = true;
469
162
        end_include = true;
470
471
162
        bool is_empty = false;
472
473
162
        if (!is_begin_include()) {
474
0
            if (Compare::equal(_low_value, TYPE_MAX)) {
475
0
                is_empty = true;
476
0
            } else {
477
0
                ++_low_value;
478
0
            }
479
0
        }
480
481
162
        if (!is_end_include()) {
482
0
            if (Compare::equal(_high_value, TYPE_MIN)) {
483
0
                is_empty = true;
484
0
            } else {
485
0
                --_high_value;
486
0
            }
487
0
        }
488
489
162
        if (Compare::less(_high_value, _low_value)) {
490
0
            is_empty = true;
491
0
        }
492
493
162
        if (is_empty && !contain_null()) {
494
0
            begin_scan_keys.clear();
495
0
            end_scan_keys.clear();
496
0
            return true;
497
0
        }
498
162
    }
499
162
    return false;
500
162
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Line
Count
Source
466
36.9k
        bool& begin_include, bool& end_include) {
467
36.9k
    if constexpr (!_is_reject_split_type) {
468
36.9k
        begin_include = true;
469
36.9k
        end_include = true;
470
471
36.9k
        bool is_empty = false;
472
473
36.9k
        if (!is_begin_include()) {
474
574
            if (Compare::equal(_low_value, TYPE_MAX)) {
475
0
                is_empty = true;
476
574
            } else {
477
574
                ++_low_value;
478
574
            }
479
574
        }
480
481
36.9k
        if (!is_end_include()) {
482
463
            if (Compare::equal(_high_value, TYPE_MIN)) {
483
0
                is_empty = true;
484
463
            } else {
485
463
                --_high_value;
486
463
            }
487
463
        }
488
489
36.9k
        if (Compare::less(_high_value, _low_value)) {
490
28
            is_empty = true;
491
28
        }
492
493
36.9k
        if (is_empty && !contain_null()) {
494
0
            begin_scan_keys.clear();
495
0
            end_scan_keys.clear();
496
0
            return true;
497
0
        }
498
36.9k
    }
499
36.9k
    return false;
500
36.9k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Line
Count
Source
466
56.3k
        bool& begin_include, bool& end_include) {
467
56.3k
    if constexpr (!_is_reject_split_type) {
468
56.3k
        begin_include = true;
469
56.3k
        end_include = true;
470
471
56.3k
        bool is_empty = false;
472
473
56.3k
        if (!is_begin_include()) {
474
7.04k
            if (Compare::equal(_low_value, TYPE_MAX)) {
475
0
                is_empty = true;
476
7.04k
            } else {
477
7.04k
                ++_low_value;
478
7.04k
            }
479
7.04k
        }
480
481
56.3k
        if (!is_end_include()) {
482
5
            if (Compare::equal(_high_value, TYPE_MIN)) {
483
0
                is_empty = true;
484
5
            } else {
485
5
                --_high_value;
486
5
            }
487
5
        }
488
489
56.3k
        if (Compare::less(_high_value, _low_value)) {
490
0
            is_empty = true;
491
0
        }
492
493
56.3k
        if (is_empty && !contain_null()) {
494
0
            begin_scan_keys.clear();
495
0
            end_scan_keys.clear();
496
0
            return true;
497
0
        }
498
56.3k
    }
499
56.3k
    return false;
500
56.3k
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Line
Count
Source
466
1.69k
        bool& begin_include, bool& end_include) {
467
1.69k
    if constexpr (!_is_reject_split_type) {
468
1.69k
        begin_include = true;
469
1.69k
        end_include = true;
470
471
1.69k
        bool is_empty = false;
472
473
1.69k
        if (!is_begin_include()) {
474
9
            if (Compare::equal(_low_value, TYPE_MAX)) {
475
0
                is_empty = true;
476
9
            } else {
477
9
                ++_low_value;
478
9
            }
479
9
        }
480
481
1.69k
        if (!is_end_include()) {
482
105
            if (Compare::equal(_high_value, TYPE_MIN)) {
483
0
                is_empty = true;
484
105
            } else {
485
105
                --_high_value;
486
105
            }
487
105
        }
488
489
1.69k
        if (Compare::less(_high_value, _low_value)) {
490
0
            is_empty = true;
491
0
        }
492
493
1.69k
        if (is_empty && !contain_null()) {
494
0
            begin_scan_keys.clear();
495
0
            end_scan_keys.clear();
496
0
            return true;
497
0
        }
498
1.69k
    }
499
1.69k
    return false;
500
1.69k
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
501
502
// The return value indicates whether the split result is range or fixed value.
503
template <PrimitiveType primitive_type>
504
bool ColumnValueRange<primitive_type>::convert_to_avg_range_value(
505
        std::vector<OlapTuple>& begin_scan_keys, std::vector<OlapTuple>& end_scan_keys,
506
96.3k
        bool& begin_include, bool& end_include, int32_t max_scan_key_num) {
507
96.3k
    if constexpr (!_is_reject_split_type) {
508
96.3k
        CppType min_value = get_range_min_value();
509
96.3k
        CppType max_value = get_range_max_value();
510
96.3k
        if constexpr (primitive_type == PrimitiveType::TYPE_DATE) {
511
0
            min_value.set_type(TimeType::TIME_DATE);
512
0
            max_value.set_type(TimeType::TIME_DATE);
513
0
        }
514
96.3k
        auto empty_range_only_null = Compare::greater(min_value, max_value);
515
96.3k
        if (empty_range_only_null) {
516
            // Not contain null will be disposed in `convert_to_close_range`, return eos.
517
28
            DCHECK(contain_null());
518
28
        }
519
520
96.3k
        auto no_split = [&]() -> bool {
521
92.0k
            begin_scan_keys.emplace_back();
522
92.0k
            begin_scan_keys.back().add_value(
523
92.0k
                    cast_to_string<primitive_type, CppType>(get_range_min_value(), scale()),
524
92.0k
                    contain_null());
525
92.0k
            end_scan_keys.emplace_back();
526
92.0k
            end_scan_keys.back().add_value(
527
92.0k
                    cast_to_string<primitive_type, CppType>(get_range_max_value(), scale()),
528
92.0k
                    empty_range_only_null ? true : false);
529
92.0k
            return true;
530
92.0k
        };
Unexecuted instantiation: _ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlvE_clEv
Unexecuted instantiation: _ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlvE_clEv
_ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlvE_clEv
Line
Count
Source
520
36.0k
        auto no_split = [&]() -> bool {
521
36.0k
            begin_scan_keys.emplace_back();
522
36.0k
            begin_scan_keys.back().add_value(
523
36.0k
                    cast_to_string<primitive_type, CppType>(get_range_min_value(), scale()),
524
36.0k
                    contain_null());
525
36.0k
            end_scan_keys.emplace_back();
526
36.0k
            end_scan_keys.back().add_value(
527
36.0k
                    cast_to_string<primitive_type, CppType>(get_range_max_value(), scale()),
528
36.0k
                    empty_range_only_null ? true : false);
529
36.0k
            return true;
530
36.0k
        };
_ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlvE_clEv
Line
Count
Source
520
56.0k
        auto no_split = [&]() -> bool {
521
56.0k
            begin_scan_keys.emplace_back();
522
56.0k
            begin_scan_keys.back().add_value(
523
56.0k
                    cast_to_string<primitive_type, CppType>(get_range_min_value(), scale()),
524
56.0k
                    contain_null());
525
56.0k
            end_scan_keys.emplace_back();
526
56.0k
            end_scan_keys.back().add_value(
527
56.0k
                    cast_to_string<primitive_type, CppType>(get_range_max_value(), scale()),
528
56.0k
                    empty_range_only_null ? true : false);
529
56.0k
            return true;
530
56.0k
        };
Unexecuted instantiation: _ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlvE_clEv
Unexecuted instantiation: _ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlvE_clEv
Unexecuted instantiation: _ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlvE_clEv
Unexecuted instantiation: _ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlvE_clEv
Unexecuted instantiation: _ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlvE_clEv
Unexecuted instantiation: _ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlvE_clEv
Unexecuted instantiation: _ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlvE_clEv
531
96.3k
        if (empty_range_only_null || max_scan_key_num == 1) {
532
28
            return no_split();
533
28
        }
534
535
231k
        auto cast = [](const CppType& value) {
536
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
80.1k
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
80.1k
                return value;
539
151k
            } else {
540
151k
                return (int128_t)value;
541
151k
            }
542
231k
        };
_ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlRKaE_clESA_
Line
Count
Source
535
40.1k
        auto cast = [](const CppType& value) {
536
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
                return value;
539
40.1k
            } else {
540
40.1k
                return (int128_t)value;
541
40.1k
            }
542
40.1k
        };
_ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlRKsE_clESA_
Line
Count
Source
535
8.00k
        auto cast = [](const CppType& value) {
536
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
                return value;
539
8.00k
            } else {
540
8.00k
                return (int128_t)value;
541
8.00k
            }
542
8.00k
        };
_ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlRKiE_clESA_
Line
Count
Source
535
45.8k
        auto cast = [](const CppType& value) {
536
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
                return value;
539
45.8k
            } else {
540
45.8k
                return (int128_t)value;
541
45.8k
            }
542
45.8k
        };
_ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlRKlE_clESA_
Line
Count
Source
535
57.2k
        auto cast = [](const CppType& value) {
536
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
                return value;
539
57.2k
            } else {
540
57.2k
                return (int128_t)value;
541
57.2k
            }
542
57.2k
        };
Unexecuted instantiation: _ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlRKjE_clESA_
Unexecuted instantiation: _ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlRKoE_clESA_
Unexecuted instantiation: _ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlRKNS_16VecDateTimeValueEE_clESB_
_ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlRKNS_11DateV2ValueINS_15DateV2ValueTypeEEEE_clESD_
Line
Count
Source
535
80.1k
        auto cast = [](const CppType& value) {
536
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
80.1k
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
80.1k
                return value;
539
            } else {
540
                return (int128_t)value;
541
            }
542
80.1k
        };
Unexecuted instantiation: _ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlRKNS_7DecimalIiEEE_clESC_
Unexecuted instantiation: _ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlRKNS_7DecimalIlEEE_clESC_
Unexecuted instantiation: _ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlRKNS_12Decimal128V3EE_clESB_
543
544
        // When CppType is date, we can not convert it to integer number and calculate distance.
545
        // In other case, we convert element to int128 to avoit overflow.
546
96.2k
        int128_t step_size_may_overflow = (cast(max_value) - min_value) / max_scan_key_num;
547
548
96.2k
        constexpr size_t MAX_STEP_SIZE = 1 << 20;
549
        // When the step size is too large, the range is easy to not really contain data.
550
96.2k
        if (step_size_may_overflow > MAX_STEP_SIZE) {
551
92.6k
            return no_split();
552
92.6k
        }
553
3.65k
        int step_size = cast_set<int>(step_size_may_overflow);
554
3.65k
        int real_step_size = 0;
555
556
        // Add null key if contain null, must do after no_split check
557
3.65k
        if (contain_null()) {
558
1.44k
            begin_scan_keys.emplace_back();
559
1.44k
            begin_scan_keys.back().add_null();
560
1.44k
            end_scan_keys.emplace_back();
561
1.44k
            end_scan_keys.back().add_null();
562
1.44k
        }
563
134k
        while (true) {
564
134k
            begin_scan_keys.emplace_back();
565
134k
            begin_scan_keys.back().add_value(
566
134k
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
567
568
134k
            if (cast(max_value) - min_value < step_size) {
569
2.75k
                min_value = max_value;
570
132k
            } else {
571
132k
                min_value += step_size;
572
132k
            }
573
574
134k
            end_scan_keys.emplace_back();
575
134k
            end_scan_keys.back().add_value(
576
134k
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
577
578
134k
            if (Compare::equal(min_value, max_value)) {
579
3.75k
                break;
580
3.75k
            }
581
131k
            ++min_value;
582
131k
            ++real_step_size;
583
131k
            if (real_step_size > MAX_STEP_SIZE) {
584
0
                throw Exception(Status::InternalError(
585
0
                        "convert_to_avg_range_value meet error. type={}, step_size={}, "
586
0
                        "min_value={}, max_value={}",
587
0
                        int(primitive_type), step_size,
588
0
                        cast_to_string<primitive_type, CppType>(min_value, scale()),
589
0
                        cast_to_string<primitive_type, CppType>(max_value, scale())));
590
0
            }
591
131k
        }
592
593
3.65k
        return step_size != 0;
594
3.65k
    }
595
0
    return false;
596
96.3k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Line
Count
Source
506
914
        bool& begin_include, bool& end_include, int32_t max_scan_key_num) {
507
914
    if constexpr (!_is_reject_split_type) {
508
914
        CppType min_value = get_range_min_value();
509
914
        CppType max_value = get_range_max_value();
510
        if constexpr (primitive_type == PrimitiveType::TYPE_DATE) {
511
            min_value.set_type(TimeType::TIME_DATE);
512
            max_value.set_type(TimeType::TIME_DATE);
513
        }
514
914
        auto empty_range_only_null = Compare::greater(min_value, max_value);
515
914
        if (empty_range_only_null) {
516
            // Not contain null will be disposed in `convert_to_close_range`, return eos.
517
0
            DCHECK(contain_null());
518
0
        }
519
520
914
        auto no_split = [&]() -> bool {
521
914
            begin_scan_keys.emplace_back();
522
914
            begin_scan_keys.back().add_value(
523
914
                    cast_to_string<primitive_type, CppType>(get_range_min_value(), scale()),
524
914
                    contain_null());
525
914
            end_scan_keys.emplace_back();
526
914
            end_scan_keys.back().add_value(
527
914
                    cast_to_string<primitive_type, CppType>(get_range_max_value(), scale()),
528
914
                    empty_range_only_null ? true : false);
529
914
            return true;
530
914
        };
531
914
        if (empty_range_only_null || max_scan_key_num == 1) {
532
0
            return no_split();
533
0
        }
534
535
914
        auto cast = [](const CppType& value) {
536
914
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
914
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
914
                return value;
539
914
            } else {
540
914
                return (int128_t)value;
541
914
            }
542
914
        };
543
544
        // When CppType is date, we can not convert it to integer number and calculate distance.
545
        // In other case, we convert element to int128 to avoit overflow.
546
914
        int128_t step_size_may_overflow = (cast(max_value) - min_value) / max_scan_key_num;
547
548
914
        constexpr size_t MAX_STEP_SIZE = 1 << 20;
549
        // When the step size is too large, the range is easy to not really contain data.
550
914
        if (step_size_may_overflow > MAX_STEP_SIZE) {
551
0
            return no_split();
552
0
        }
553
914
        int step_size = cast_set<int>(step_size_may_overflow);
554
914
        int real_step_size = 0;
555
556
        // Add null key if contain null, must do after no_split check
557
914
        if (contain_null()) {
558
798
            begin_scan_keys.emplace_back();
559
798
            begin_scan_keys.back().add_null();
560
798
            end_scan_keys.emplace_back();
561
798
            end_scan_keys.back().add_null();
562
798
        }
563
39.1k
        while (true) {
564
39.1k
            begin_scan_keys.emplace_back();
565
39.1k
            begin_scan_keys.back().add_value(
566
39.1k
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
567
568
39.1k
            if (cast(max_value) - min_value < step_size) {
569
901
                min_value = max_value;
570
38.2k
            } else {
571
38.2k
                min_value += step_size;
572
38.2k
            }
573
574
39.1k
            end_scan_keys.emplace_back();
575
39.1k
            end_scan_keys.back().add_value(
576
39.1k
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
577
578
39.1k
            if (Compare::equal(min_value, max_value)) {
579
931
                break;
580
931
            }
581
38.2k
            ++min_value;
582
38.2k
            ++real_step_size;
583
38.2k
            if (real_step_size > MAX_STEP_SIZE) {
584
0
                throw Exception(Status::InternalError(
585
0
                        "convert_to_avg_range_value meet error. type={}, step_size={}, "
586
0
                        "min_value={}, max_value={}",
587
0
                        int(primitive_type), step_size,
588
0
                        cast_to_string<primitive_type, CppType>(min_value, scale()),
589
0
                        cast_to_string<primitive_type, CppType>(max_value, scale())));
590
0
            }
591
38.2k
        }
592
593
914
        return step_size != 0;
594
914
    }
595
0
    return false;
596
914
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Line
Count
Source
506
162
        bool& begin_include, bool& end_include, int32_t max_scan_key_num) {
507
162
    if constexpr (!_is_reject_split_type) {
508
162
        CppType min_value = get_range_min_value();
509
162
        CppType max_value = get_range_max_value();
510
        if constexpr (primitive_type == PrimitiveType::TYPE_DATE) {
511
            min_value.set_type(TimeType::TIME_DATE);
512
            max_value.set_type(TimeType::TIME_DATE);
513
        }
514
162
        auto empty_range_only_null = Compare::greater(min_value, max_value);
515
162
        if (empty_range_only_null) {
516
            // Not contain null will be disposed in `convert_to_close_range`, return eos.
517
0
            DCHECK(contain_null());
518
0
        }
519
520
162
        auto no_split = [&]() -> bool {
521
162
            begin_scan_keys.emplace_back();
522
162
            begin_scan_keys.back().add_value(
523
162
                    cast_to_string<primitive_type, CppType>(get_range_min_value(), scale()),
524
162
                    contain_null());
525
162
            end_scan_keys.emplace_back();
526
162
            end_scan_keys.back().add_value(
527
162
                    cast_to_string<primitive_type, CppType>(get_range_max_value(), scale()),
528
162
                    empty_range_only_null ? true : false);
529
162
            return true;
530
162
        };
531
162
        if (empty_range_only_null || max_scan_key_num == 1) {
532
0
            return no_split();
533
0
        }
534
535
162
        auto cast = [](const CppType& value) {
536
162
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
162
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
162
                return value;
539
162
            } else {
540
162
                return (int128_t)value;
541
162
            }
542
162
        };
543
544
        // When CppType is date, we can not convert it to integer number and calculate distance.
545
        // In other case, we convert element to int128 to avoit overflow.
546
162
        int128_t step_size_may_overflow = (cast(max_value) - min_value) / max_scan_key_num;
547
548
162
        constexpr size_t MAX_STEP_SIZE = 1 << 20;
549
        // When the step size is too large, the range is easy to not really contain data.
550
162
        if (step_size_may_overflow > MAX_STEP_SIZE) {
551
0
            return no_split();
552
0
        }
553
162
        int step_size = cast_set<int>(step_size_may_overflow);
554
162
        int real_step_size = 0;
555
556
        // Add null key if contain null, must do after no_split check
557
162
        if (contain_null()) {
558
92
            begin_scan_keys.emplace_back();
559
92
            begin_scan_keys.back().add_null();
560
92
            end_scan_keys.emplace_back();
561
92
            end_scan_keys.back().add_null();
562
92
        }
563
7.83k
        while (true) {
564
7.83k
            begin_scan_keys.emplace_back();
565
7.83k
            begin_scan_keys.back().add_value(
566
7.83k
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
567
568
7.83k
            if (cast(max_value) - min_value < step_size) {
569
164
                min_value = max_value;
570
7.66k
            } else {
571
7.66k
                min_value += step_size;
572
7.66k
            }
573
574
7.83k
            end_scan_keys.emplace_back();
575
7.83k
            end_scan_keys.back().add_value(
576
7.83k
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
577
578
7.83k
            if (Compare::equal(min_value, max_value)) {
579
164
                break;
580
164
            }
581
7.66k
            ++min_value;
582
7.66k
            ++real_step_size;
583
7.66k
            if (real_step_size > MAX_STEP_SIZE) {
584
0
                throw Exception(Status::InternalError(
585
0
                        "convert_to_avg_range_value meet error. type={}, step_size={}, "
586
0
                        "min_value={}, max_value={}",
587
0
                        int(primitive_type), step_size,
588
0
                        cast_to_string<primitive_type, CppType>(min_value, scale()),
589
0
                        cast_to_string<primitive_type, CppType>(max_value, scale())));
590
0
            }
591
7.66k
        }
592
593
162
        return step_size != 0;
594
162
    }
595
0
    return false;
596
162
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Line
Count
Source
506
37.1k
        bool& begin_include, bool& end_include, int32_t max_scan_key_num) {
507
37.1k
    if constexpr (!_is_reject_split_type) {
508
37.1k
        CppType min_value = get_range_min_value();
509
37.1k
        CppType max_value = get_range_max_value();
510
        if constexpr (primitive_type == PrimitiveType::TYPE_DATE) {
511
            min_value.set_type(TimeType::TIME_DATE);
512
            max_value.set_type(TimeType::TIME_DATE);
513
        }
514
37.1k
        auto empty_range_only_null = Compare::greater(min_value, max_value);
515
37.1k
        if (empty_range_only_null) {
516
            // Not contain null will be disposed in `convert_to_close_range`, return eos.
517
28
            DCHECK(contain_null());
518
28
        }
519
520
37.1k
        auto no_split = [&]() -> bool {
521
37.1k
            begin_scan_keys.emplace_back();
522
37.1k
            begin_scan_keys.back().add_value(
523
37.1k
                    cast_to_string<primitive_type, CppType>(get_range_min_value(), scale()),
524
37.1k
                    contain_null());
525
37.1k
            end_scan_keys.emplace_back();
526
37.1k
            end_scan_keys.back().add_value(
527
37.1k
                    cast_to_string<primitive_type, CppType>(get_range_max_value(), scale()),
528
37.1k
                    empty_range_only_null ? true : false);
529
37.1k
            return true;
530
37.1k
        };
531
37.1k
        if (empty_range_only_null || max_scan_key_num == 1) {
532
28
            return no_split();
533
28
        }
534
535
37.1k
        auto cast = [](const CppType& value) {
536
37.1k
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
37.1k
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
37.1k
                return value;
539
37.1k
            } else {
540
37.1k
                return (int128_t)value;
541
37.1k
            }
542
37.1k
        };
543
544
        // When CppType is date, we can not convert it to integer number and calculate distance.
545
        // In other case, we convert element to int128 to avoit overflow.
546
37.1k
        int128_t step_size_may_overflow = (cast(max_value) - min_value) / max_scan_key_num;
547
548
37.1k
        constexpr size_t MAX_STEP_SIZE = 1 << 20;
549
        // When the step size is too large, the range is easy to not really contain data.
550
37.1k
        if (step_size_may_overflow > MAX_STEP_SIZE) {
551
36.3k
            return no_split();
552
36.3k
        }
553
742
        int step_size = cast_set<int>(step_size_may_overflow);
554
742
        int real_step_size = 0;
555
556
        // Add null key if contain null, must do after no_split check
557
742
        if (contain_null()) {
558
0
            begin_scan_keys.emplace_back();
559
0
            begin_scan_keys.back().add_null();
560
0
            end_scan_keys.emplace_back();
561
0
            end_scan_keys.back().add_null();
562
0
        }
563
9.00k
        while (true) {
564
8.96k
            begin_scan_keys.emplace_back();
565
8.96k
            begin_scan_keys.back().add_value(
566
8.96k
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
567
568
8.96k
            if (cast(max_value) - min_value < step_size) {
569
121
                min_value = max_value;
570
8.84k
            } else {
571
8.84k
                min_value += step_size;
572
8.84k
            }
573
574
8.96k
            end_scan_keys.emplace_back();
575
8.96k
            end_scan_keys.back().add_value(
576
8.96k
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
577
578
8.96k
            if (Compare::equal(min_value, max_value)) {
579
709
                break;
580
709
            }
581
8.25k
            ++min_value;
582
8.25k
            ++real_step_size;
583
8.25k
            if (real_step_size > MAX_STEP_SIZE) {
584
0
                throw Exception(Status::InternalError(
585
0
                        "convert_to_avg_range_value meet error. type={}, step_size={}, "
586
0
                        "min_value={}, max_value={}",
587
0
                        int(primitive_type), step_size,
588
0
                        cast_to_string<primitive_type, CppType>(min_value, scale()),
589
0
                        cast_to_string<primitive_type, CppType>(max_value, scale())));
590
0
            }
591
8.25k
        }
592
593
742
        return step_size != 0;
594
742
    }
595
0
    return false;
596
37.1k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Line
Count
Source
506
56.3k
        bool& begin_include, bool& end_include, int32_t max_scan_key_num) {
507
56.3k
    if constexpr (!_is_reject_split_type) {
508
56.3k
        CppType min_value = get_range_min_value();
509
56.3k
        CppType max_value = get_range_max_value();
510
        if constexpr (primitive_type == PrimitiveType::TYPE_DATE) {
511
            min_value.set_type(TimeType::TIME_DATE);
512
            max_value.set_type(TimeType::TIME_DATE);
513
        }
514
56.3k
        auto empty_range_only_null = Compare::greater(min_value, max_value);
515
56.3k
        if (empty_range_only_null) {
516
            // Not contain null will be disposed in `convert_to_close_range`, return eos.
517
0
            DCHECK(contain_null());
518
0
        }
519
520
56.3k
        auto no_split = [&]() -> bool {
521
56.3k
            begin_scan_keys.emplace_back();
522
56.3k
            begin_scan_keys.back().add_value(
523
56.3k
                    cast_to_string<primitive_type, CppType>(get_range_min_value(), scale()),
524
56.3k
                    contain_null());
525
56.3k
            end_scan_keys.emplace_back();
526
56.3k
            end_scan_keys.back().add_value(
527
56.3k
                    cast_to_string<primitive_type, CppType>(get_range_max_value(), scale()),
528
56.3k
                    empty_range_only_null ? true : false);
529
56.3k
            return true;
530
56.3k
        };
531
56.3k
        if (empty_range_only_null || max_scan_key_num == 1) {
532
0
            return no_split();
533
0
        }
534
535
56.3k
        auto cast = [](const CppType& value) {
536
56.3k
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
56.3k
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
56.3k
                return value;
539
56.3k
            } else {
540
56.3k
                return (int128_t)value;
541
56.3k
            }
542
56.3k
        };
543
544
        // When CppType is date, we can not convert it to integer number and calculate distance.
545
        // In other case, we convert element to int128 to avoit overflow.
546
56.3k
        int128_t step_size_may_overflow = (cast(max_value) - min_value) / max_scan_key_num;
547
548
56.3k
        constexpr size_t MAX_STEP_SIZE = 1 << 20;
549
        // When the step size is too large, the range is easy to not really contain data.
550
56.3k
        if (step_size_may_overflow > MAX_STEP_SIZE) {
551
56.2k
            return no_split();
552
56.2k
        }
553
134
        int step_size = cast_set<int>(step_size_may_overflow);
554
134
        int real_step_size = 0;
555
556
        // Add null key if contain null, must do after no_split check
557
134
        if (contain_null()) {
558
0
            begin_scan_keys.emplace_back();
559
0
            begin_scan_keys.back().add_null();
560
0
            end_scan_keys.emplace_back();
561
0
            end_scan_keys.back().add_null();
562
0
        }
563
875
        while (true) {
564
875
            begin_scan_keys.emplace_back();
565
875
            begin_scan_keys.back().add_value(
566
875
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
567
568
875
            if (cast(max_value) - min_value < step_size) {
569
1
                min_value = max_value;
570
874
            } else {
571
874
                min_value += step_size;
572
874
            }
573
574
875
            end_scan_keys.emplace_back();
575
875
            end_scan_keys.back().add_value(
576
875
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
577
578
875
            if (Compare::equal(min_value, max_value)) {
579
232
                break;
580
232
            }
581
643
            ++min_value;
582
643
            ++real_step_size;
583
643
            if (real_step_size > MAX_STEP_SIZE) {
584
0
                throw Exception(Status::InternalError(
585
0
                        "convert_to_avg_range_value meet error. type={}, step_size={}, "
586
0
                        "min_value={}, max_value={}",
587
0
                        int(primitive_type), step_size,
588
0
                        cast_to_string<primitive_type, CppType>(min_value, scale()),
589
0
                        cast_to_string<primitive_type, CppType>(max_value, scale())));
590
0
            }
591
643
        }
592
593
134
        return step_size != 0;
594
134
    }
595
0
    return false;
596
56.3k
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Line
Count
Source
506
1.70k
        bool& begin_include, bool& end_include, int32_t max_scan_key_num) {
507
1.70k
    if constexpr (!_is_reject_split_type) {
508
1.70k
        CppType min_value = get_range_min_value();
509
1.70k
        CppType max_value = get_range_max_value();
510
        if constexpr (primitive_type == PrimitiveType::TYPE_DATE) {
511
            min_value.set_type(TimeType::TIME_DATE);
512
            max_value.set_type(TimeType::TIME_DATE);
513
        }
514
1.70k
        auto empty_range_only_null = Compare::greater(min_value, max_value);
515
1.70k
        if (empty_range_only_null) {
516
            // Not contain null will be disposed in `convert_to_close_range`, return eos.
517
0
            DCHECK(contain_null());
518
0
        }
519
520
1.70k
        auto no_split = [&]() -> bool {
521
1.70k
            begin_scan_keys.emplace_back();
522
1.70k
            begin_scan_keys.back().add_value(
523
1.70k
                    cast_to_string<primitive_type, CppType>(get_range_min_value(), scale()),
524
1.70k
                    contain_null());
525
1.70k
            end_scan_keys.emplace_back();
526
1.70k
            end_scan_keys.back().add_value(
527
1.70k
                    cast_to_string<primitive_type, CppType>(get_range_max_value(), scale()),
528
1.70k
                    empty_range_only_null ? true : false);
529
1.70k
            return true;
530
1.70k
        };
531
1.70k
        if (empty_range_only_null || max_scan_key_num == 1) {
532
0
            return no_split();
533
0
        }
534
535
1.70k
        auto cast = [](const CppType& value) {
536
1.70k
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
1.70k
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
1.70k
                return value;
539
1.70k
            } else {
540
1.70k
                return (int128_t)value;
541
1.70k
            }
542
1.70k
        };
543
544
        // When CppType is date, we can not convert it to integer number and calculate distance.
545
        // In other case, we convert element to int128 to avoit overflow.
546
1.70k
        int128_t step_size_may_overflow = (cast(max_value) - min_value) / max_scan_key_num;
547
548
1.70k
        constexpr size_t MAX_STEP_SIZE = 1 << 20;
549
        // When the step size is too large, the range is easy to not really contain data.
550
1.70k
        if (step_size_may_overflow > MAX_STEP_SIZE) {
551
0
            return no_split();
552
0
        }
553
1.70k
        int step_size = cast_set<int>(step_size_may_overflow);
554
1.70k
        int real_step_size = 0;
555
556
        // Add null key if contain null, must do after no_split check
557
1.70k
        if (contain_null()) {
558
552
            begin_scan_keys.emplace_back();
559
552
            begin_scan_keys.back().add_null();
560
552
            end_scan_keys.emplace_back();
561
552
            end_scan_keys.back().add_null();
562
552
        }
563
78.1k
        while (true) {
564
78.1k
            begin_scan_keys.emplace_back();
565
78.1k
            begin_scan_keys.back().add_value(
566
78.1k
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
567
568
78.1k
            if (cast(max_value) - min_value < step_size) {
569
1.56k
                min_value = max_value;
570
76.5k
            } else {
571
76.5k
                min_value += step_size;
572
76.5k
            }
573
574
78.1k
            end_scan_keys.emplace_back();
575
78.1k
            end_scan_keys.back().add_value(
576
78.1k
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
577
578
78.1k
            if (Compare::equal(min_value, max_value)) {
579
1.71k
                break;
580
1.71k
            }
581
76.4k
            ++min_value;
582
76.4k
            ++real_step_size;
583
76.4k
            if (real_step_size > MAX_STEP_SIZE) {
584
0
                throw Exception(Status::InternalError(
585
0
                        "convert_to_avg_range_value meet error. type={}, step_size={}, "
586
0
                        "min_value={}, max_value={}",
587
0
                        int(primitive_type), step_size,
588
0
                        cast_to_string<primitive_type, CppType>(min_value, scale()),
589
0
                        cast_to_string<primitive_type, CppType>(max_value, scale())));
590
0
            }
591
76.4k
        }
592
593
1.70k
        return step_size != 0;
594
1.70k
    }
595
0
    return false;
596
1.70k
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
597
598
template <PrimitiveType primitive_type>
599
28
void ColumnValueRange<primitive_type>::convert_to_range_value() {
600
28
    if (!is_range_value_convertible()) {
601
0
        return;
602
0
    }
603
604
28
    if (!_fixed_values.empty()) {
605
28
        _low_value = *_fixed_values.begin();
606
28
        _low_op = FILTER_LARGER_OR_EQUAL;
607
28
        _high_value = *_fixed_values.rbegin();
608
28
        _high_op = FILTER_LESS_OR_EQUAL;
609
28
        _fixed_values.clear();
610
28
    }
611
28
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE22convert_to_range_valueEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE22convert_to_range_valueEv
Line
Count
Source
599
25
void ColumnValueRange<primitive_type>::convert_to_range_value() {
600
25
    if (!is_range_value_convertible()) {
601
0
        return;
602
0
    }
603
604
25
    if (!_fixed_values.empty()) {
605
25
        _low_value = *_fixed_values.begin();
606
25
        _low_op = FILTER_LARGER_OR_EQUAL;
607
25
        _high_value = *_fixed_values.rbegin();
608
25
        _high_op = FILTER_LESS_OR_EQUAL;
609
25
        _fixed_values.clear();
610
25
    }
611
25
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE22convert_to_range_valueEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE22convert_to_range_valueEv
Line
Count
Source
599
1
void ColumnValueRange<primitive_type>::convert_to_range_value() {
600
1
    if (!is_range_value_convertible()) {
601
0
        return;
602
0
    }
603
604
1
    if (!_fixed_values.empty()) {
605
1
        _low_value = *_fixed_values.begin();
606
1
        _low_op = FILTER_LARGER_OR_EQUAL;
607
1
        _high_value = *_fixed_values.rbegin();
608
1
        _high_op = FILTER_LESS_OR_EQUAL;
609
1
        _fixed_values.clear();
610
1
    }
611
1
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE22convert_to_range_valueEv
Line
Count
Source
599
2
void ColumnValueRange<primitive_type>::convert_to_range_value() {
600
2
    if (!is_range_value_convertible()) {
601
0
        return;
602
0
    }
603
604
2
    if (!_fixed_values.empty()) {
605
2
        _low_value = *_fixed_values.begin();
606
2
        _low_op = FILTER_LARGER_OR_EQUAL;
607
2
        _high_value = *_fixed_values.rbegin();
608
2
        _high_op = FILTER_LESS_OR_EQUAL;
609
2
        _fixed_values.clear();
610
2
    }
611
2
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE22convert_to_range_valueEv
612
613
template <PrimitiveType primitive_type>
614
138k
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
138k
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
138k
    _contain_null = false;
621
622
138k
    if (is_fixed_value_range()) {
623
9.06k
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
9.06k
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
8.96k
        case FILTER_LARGER_OR_EQUAL: {
632
8.96k
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
8.96k
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
108
        case FILTER_LESS_OR_EQUAL: {
647
108
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
108
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
9.06k
        }
655
656
9.06k
        _high_value = TYPE_MIN;
657
9.06k
        _low_value = TYPE_MAX;
658
129k
    } else {
659
129k
        if (Compare::greater(_high_value, _low_value)) {
660
68.4k
            switch (op) {
661
27.7k
            case FILTER_LARGER: {
662
27.7k
                if (Compare::greater_equal(value, _low_value)) {
663
27.7k
                    _low_value = value;
664
27.7k
                    _low_op = op;
665
27.7k
                }
666
667
27.7k
                break;
668
0
            }
669
670
15.9k
            case FILTER_LARGER_OR_EQUAL: {
671
15.9k
                if (Compare::greater(value, _low_value)) {
672
12.6k
                    _low_value = value;
673
12.6k
                    _low_op = op;
674
12.6k
                }
675
676
15.9k
                break;
677
0
            }
678
679
5.39k
            case FILTER_LESS: {
680
5.39k
                if (Compare::less_equal(value, _high_value)) {
681
5.37k
                    _high_value = value;
682
5.37k
                    _high_op = op;
683
5.37k
                }
684
685
5.39k
                break;
686
0
            }
687
688
19.3k
            case FILTER_LESS_OR_EQUAL: {
689
19.3k
                if (Compare::less(value, _high_value)) {
690
16.1k
                    _high_value = value;
691
16.1k
                    _high_op = op;
692
16.1k
                }
693
694
19.3k
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
68.4k
            }
701
68.4k
        }
702
703
129k
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
129k
            Compare::equal(_high_value, _low_value)) {
705
9.97k
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
9.97k
            _high_value = TYPE_MIN;
707
9.97k
            _low_value = TYPE_MAX;
708
9.97k
        }
709
129k
    }
710
711
138k
    return Status::OK();
712
138k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE9add_rangeENS_11SQLFilterOpEa
Line
Count
Source
614
908
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
908
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
908
    _contain_null = false;
621
622
908
    if (is_fixed_value_range()) {
623
0
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
0
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
0
        case FILTER_LARGER_OR_EQUAL: {
632
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
0
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
0
        case FILTER_LESS_OR_EQUAL: {
647
0
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
0
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
0
        }
655
656
0
        _high_value = TYPE_MIN;
657
0
        _low_value = TYPE_MAX;
658
908
    } else {
659
908
        if (Compare::greater(_high_value, _low_value)) {
660
904
            switch (op) {
661
235
            case FILTER_LARGER: {
662
235
                if (Compare::greater_equal(value, _low_value)) {
663
235
                    _low_value = value;
664
235
                    _low_op = op;
665
235
                }
666
667
235
                break;
668
0
            }
669
670
199
            case FILTER_LARGER_OR_EQUAL: {
671
199
                if (Compare::greater(value, _low_value)) {
672
34
                    _low_value = value;
673
34
                    _low_op = op;
674
34
                }
675
676
199
                break;
677
0
            }
678
679
294
            case FILTER_LESS: {
680
294
                if (Compare::less_equal(value, _high_value)) {
681
293
                    _high_value = value;
682
293
                    _high_op = op;
683
293
                }
684
685
294
                break;
686
0
            }
687
688
184
            case FILTER_LESS_OR_EQUAL: {
689
184
                if (Compare::less(value, _high_value)) {
690
20
                    _high_value = value;
691
20
                    _high_op = op;
692
20
                }
693
694
184
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
904
            }
701
904
        }
702
703
904
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
904
            Compare::equal(_high_value, _low_value)) {
705
0
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
0
            _high_value = TYPE_MIN;
707
0
            _low_value = TYPE_MAX;
708
0
        }
709
904
    }
710
711
904
    return Status::OK();
712
908
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE9add_rangeENS_11SQLFilterOpEs
Line
Count
Source
614
740
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
740
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
740
    _contain_null = false;
621
622
740
    if (is_fixed_value_range()) {
623
0
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
0
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
0
        case FILTER_LARGER_OR_EQUAL: {
632
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
0
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
0
        case FILTER_LESS_OR_EQUAL: {
647
0
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
0
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
0
        }
655
656
0
        _high_value = TYPE_MIN;
657
0
        _low_value = TYPE_MAX;
658
740
    } else {
659
741
        if (Compare::greater(_high_value, _low_value)) {
660
741
            switch (op) {
661
627
            case FILTER_LARGER: {
662
627
                if (Compare::greater_equal(value, _low_value)) {
663
622
                    _low_value = value;
664
622
                    _low_op = op;
665
622
                }
666
667
627
                break;
668
0
            }
669
670
63
            case FILTER_LARGER_OR_EQUAL: {
671
63
                if (Compare::greater(value, _low_value)) {
672
42
                    _low_value = value;
673
42
                    _low_op = op;
674
42
                }
675
676
63
                break;
677
0
            }
678
679
18
            case FILTER_LESS: {
680
18
                if (Compare::less_equal(value, _high_value)) {
681
18
                    _high_value = value;
682
18
                    _high_op = op;
683
18
                }
684
685
18
                break;
686
0
            }
687
688
38
            case FILTER_LESS_OR_EQUAL: {
689
38
                if (Compare::less(value, _high_value)) {
690
17
                    _high_value = value;
691
17
                    _high_op = op;
692
17
                }
693
694
38
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
741
            }
701
741
        }
702
703
736
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
736
            Compare::equal(_high_value, _low_value)) {
705
0
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
0
            _high_value = TYPE_MIN;
707
0
            _low_value = TYPE_MAX;
708
0
        }
709
736
    }
710
711
736
    return Status::OK();
712
740
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE9add_rangeENS_11SQLFilterOpEi
Line
Count
Source
614
9.55k
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
9.55k
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
9.55k
    _contain_null = false;
621
622
9.55k
    if (is_fixed_value_range()) {
623
212
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
212
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
146
        case FILTER_LARGER_OR_EQUAL: {
632
146
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
146
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
66
        case FILTER_LESS_OR_EQUAL: {
647
66
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
66
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
212
        }
655
656
212
        _high_value = TYPE_MIN;
657
212
        _low_value = TYPE_MAX;
658
9.34k
    } else {
659
9.34k
        if (Compare::greater(_high_value, _low_value)) {
660
9.06k
            switch (op) {
661
2.40k
            case FILTER_LARGER: {
662
2.40k
                if (Compare::greater_equal(value, _low_value)) {
663
2.39k
                    _low_value = value;
664
2.39k
                    _low_op = op;
665
2.39k
                }
666
667
2.40k
                break;
668
0
            }
669
670
2.86k
            case FILTER_LARGER_OR_EQUAL: {
671
2.86k
                if (Compare::greater(value, _low_value)) {
672
2.41k
                    _low_value = value;
673
2.41k
                    _low_op = op;
674
2.41k
                }
675
676
2.86k
                break;
677
0
            }
678
679
1.03k
            case FILTER_LESS: {
680
1.03k
                if (Compare::less_equal(value, _high_value)) {
681
1.02k
                    _high_value = value;
682
1.02k
                    _high_op = op;
683
1.02k
                }
684
685
1.03k
                break;
686
0
            }
687
688
2.76k
            case FILTER_LESS_OR_EQUAL: {
689
2.76k
                if (Compare::less(value, _high_value)) {
690
2.30k
                    _high_value = value;
691
2.30k
                    _high_op = op;
692
2.30k
                }
693
694
2.76k
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
9.06k
            }
701
9.06k
        }
702
703
9.32k
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
9.32k
            Compare::equal(_high_value, _low_value)) {
705
329
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
329
            _high_value = TYPE_MIN;
707
329
            _low_value = TYPE_MAX;
708
329
        }
709
9.32k
    }
710
711
9.53k
    return Status::OK();
712
9.55k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE9add_rangeENS_11SQLFilterOpEl
Line
Count
Source
614
97.4k
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
97.4k
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
97.4k
    _contain_null = false;
621
622
97.4k
    if (is_fixed_value_range()) {
623
8.80k
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
8.80k
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
8.78k
        case FILTER_LARGER_OR_EQUAL: {
632
8.78k
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
8.78k
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
26
        case FILTER_LESS_OR_EQUAL: {
647
26
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
26
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
8.80k
        }
655
656
8.80k
        _high_value = TYPE_MIN;
657
8.80k
        _low_value = TYPE_MAX;
658
88.6k
    } else {
659
88.6k
        if (Compare::greater(_high_value, _low_value)) {
660
27.9k
            switch (op) {
661
10.6k
            case FILTER_LARGER: {
662
10.6k
                if (Compare::greater_equal(value, _low_value)) {
663
10.6k
                    _low_value = value;
664
10.6k
                    _low_op = op;
665
10.6k
                }
666
667
10.6k
                break;
668
0
            }
669
670
4.59k
            case FILTER_LARGER_OR_EQUAL: {
671
4.59k
                if (Compare::greater(value, _low_value)) {
672
4.58k
                    _low_value = value;
673
4.58k
                    _low_op = op;
674
4.58k
                }
675
676
4.59k
                break;
677
0
            }
678
679
100
            case FILTER_LESS: {
680
100
                if (Compare::less_equal(value, _high_value)) {
681
100
                    _high_value = value;
682
100
                    _high_op = op;
683
100
                }
684
685
100
                break;
686
0
            }
687
688
12.5k
            case FILTER_LESS_OR_EQUAL: {
689
12.5k
                if (Compare::less(value, _high_value)) {
690
12.5k
                    _high_value = value;
691
12.5k
                    _high_op = op;
692
12.5k
                }
693
694
12.5k
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
27.9k
            }
701
27.9k
        }
702
703
88.6k
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
88.6k
            Compare::equal(_high_value, _low_value)) {
705
9.30k
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
9.30k
            _high_value = TYPE_MIN;
707
9.30k
            _low_value = TYPE_MAX;
708
9.30k
        }
709
88.6k
    }
710
711
97.4k
    return Status::OK();
712
97.4k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE9add_rangeENS_11SQLFilterOpEn
Line
Count
Source
614
196
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
196
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
196
    _contain_null = false;
621
622
196
    if (is_fixed_value_range()) {
623
2
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
2
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
1
        case FILTER_LARGER_OR_EQUAL: {
632
1
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
1
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
1
        case FILTER_LESS_OR_EQUAL: {
647
1
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
1
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
2
        }
655
656
2
        _high_value = TYPE_MIN;
657
2
        _low_value = TYPE_MAX;
658
194
    } else {
659
195
        if (Compare::greater(_high_value, _low_value)) {
660
195
            switch (op) {
661
76
            case FILTER_LARGER: {
662
77
                if (Compare::greater_equal(value, _low_value)) {
663
77
                    _low_value = value;
664
77
                    _low_op = op;
665
77
                }
666
667
76
                break;
668
0
            }
669
670
42
            case FILTER_LARGER_OR_EQUAL: {
671
42
                if (Compare::greater(value, _low_value)) {
672
40
                    _low_value = value;
673
40
                    _low_op = op;
674
40
                }
675
676
42
                break;
677
0
            }
678
679
11
            case FILTER_LESS: {
680
11
                if (Compare::less_equal(value, _high_value)) {
681
11
                    _high_value = value;
682
11
                    _high_op = op;
683
11
                }
684
685
11
                break;
686
0
            }
687
688
66
            case FILTER_LESS_OR_EQUAL: {
689
66
                if (Compare::less(value, _high_value)) {
690
64
                    _high_value = value;
691
64
                    _high_op = op;
692
64
                }
693
694
66
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
195
            }
701
195
        }
702
703
193
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
193
            Compare::equal(_high_value, _low_value)) {
705
11
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
11
            _high_value = TYPE_MIN;
707
11
            _low_value = TYPE_MAX;
708
11
        }
709
193
    }
710
711
195
    return Status::OK();
712
196
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE9add_rangeENS_11SQLFilterOpEf
Line
Count
Source
614
99
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
99
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
99
    _contain_null = false;
621
622
99
    if (is_fixed_value_range()) {
623
0
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
0
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
0
        case FILTER_LARGER_OR_EQUAL: {
632
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
0
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
0
        case FILTER_LESS_OR_EQUAL: {
647
0
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
0
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
0
        }
655
656
0
        _high_value = TYPE_MIN;
657
0
        _low_value = TYPE_MAX;
658
99
    } else {
659
99
        if (Compare::greater(_high_value, _low_value)) {
660
99
            switch (op) {
661
18
            case FILTER_LARGER: {
662
18
                if (Compare::greater_equal(value, _low_value)) {
663
18
                    _low_value = value;
664
18
                    _low_op = op;
665
18
                }
666
667
18
                break;
668
0
            }
669
670
33
            case FILTER_LARGER_OR_EQUAL: {
671
33
                if (Compare::greater(value, _low_value)) {
672
25
                    _low_value = value;
673
25
                    _low_op = op;
674
25
                }
675
676
33
                break;
677
0
            }
678
679
16
            case FILTER_LESS: {
680
16
                if (Compare::less_equal(value, _high_value)) {
681
16
                    _high_value = value;
682
16
                    _high_op = op;
683
16
                }
684
685
16
                break;
686
0
            }
687
688
32
            case FILTER_LESS_OR_EQUAL: {
689
32
                if (Compare::less(value, _high_value)) {
690
24
                    _high_value = value;
691
24
                    _high_op = op;
692
24
                }
693
694
32
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
99
            }
701
99
        }
702
703
99
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
99
            Compare::equal(_high_value, _low_value)) {
705
16
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
16
            _high_value = TYPE_MIN;
707
16
            _low_value = TYPE_MAX;
708
16
        }
709
99
    }
710
711
99
    return Status::OK();
712
99
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE9add_rangeENS_11SQLFilterOpEd
Line
Count
Source
614
245
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
245
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
245
    _contain_null = false;
621
622
245
    if (is_fixed_value_range()) {
623
0
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
0
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
0
        case FILTER_LARGER_OR_EQUAL: {
632
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
0
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
0
        case FILTER_LESS_OR_EQUAL: {
647
0
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
0
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
0
        }
655
656
0
        _high_value = TYPE_MIN;
657
0
        _low_value = TYPE_MAX;
658
245
    } else {
659
245
        if (Compare::greater(_high_value, _low_value)) {
660
245
            switch (op) {
661
134
            case FILTER_LARGER: {
662
134
                if (Compare::greater_equal(value, _low_value)) {
663
134
                    _low_value = value;
664
134
                    _low_op = op;
665
134
                }
666
667
134
                break;
668
0
            }
669
670
50
            case FILTER_LARGER_OR_EQUAL: {
671
50
                if (Compare::greater(value, _low_value)) {
672
17
                    _low_value = value;
673
17
                    _low_op = op;
674
17
                }
675
676
50
                break;
677
0
            }
678
679
19
            case FILTER_LESS: {
680
19
                if (Compare::less_equal(value, _high_value)) {
681
19
                    _high_value = value;
682
19
                    _high_op = op;
683
19
                }
684
685
19
                break;
686
0
            }
687
688
42
            case FILTER_LESS_OR_EQUAL: {
689
42
                if (Compare::less(value, _high_value)) {
690
10
                    _high_value = value;
691
10
                    _high_op = op;
692
10
                }
693
694
42
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
245
            }
701
245
        }
702
703
244
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
244
            Compare::equal(_high_value, _low_value)) {
705
2
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
2
            _high_value = TYPE_MIN;
707
2
            _low_value = TYPE_MAX;
708
2
        }
709
244
    }
710
711
244
    return Status::OK();
712
245
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE9add_rangeENS_11SQLFilterOpEj
Line
Count
Source
614
6
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
6
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
6
    _contain_null = false;
621
622
6
    if (is_fixed_value_range()) {
623
0
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
0
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
0
        case FILTER_LARGER_OR_EQUAL: {
632
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
0
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
0
        case FILTER_LESS_OR_EQUAL: {
647
0
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
0
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
0
        }
655
656
0
        _high_value = TYPE_MIN;
657
0
        _low_value = TYPE_MAX;
658
6
    } else {
659
6
        if (Compare::greater(_high_value, _low_value)) {
660
6
            switch (op) {
661
0
            case FILTER_LARGER: {
662
0
                if (Compare::greater_equal(value, _low_value)) {
663
0
                    _low_value = value;
664
0
                    _low_op = op;
665
0
                }
666
667
0
                break;
668
0
            }
669
670
3
            case FILTER_LARGER_OR_EQUAL: {
671
3
                if (Compare::greater(value, _low_value)) {
672
0
                    _low_value = value;
673
0
                    _low_op = op;
674
0
                }
675
676
3
                break;
677
0
            }
678
679
0
            case FILTER_LESS: {
680
0
                if (Compare::less_equal(value, _high_value)) {
681
0
                    _high_value = value;
682
0
                    _high_op = op;
683
0
                }
684
685
0
                break;
686
0
            }
687
688
3
            case FILTER_LESS_OR_EQUAL: {
689
3
                if (Compare::less(value, _high_value)) {
690
0
                    _high_value = value;
691
0
                    _high_op = op;
692
0
                }
693
694
3
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
6
            }
701
6
        }
702
703
6
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
6
            Compare::equal(_high_value, _low_value)) {
705
0
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
0
            _high_value = TYPE_MIN;
707
0
            _low_value = TYPE_MAX;
708
0
        }
709
6
    }
710
711
6
    return Status::OK();
712
6
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE9add_rangeENS_11SQLFilterOpEo
Line
Count
Source
614
2
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
2
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
2
    _contain_null = false;
621
622
2
    if (is_fixed_value_range()) {
623
0
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
0
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
0
        case FILTER_LARGER_OR_EQUAL: {
632
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
0
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
0
        case FILTER_LESS_OR_EQUAL: {
647
0
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
0
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
0
        }
655
656
0
        _high_value = TYPE_MIN;
657
0
        _low_value = TYPE_MAX;
658
2
    } else {
659
2
        if (Compare::greater(_high_value, _low_value)) {
660
2
            switch (op) {
661
0
            case FILTER_LARGER: {
662
0
                if (Compare::greater_equal(value, _low_value)) {
663
0
                    _low_value = value;
664
0
                    _low_op = op;
665
0
                }
666
667
0
                break;
668
0
            }
669
670
1
            case FILTER_LARGER_OR_EQUAL: {
671
1
                if (Compare::greater(value, _low_value)) {
672
0
                    _low_value = value;
673
0
                    _low_op = op;
674
0
                }
675
676
1
                break;
677
0
            }
678
679
0
            case FILTER_LESS: {
680
0
                if (Compare::less_equal(value, _high_value)) {
681
0
                    _high_value = value;
682
0
                    _high_op = op;
683
0
                }
684
685
0
                break;
686
0
            }
687
688
1
            case FILTER_LESS_OR_EQUAL: {
689
1
                if (Compare::less(value, _high_value)) {
690
0
                    _high_value = value;
691
0
                    _high_op = op;
692
0
                }
693
694
1
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
2
            }
701
2
        }
702
703
2
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
2
            Compare::equal(_high_value, _low_value)) {
705
0
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
0
            _high_value = TYPE_MIN;
707
0
            _low_value = TYPE_MAX;
708
0
        }
709
2
    }
710
711
2
    return Status::OK();
712
2
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE9add_rangeENS_11SQLFilterOpENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
614
673
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
673
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
673
    _contain_null = false;
621
622
673
    if (is_fixed_value_range()) {
623
4
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
4
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
2
        case FILTER_LARGER_OR_EQUAL: {
632
2
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
2
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
2
        case FILTER_LESS_OR_EQUAL: {
647
2
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
2
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
4
        }
655
656
4
        _high_value = TYPE_MIN;
657
4
        _low_value = TYPE_MAX;
658
669
    } else {
659
669
        if (Compare::greater(_high_value, _low_value)) {
660
661
            switch (op) {
661
556
            case FILTER_LARGER: {
662
556
                if (Compare::greater_equal(value, _low_value)) {
663
546
                    _low_value = value;
664
546
                    _low_op = op;
665
546
                }
666
667
556
                break;
668
0
            }
669
670
41
            case FILTER_LARGER_OR_EQUAL: {
671
41
                if (Compare::greater(value, _low_value)) {
672
14
                    _low_value = value;
673
14
                    _low_op = op;
674
14
                }
675
676
41
                break;
677
0
            }
678
679
19
            case FILTER_LESS: {
680
19
                if (Compare::less_equal(value, _high_value)) {
681
19
                    _high_value = value;
682
19
                    _high_op = op;
683
19
                }
684
685
19
                break;
686
0
            }
687
688
48
            case FILTER_LESS_OR_EQUAL: {
689
48
                if (Compare::less(value, _high_value)) {
690
34
                    _high_value = value;
691
34
                    _high_op = op;
692
34
                }
693
694
48
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
661
            }
701
661
        }
702
703
669
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
669
            Compare::equal(_high_value, _low_value)) {
705
4
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
4
            _high_value = TYPE_MIN;
707
4
            _low_value = TYPE_MAX;
708
4
        }
709
669
    }
710
711
673
    return Status::OK();
712
673
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE9add_rangeENS_11SQLFilterOpENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
614
804
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
804
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
804
    _contain_null = false;
621
622
804
    if (is_fixed_value_range()) {
623
27
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
27
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
18
        case FILTER_LARGER_OR_EQUAL: {
632
18
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
18
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
9
        case FILTER_LESS_OR_EQUAL: {
647
9
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
9
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
27
        }
655
656
27
        _high_value = TYPE_MIN;
657
27
        _low_value = TYPE_MAX;
658
777
    } else {
659
777
        if (Compare::greater(_high_value, _low_value)) {
660
759
            switch (op) {
661
196
            case FILTER_LARGER: {
662
196
                if (Compare::greater_equal(value, _low_value)) {
663
193
                    _low_value = value;
664
193
                    _low_op = op;
665
193
                }
666
667
196
                break;
668
0
            }
669
670
250
            case FILTER_LARGER_OR_EQUAL: {
671
250
                if (Compare::greater(value, _low_value)) {
672
158
                    _low_value = value;
673
158
                    _low_op = op;
674
158
                }
675
676
250
                break;
677
0
            }
678
679
32
            case FILTER_LESS: {
680
33
                if (Compare::less_equal(value, _high_value)) {
681
33
                    _high_value = value;
682
33
                    _high_op = op;
683
33
                }
684
685
32
                break;
686
0
            }
687
688
277
            case FILTER_LESS_OR_EQUAL: {
689
277
                if (Compare::less(value, _high_value)) {
690
229
                    _high_value = value;
691
229
                    _high_op = op;
692
229
                }
693
694
277
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
759
            }
701
759
        }
702
703
775
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
775
            Compare::equal(_high_value, _low_value)) {
705
46
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
46
            _high_value = TYPE_MIN;
707
46
            _low_value = TYPE_MAX;
708
46
        }
709
775
    }
710
711
802
    return Status::OK();
712
804
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE9add_rangeENS_11SQLFilterOpENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
614
4.54k
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
4.54k
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
4.54k
    _contain_null = false;
621
622
4.54k
    if (is_fixed_value_range()) {
623
0
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
0
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
0
        case FILTER_LARGER_OR_EQUAL: {
632
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
0
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
0
        case FILTER_LESS_OR_EQUAL: {
647
0
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
0
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
0
        }
655
656
0
        _high_value = TYPE_MIN;
657
0
        _low_value = TYPE_MAX;
658
4.54k
    } else {
659
4.54k
        if (Compare::greater(_high_value, _low_value)) {
660
4.54k
            switch (op) {
661
55
            case FILTER_LARGER: {
662
55
                if (Compare::greater_equal(value, _low_value)) {
663
55
                    _low_value = value;
664
55
                    _low_op = op;
665
55
                }
666
667
55
                break;
668
0
            }
669
670
2.22k
            case FILTER_LARGER_OR_EQUAL: {
671
2.22k
                if (Compare::greater(value, _low_value)) {
672
134
                    _low_value = value;
673
134
                    _low_op = op;
674
134
                }
675
676
2.22k
                break;
677
0
            }
678
679
38
            case FILTER_LESS: {
680
38
                if (Compare::less_equal(value, _high_value)) {
681
37
                    _high_value = value;
682
37
                    _high_op = op;
683
37
                }
684
685
38
                break;
686
0
            }
687
688
2.23k
            case FILTER_LESS_OR_EQUAL: {
689
2.23k
                if (Compare::less(value, _high_value)) {
690
171
                    _high_value = value;
691
171
                    _high_op = op;
692
171
                }
693
694
2.23k
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
4.54k
            }
701
4.54k
        }
702
703
4.52k
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
4.52k
            Compare::equal(_high_value, _low_value)) {
705
48
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
48
            _high_value = TYPE_MIN;
707
48
            _low_value = TYPE_MAX;
708
48
        }
709
4.52k
    }
710
711
4.52k
    return Status::OK();
712
4.54k
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE9add_rangeENS_11SQLFilterOpENS_16VecDateTimeValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE9add_rangeENS_11SQLFilterOpENS_11DateV2ValueINS_15DateV2ValueTypeEEE
Line
Count
Source
614
19.4k
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
19.4k
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
19.4k
    _contain_null = false;
621
622
19.4k
    if (is_fixed_value_range()) {
623
17
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
17
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
13
        case FILTER_LARGER_OR_EQUAL: {
632
13
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
13
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
4
        case FILTER_LESS_OR_EQUAL: {
647
4
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
4
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
17
        }
655
656
17
        _high_value = TYPE_MIN;
657
17
        _low_value = TYPE_MAX;
658
19.4k
    } else {
659
19.4k
        if (Compare::greater(_high_value, _low_value)) {
660
19.3k
            switch (op) {
661
12.4k
            case FILTER_LARGER: {
662
12.4k
                if (Compare::greater_equal(value, _low_value)) {
663
12.4k
                    _low_value = value;
664
12.4k
                    _low_op = op;
665
12.4k
                }
666
667
12.4k
                break;
668
0
            }
669
670
3.85k
            case FILTER_LARGER_OR_EQUAL: {
671
3.85k
                if (Compare::greater(value, _low_value)) {
672
3.82k
                    _low_value = value;
673
3.82k
                    _low_op = op;
674
3.82k
                }
675
676
3.85k
                break;
677
0
            }
678
679
2.65k
            case FILTER_LESS: {
680
2.65k
                if (Compare::less_equal(value, _high_value)) {
681
2.64k
                    _high_value = value;
682
2.64k
                    _high_op = op;
683
2.64k
                }
684
685
2.65k
                break;
686
0
            }
687
688
454
            case FILTER_LESS_OR_EQUAL: {
689
454
                if (Compare::less(value, _high_value)) {
690
430
                    _high_value = value;
691
430
                    _high_op = op;
692
430
                }
693
694
454
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
19.3k
            }
701
19.3k
        }
702
703
19.4k
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
19.4k
            Compare::equal(_high_value, _low_value)) {
705
65
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
65
            _high_value = TYPE_MIN;
707
65
            _low_value = TYPE_MAX;
708
65
        }
709
19.4k
    }
710
711
19.4k
    return Status::OK();
712
19.4k
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE9add_rangeENS_11SQLFilterOpENS_16VecDateTimeValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE9add_rangeENS_11SQLFilterOpENS_11DateV2ValueINS_19DateTimeV2ValueTypeEEE
Line
Count
Source
614
2.71k
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
2.71k
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
2.71k
    _contain_null = false;
621
622
2.71k
    if (is_fixed_value_range()) {
623
0
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
0
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
0
        case FILTER_LARGER_OR_EQUAL: {
632
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
0
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
0
        case FILTER_LESS_OR_EQUAL: {
647
0
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
0
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
0
        }
655
656
0
        _high_value = TYPE_MIN;
657
0
        _low_value = TYPE_MAX;
658
2.71k
    } else {
659
2.71k
        if (Compare::greater(_high_value, _low_value)) {
660
2.71k
            switch (op) {
661
69
            case FILTER_LARGER: {
662
69
                if (Compare::greater_equal(value, _low_value)) {
663
69
                    _low_value = value;
664
69
                    _low_op = op;
665
69
                }
666
667
69
                break;
668
0
            }
669
670
1.29k
            case FILTER_LARGER_OR_EQUAL: {
671
1.29k
                if (Compare::greater(value, _low_value)) {
672
1.25k
                    _low_value = value;
673
1.25k
                    _low_op = op;
674
1.25k
                }
675
676
1.29k
                break;
677
0
            }
678
679
1.12k
            case FILTER_LESS: {
680
1.12k
                if (Compare::less_equal(value, _high_value)) {
681
1.12k
                    _high_value = value;
682
1.12k
                    _high_op = op;
683
1.12k
                }
684
685
1.12k
                break;
686
0
            }
687
688
222
            case FILTER_LESS_OR_EQUAL: {
689
222
                if (Compare::less(value, _high_value)) {
690
179
                    _high_value = value;
691
179
                    _high_op = op;
692
179
                }
693
694
222
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
2.71k
            }
701
2.71k
        }
702
703
2.71k
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
2.71k
            Compare::equal(_high_value, _low_value)) {
705
76
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
76
            _high_value = TYPE_MIN;
707
76
            _low_value = TYPE_MAX;
708
76
        }
709
2.71k
    }
710
711
2.71k
    return Status::OK();
712
2.71k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE9add_rangeENS_11SQLFilterOpENS_16TimestampTzValueE
Line
Count
Source
614
14
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
14
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
14
    _contain_null = false;
621
622
14
    if (is_fixed_value_range()) {
623
0
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
0
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
0
        case FILTER_LARGER_OR_EQUAL: {
632
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
0
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
0
        case FILTER_LESS_OR_EQUAL: {
647
0
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
0
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
0
        }
655
656
0
        _high_value = TYPE_MIN;
657
0
        _low_value = TYPE_MAX;
658
14
    } else {
659
14
        if (Compare::greater(_high_value, _low_value)) {
660
14
            switch (op) {
661
3
            case FILTER_LARGER: {
662
3
                if (Compare::greater_equal(value, _low_value)) {
663
3
                    _low_value = value;
664
3
                    _low_op = op;
665
3
                }
666
667
3
                break;
668
0
            }
669
670
4
            case FILTER_LARGER_OR_EQUAL: {
671
4
                if (Compare::greater(value, _low_value)) {
672
2
                    _low_value = value;
673
2
                    _low_op = op;
674
2
                }
675
676
4
                break;
677
0
            }
678
679
3
            case FILTER_LESS: {
680
3
                if (Compare::less_equal(value, _high_value)) {
681
3
                    _high_value = value;
682
3
                    _high_op = op;
683
3
                }
684
685
3
                break;
686
0
            }
687
688
4
            case FILTER_LESS_OR_EQUAL: {
689
4
                if (Compare::less(value, _high_value)) {
690
3
                    _high_value = value;
691
3
                    _high_op = op;
692
3
                }
693
694
4
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
14
            }
701
14
        }
702
703
14
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
14
            Compare::equal(_high_value, _low_value)) {
705
1
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
1
            _high_value = TYPE_MIN;
707
1
            _low_value = TYPE_MAX;
708
1
        }
709
14
    }
710
711
14
    return Status::OK();
712
14
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE9add_rangeENS_11SQLFilterOpENS_14DecimalV2ValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE9add_rangeENS_11SQLFilterOpEh
Line
Count
Source
614
68
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
68
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
68
    _contain_null = false;
621
622
68
    if (is_fixed_value_range()) {
623
0
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
0
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
0
        case FILTER_LARGER_OR_EQUAL: {
632
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
0
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
0
        case FILTER_LESS_OR_EQUAL: {
647
0
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
0
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
0
        }
655
656
0
        _high_value = TYPE_MIN;
657
0
        _low_value = TYPE_MAX;
658
68
    } else {
659
68
        if (Compare::greater(_high_value, _low_value)) {
660
68
            switch (op) {
661
0
            case FILTER_LARGER: {
662
0
                if (Compare::greater_equal(value, _low_value)) {
663
0
                    _low_value = value;
664
0
                    _low_op = op;
665
0
                }
666
667
0
                break;
668
0
            }
669
670
34
            case FILTER_LARGER_OR_EQUAL: {
671
34
                if (Compare::greater(value, _low_value)) {
672
16
                    _low_value = value;
673
16
                    _low_op = op;
674
16
                }
675
676
34
                break;
677
0
            }
678
679
0
            case FILTER_LESS: {
680
0
                if (Compare::less_equal(value, _high_value)) {
681
0
                    _high_value = value;
682
0
                    _high_op = op;
683
0
                }
684
685
0
                break;
686
0
            }
687
688
34
            case FILTER_LESS_OR_EQUAL: {
689
34
                if (Compare::less(value, _high_value)) {
690
0
                    _high_value = value;
691
0
                    _high_op = op;
692
0
                }
693
694
34
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
68
            }
701
68
        }
702
703
68
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
68
            Compare::equal(_high_value, _low_value)) {
705
16
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
16
            _high_value = TYPE_MIN;
707
16
            _low_value = TYPE_MAX;
708
16
        }
709
68
    }
710
711
68
    return Status::OK();
712
68
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE9add_rangeENS_11SQLFilterOpENS_9StringRefE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE9add_rangeENS_11SQLFilterOpENS_7DecimalIiEE
Line
Count
Source
614
28
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
28
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
28
    _contain_null = false;
621
622
28
    if (is_fixed_value_range()) {
623
0
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
0
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
0
        case FILTER_LARGER_OR_EQUAL: {
632
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
0
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
0
        case FILTER_LESS_OR_EQUAL: {
647
0
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
0
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
0
        }
655
656
0
        _high_value = TYPE_MIN;
657
0
        _low_value = TYPE_MAX;
658
28
    } else {
659
28
        if (Compare::greater(_high_value, _low_value)) {
660
28
            switch (op) {
661
8
            case FILTER_LARGER: {
662
8
                if (Compare::greater_equal(value, _low_value)) {
663
8
                    _low_value = value;
664
8
                    _low_op = op;
665
8
                }
666
667
8
                break;
668
0
            }
669
670
8
            case FILTER_LARGER_OR_EQUAL: {
671
8
                if (Compare::greater(value, _low_value)) {
672
3
                    _low_value = value;
673
3
                    _low_op = op;
674
3
                }
675
676
8
                break;
677
0
            }
678
679
6
            case FILTER_LESS: {
680
6
                if (Compare::less_equal(value, _high_value)) {
681
5
                    _high_value = value;
682
5
                    _high_op = op;
683
5
                }
684
685
6
                break;
686
0
            }
687
688
6
            case FILTER_LESS_OR_EQUAL: {
689
6
                if (Compare::less(value, _high_value)) {
690
1
                    _high_value = value;
691
1
                    _high_op = op;
692
1
                }
693
694
6
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
28
            }
701
28
        }
702
703
27
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
27
            Compare::equal(_high_value, _low_value)) {
705
0
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
0
            _high_value = TYPE_MIN;
707
0
            _low_value = TYPE_MAX;
708
0
        }
709
27
    }
710
711
27
    return Status::OK();
712
28
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE9add_rangeENS_11SQLFilterOpENS_7DecimalIlEE
Line
Count
Source
614
896
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
896
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
896
    _contain_null = false;
621
622
896
    if (is_fixed_value_range()) {
623
0
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
0
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
0
        case FILTER_LARGER_OR_EQUAL: {
632
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
0
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
0
        case FILTER_LESS_OR_EQUAL: {
647
0
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
0
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
0
        }
655
656
0
        _high_value = TYPE_MIN;
657
0
        _low_value = TYPE_MAX;
658
896
    } else {
659
896
        if (Compare::greater(_high_value, _low_value)) {
660
895
            switch (op) {
661
156
            case FILTER_LARGER: {
662
156
                if (Compare::greater_equal(value, _low_value)) {
663
156
                    _low_value = value;
664
156
                    _low_op = op;
665
156
                }
666
667
156
                break;
668
0
            }
669
670
364
            case FILTER_LARGER_OR_EQUAL: {
671
364
                if (Compare::greater(value, _low_value)) {
672
111
                    _low_value = value;
673
111
                    _low_op = op;
674
111
                }
675
676
364
                break;
677
0
            }
678
679
14
            case FILTER_LESS: {
680
14
                if (Compare::less_equal(value, _high_value)) {
681
14
                    _high_value = value;
682
14
                    _high_op = op;
683
14
                }
684
685
14
                break;
686
0
            }
687
688
365
            case FILTER_LESS_OR_EQUAL: {
689
365
                if (Compare::less(value, _high_value)) {
690
110
                    _high_value = value;
691
110
                    _high_op = op;
692
110
                }
693
694
365
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
895
            }
701
895
        }
702
703
898
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
898
            Compare::equal(_high_value, _low_value)) {
705
52
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
52
            _high_value = TYPE_MIN;
707
52
            _low_value = TYPE_MAX;
708
52
        }
709
898
    }
710
711
898
    return Status::OK();
712
896
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE9add_rangeENS_11SQLFilterOpENS_12Decimal128V3E
Line
Count
Source
614
134
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
134
    if (INVALID_TYPE == _column_type) {
616
0
        return Status::InternalError("AddRange failed, Invalid type");
617
0
    }
618
619
    // add range means range should not contain null
620
134
    _contain_null = false;
621
622
134
    if (is_fixed_value_range()) {
623
0
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
0
        switch (op) {
626
0
        case FILTER_LARGER: {
627
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.second);
628
0
            break;
629
0
        }
630
631
0
        case FILTER_LARGER_OR_EQUAL: {
632
0
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
0
            break;
634
0
        }
635
636
0
        case FILTER_LESS: {
637
0
            if (bound_pair.first == _fixed_values.find(value)) {
638
0
                _fixed_values.erase(bound_pair.first, _fixed_values.end());
639
0
            } else {
640
0
                _fixed_values.erase(bound_pair.second, _fixed_values.end());
641
0
            }
642
643
0
            break;
644
0
        }
645
646
0
        case FILTER_LESS_OR_EQUAL: {
647
0
            _fixed_values.erase(bound_pair.second, _fixed_values.end());
648
0
            break;
649
0
        }
650
651
0
        default: {
652
0
            return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
653
0
        }
654
0
        }
655
656
0
        _high_value = TYPE_MIN;
657
0
        _low_value = TYPE_MAX;
658
134
    } else {
659
135
        if (Compare::greater(_high_value, _low_value)) {
660
135
            switch (op) {
661
104
            case FILTER_LARGER: {
662
104
                if (Compare::greater_equal(value, _low_value)) {
663
102
                    _low_value = value;
664
102
                    _low_op = op;
665
102
                }
666
667
104
                break;
668
0
            }
669
670
13
            case FILTER_LARGER_OR_EQUAL: {
671
13
                if (Compare::greater(value, _low_value)) {
672
5
                    _low_value = value;
673
5
                    _low_op = op;
674
5
                }
675
676
13
                break;
677
0
            }
678
679
9
            case FILTER_LESS: {
680
9
                if (Compare::less_equal(value, _high_value)) {
681
9
                    _high_value = value;
682
9
                    _high_op = op;
683
9
                }
684
685
9
                break;
686
0
            }
687
688
9
            case FILTER_LESS_OR_EQUAL: {
689
9
                if (Compare::less(value, _high_value)) {
690
1
                    _high_value = value;
691
1
                    _high_op = op;
692
1
                }
693
694
9
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
135
            }
701
135
        }
702
703
133
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
133
            Compare::equal(_high_value, _low_value)) {
705
0
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
0
            _high_value = TYPE_MIN;
707
0
            _low_value = TYPE_MAX;
708
0
        }
709
133
    }
710
711
133
    return Status::OK();
712
134
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE9add_rangeENS_11SQLFilterOpENS_7DecimalIN4wide7integerILm256EiEEEE
713
714
template <PrimitiveType primitive_type>
715
405k
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
405k
    switch (_high_op) {
717
70
    case FILTER_LESS: {
718
70
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
70
        case FILTER_LARGER_OR_EQUAL: {
724
70
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
70
        }
731
732
0
        break;
733
70
    }
734
735
405k
    case FILTER_LESS_OR_EQUAL: {
736
405k
        switch (_low_op) {
737
2
        case FILTER_LARGER: {
738
2
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
405k
        case FILTER_LARGER_OR_EQUAL: {
742
405k
            return Compare::less_equal(value, _high_value) &&
743
406k
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
405k
        }
750
405k
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
405k
    }
756
757
0
    return false;
758
405k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE11is_in_rangeERKa
Line
Count
Source
715
97.0k
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
97.0k
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
97.2k
    case FILTER_LESS_OR_EQUAL: {
736
97.2k
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
97.2k
        case FILTER_LARGER_OR_EQUAL: {
742
97.2k
            return Compare::less_equal(value, _high_value) &&
743
97.2k
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
97.2k
        }
750
97.2k
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
97.0k
    }
756
757
0
    return false;
758
97.0k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE11is_in_rangeERKs
Line
Count
Source
715
103
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
103
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
103
    case FILTER_LESS_OR_EQUAL: {
736
103
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
103
        case FILTER_LARGER_OR_EQUAL: {
742
103
            return Compare::less_equal(value, _high_value) &&
743
103
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
103
        }
750
103
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
103
    }
756
757
0
    return false;
758
103
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE11is_in_rangeERKi
Line
Count
Source
715
35.9k
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
35.9k
    switch (_high_op) {
717
64
    case FILTER_LESS: {
718
64
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
64
        case FILTER_LARGER_OR_EQUAL: {
724
64
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
64
        }
731
732
0
        break;
733
64
    }
734
735
35.8k
    case FILTER_LESS_OR_EQUAL: {
736
35.8k
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
35.9k
        case FILTER_LARGER_OR_EQUAL: {
742
35.9k
            return Compare::less_equal(value, _high_value) &&
743
35.9k
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
35.8k
        }
750
35.8k
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
35.9k
    }
756
757
0
    return false;
758
35.9k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE11is_in_rangeERKl
Line
Count
Source
715
1.62k
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
1.62k
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
1.62k
    case FILTER_LESS_OR_EQUAL: {
736
1.62k
        switch (_low_op) {
737
2
        case FILTER_LARGER: {
738
2
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
1.62k
        case FILTER_LARGER_OR_EQUAL: {
742
1.62k
            return Compare::less_equal(value, _high_value) &&
743
1.62k
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
1.62k
        }
750
1.62k
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
1.62k
    }
756
757
0
    return false;
758
1.62k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE11is_in_rangeERKn
Line
Count
Source
715
223
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
223
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
224
    case FILTER_LESS_OR_EQUAL: {
736
224
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
225
        case FILTER_LARGER_OR_EQUAL: {
742
225
            return Compare::less_equal(value, _high_value) &&
743
225
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
224
        }
750
224
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
223
    }
756
757
0
    return false;
758
223
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE11is_in_rangeERKf
Line
Count
Source
715
33
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
33
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
32
    case FILTER_LESS_OR_EQUAL: {
736
32
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
33
        case FILTER_LARGER_OR_EQUAL: {
742
33
            return Compare::less_equal(value, _high_value) &&
743
33
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
32
        }
750
32
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
33
    }
756
757
0
    return false;
758
33
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE11is_in_rangeERKd
Line
Count
Source
715
107
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
107
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
107
    case FILTER_LESS_OR_EQUAL: {
736
107
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
108
        case FILTER_LARGER_OR_EQUAL: {
742
108
            return Compare::less_equal(value, _high_value) &&
743
108
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
107
        }
750
107
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
107
    }
756
757
0
    return false;
758
107
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE11is_in_rangeERKj
Line
Count
Source
715
2
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
2
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
2
    case FILTER_LESS_OR_EQUAL: {
736
2
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
2
        case FILTER_LARGER_OR_EQUAL: {
742
2
            return Compare::less_equal(value, _high_value) &&
743
2
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
2
        }
750
2
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
2
    }
756
757
0
    return false;
758
2
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE11is_in_rangeERKo
Line
Count
Source
715
4
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
4
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
4
    case FILTER_LESS_OR_EQUAL: {
736
4
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
4
        case FILTER_LARGER_OR_EQUAL: {
742
4
            return Compare::less_equal(value, _high_value) &&
743
4
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
4
        }
750
4
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
4
    }
756
757
0
    return false;
758
4
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE11is_in_rangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
715
616
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
616
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
616
    case FILTER_LESS_OR_EQUAL: {
736
616
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
614
        case FILTER_LARGER_OR_EQUAL: {
742
614
            return Compare::less_equal(value, _high_value) &&
743
614
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
616
        }
750
616
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
616
    }
756
757
0
    return false;
758
616
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE11is_in_rangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
715
259k
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
259k
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
259k
    case FILTER_LESS_OR_EQUAL: {
736
259k
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
259k
        case FILTER_LARGER_OR_EQUAL: {
742
259k
            return Compare::less_equal(value, _high_value) &&
743
259k
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
259k
        }
750
259k
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
259k
    }
756
757
0
    return false;
758
259k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE11is_in_rangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
715
1.51k
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
1.51k
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
1.52k
    case FILTER_LESS_OR_EQUAL: {
736
1.52k
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
1.52k
        case FILTER_LARGER_OR_EQUAL: {
742
1.52k
            return Compare::less_equal(value, _high_value) &&
743
1.52k
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
1.52k
        }
750
1.52k
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
1.51k
    }
756
757
0
    return false;
758
1.51k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE11is_in_rangeERKNS_16VecDateTimeValueE
Line
Count
Source
715
18
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
18
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
18
    case FILTER_LESS_OR_EQUAL: {
736
18
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
18
        case FILTER_LARGER_OR_EQUAL: {
742
18
            return Compare::less_equal(value, _high_value) &&
743
18
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
18
        }
750
18
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
18
    }
756
757
0
    return false;
758
18
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE11is_in_rangeERKNS_11DateV2ValueINS_15DateV2ValueTypeEEE
Line
Count
Source
715
7.97k
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
7.97k
    switch (_high_op) {
717
6
    case FILTER_LESS: {
718
6
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
6
        case FILTER_LARGER_OR_EQUAL: {
724
6
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
6
        }
731
732
0
        break;
733
6
    }
734
735
7.97k
    case FILTER_LESS_OR_EQUAL: {
736
7.97k
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
7.97k
        case FILTER_LARGER_OR_EQUAL: {
742
7.97k
            return Compare::less_equal(value, _high_value) &&
743
7.97k
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
7.97k
        }
750
7.97k
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
7.97k
    }
756
757
0
    return false;
758
7.97k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE11is_in_rangeERKNS_16VecDateTimeValueE
Line
Count
Source
715
20
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
20
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
20
    case FILTER_LESS_OR_EQUAL: {
736
20
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
20
        case FILTER_LARGER_OR_EQUAL: {
742
20
            return Compare::less_equal(value, _high_value) &&
743
20
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
20
        }
750
20
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
20
    }
756
757
0
    return false;
758
20
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE11is_in_rangeERKNS_11DateV2ValueINS_19DateTimeV2ValueTypeEEE
Line
Count
Source
715
565
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
565
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
564
    case FILTER_LESS_OR_EQUAL: {
736
564
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
564
        case FILTER_LARGER_OR_EQUAL: {
742
564
            return Compare::less_equal(value, _high_value) &&
743
564
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
564
        }
750
564
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
565
    }
756
757
0
    return false;
758
565
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE11is_in_rangeERKNS_16TimestampTzValueE
Line
Count
Source
715
6
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
6
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
6
    case FILTER_LESS_OR_EQUAL: {
736
6
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
6
        case FILTER_LARGER_OR_EQUAL: {
742
6
            return Compare::less_equal(value, _high_value) &&
743
6
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
6
        }
750
6
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
6
    }
756
757
0
    return false;
758
6
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE11is_in_rangeERKNS_14DecimalV2ValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE11is_in_rangeERKh
Line
Count
Source
715
195
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
195
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
195
    case FILTER_LESS_OR_EQUAL: {
736
195
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
195
        case FILTER_LARGER_OR_EQUAL: {
742
195
            return Compare::less_equal(value, _high_value) &&
743
195
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
195
        }
750
195
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
195
    }
756
757
0
    return false;
758
195
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE11is_in_rangeERKNS_9StringRefE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE11is_in_rangeERKNS_7DecimalIiEE
Line
Count
Source
715
18
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
18
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
18
    case FILTER_LESS_OR_EQUAL: {
736
18
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
18
        case FILTER_LARGER_OR_EQUAL: {
742
18
            return Compare::less_equal(value, _high_value) &&
743
18
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
18
        }
750
18
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
18
    }
756
757
0
    return false;
758
18
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE11is_in_rangeERKNS_7DecimalIlEE
Line
Count
Source
715
176
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
176
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
176
    case FILTER_LESS_OR_EQUAL: {
736
176
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
176
        case FILTER_LARGER_OR_EQUAL: {
742
176
            return Compare::less_equal(value, _high_value) &&
743
176
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
176
        }
750
176
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
176
    }
756
757
0
    return false;
758
176
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE11is_in_rangeERKNS_12Decimal128V3E
Line
Count
Source
715
76
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
76
    switch (_high_op) {
717
0
    case FILTER_LESS: {
718
0
        switch (_low_op) {
719
0
        case FILTER_LARGER: {
720
0
            return Compare::less(value, _high_value) && Compare::greater(value, _low_value);
721
0
        }
722
723
0
        case FILTER_LARGER_OR_EQUAL: {
724
0
            return Compare::less(value, _high_value) && Compare::greater_equal(value, _low_value);
725
0
        }
726
727
0
        default: {
728
0
            DCHECK(false);
729
0
        }
730
0
        }
731
732
0
        break;
733
0
    }
734
735
76
    case FILTER_LESS_OR_EQUAL: {
736
76
        switch (_low_op) {
737
0
        case FILTER_LARGER: {
738
0
            return Compare::less_equal(value, _high_value) && Compare::greater(value, _low_value);
739
0
        }
740
741
76
        case FILTER_LARGER_OR_EQUAL: {
742
76
            return Compare::less_equal(value, _high_value) &&
743
76
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
76
        }
750
76
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
76
    }
756
757
0
    return false;
758
76
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE11is_in_rangeERKNS_7DecimalIN4wide7integerILm256EiEEEE
759
760
template <PrimitiveType primitive_type>
761
399k
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
399k
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
399k
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
21.7k
        set_empty_value_range();
770
21.7k
    }
771
772
399k
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
399k
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
371k
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
332
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
332
                             range._fixed_values.begin(), range._fixed_values.end(),
778
332
                             std::inserter(result_values, result_values.begin()));
779
371k
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
8
            IteratorType iter = _fixed_values.begin();
781
782
30
            while (iter != _fixed_values.end()) {
783
22
                if (range.is_in_range(*iter)) {
784
22
                    result_values.insert(*iter);
785
22
                }
786
22
                ++iter;
787
22
            }
788
371k
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
371k
            IteratorType iter = range._fixed_values.begin();
790
776k
            while (iter != range._fixed_values.end()) {
791
405k
                if (this->is_in_range(*iter)) {
792
405k
                    result_values.insert(*iter);
793
405k
                }
794
404k
                ++iter;
795
404k
            }
796
371k
        }
797
798
373k
        if (!result_values.empty()) {
799
373k
            _fixed_values = std::move(result_values);
800
373k
            _contain_null = false;
801
373k
            _high_value = TYPE_MIN;
802
373k
            _low_value = TYPE_MAX;
803
18.4E
        } else {
804
18.4E
            set_empty_value_range();
805
18.4E
        }
806
371k
    } else {
807
27.8k
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
931
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
931
                set_contain_null(true);
811
931
            }
812
26.9k
        } else {
813
26.9k
            static_cast<void>(add_range(range._high_op, range._high_value));
814
26.9k
            static_cast<void>(add_range(range._low_op, range._low_value));
815
26.9k
        }
816
27.8k
    }
817
399k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE12intersectionERS2_
Line
Count
Source
761
97.4k
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
97.4k
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
97.4k
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
97.4k
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
97.4k
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
96.3k
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
0
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
0
                             range._fixed_values.begin(), range._fixed_values.end(),
778
0
                             std::inserter(result_values, result_values.begin()));
779
96.3k
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
96.4k
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
96.4k
            IteratorType iter = range._fixed_values.begin();
790
192k
            while (iter != range._fixed_values.end()) {
791
97.0k
                if (this->is_in_range(*iter)) {
792
97.0k
                    result_values.insert(*iter);
793
97.0k
                }
794
96.4k
                ++iter;
795
96.4k
            }
796
96.4k
        }
797
798
96.8k
        if (!result_values.empty()) {
799
96.8k
            _fixed_values = std::move(result_values);
800
96.8k
            _contain_null = false;
801
96.8k
            _high_value = TYPE_MIN;
802
96.8k
            _low_value = TYPE_MAX;
803
18.4E
        } else {
804
18.4E
            set_empty_value_range();
805
18.4E
        }
806
96.3k
    } else {
807
1.11k
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
32
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
32
                set_contain_null(true);
811
32
            }
812
1.08k
        } else {
813
1.08k
            static_cast<void>(add_range(range._high_op, range._high_value));
814
1.08k
            static_cast<void>(add_range(range._low_op, range._low_value));
815
1.08k
        }
816
1.11k
    }
817
97.4k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE12intersectionERS2_
Line
Count
Source
761
138
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
138
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
139
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
138
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
139
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
86
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
0
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
0
                             range._fixed_values.begin(), range._fixed_values.end(),
778
0
                             std::inserter(result_values, result_values.begin()));
779
86
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
86
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
86
            IteratorType iter = range._fixed_values.begin();
790
189
            while (iter != range._fixed_values.end()) {
791
103
                if (this->is_in_range(*iter)) {
792
103
                    result_values.insert(*iter);
793
103
                }
794
103
                ++iter;
795
103
            }
796
86
        }
797
798
86
        if (!result_values.empty()) {
799
86
            _fixed_values = std::move(result_values);
800
86
            _contain_null = false;
801
86
            _high_value = TYPE_MIN;
802
86
            _low_value = TYPE_MAX;
803
86
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
86
    } else {
807
52
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
32
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
32
                set_contain_null(true);
811
32
            }
812
32
        } else {
813
20
            static_cast<void>(add_range(range._high_op, range._high_value));
814
20
            static_cast<void>(add_range(range._low_op, range._low_value));
815
20
        }
816
52
    }
817
138
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE12intersectionERS2_
Line
Count
Source
761
6.33k
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
6.33k
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
6.33k
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
108
        set_empty_value_range();
770
108
    }
771
772
6.33k
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
6.33k
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
5.52k
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
77
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
77
                             range._fixed_values.begin(), range._fixed_values.end(),
778
77
                             std::inserter(result_values, result_values.begin()));
779
5.45k
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
5.45k
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
5.44k
            IteratorType iter = range._fixed_values.begin();
790
41.9k
            while (iter != range._fixed_values.end()) {
791
36.5k
                if (this->is_in_range(*iter)) {
792
35.9k
                    result_values.insert(*iter);
793
35.9k
                }
794
36.5k
                ++iter;
795
36.5k
            }
796
5.44k
        }
797
798
5.57k
        if (!result_values.empty()) {
799
5.57k
            _fixed_values = std::move(result_values);
800
5.57k
            _contain_null = false;
801
5.57k
            _high_value = TYPE_MIN;
802
5.57k
            _low_value = TYPE_MAX;
803
18.4E
        } else {
804
18.4E
            set_empty_value_range();
805
18.4E
        }
806
5.52k
    } else {
807
803
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
219
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
219
                set_contain_null(true);
811
219
            }
812
586
        } else {
813
586
            static_cast<void>(add_range(range._high_op, range._high_value));
814
586
            static_cast<void>(add_range(range._low_op, range._low_value));
815
586
        }
816
803
    }
817
6.33k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE12intersectionERS2_
Line
Count
Source
761
22.6k
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
22.6k
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
22.6k
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
21.5k
        set_empty_value_range();
770
21.5k
    }
771
772
22.6k
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
22.6k
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
1.05k
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
52
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
52
                             range._fixed_values.begin(), range._fixed_values.end(),
778
52
                             std::inserter(result_values, result_values.begin()));
779
1.00k
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
8
            IteratorType iter = _fixed_values.begin();
781
782
30
            while (iter != _fixed_values.end()) {
783
22
                if (range.is_in_range(*iter)) {
784
22
                    result_values.insert(*iter);
785
22
                }
786
22
                ++iter;
787
22
            }
788
994
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
994
            IteratorType iter = range._fixed_values.begin();
790
2.59k
            while (iter != range._fixed_values.end()) {
791
1.60k
                if (this->is_in_range(*iter)) {
792
1.60k
                    result_values.insert(*iter);
793
1.60k
                }
794
1.60k
                ++iter;
795
1.60k
            }
796
994
        }
797
798
1.05k
        if (!result_values.empty()) {
799
1.05k
            _fixed_values = std::move(result_values);
800
1.05k
            _contain_null = false;
801
1.05k
            _high_value = TYPE_MIN;
802
1.05k
            _low_value = TYPE_MAX;
803
18.4E
        } else {
804
18.4E
            set_empty_value_range();
805
18.4E
        }
806
21.6k
    } else {
807
21.6k
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
34
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
32
                set_contain_null(true);
811
32
            }
812
21.5k
        } else {
813
21.5k
            static_cast<void>(add_range(range._high_op, range._high_value));
814
21.5k
            static_cast<void>(add_range(range._low_op, range._low_value));
815
21.5k
        }
816
21.6k
    }
817
22.6k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE12intersectionERS2_
Line
Count
Source
761
214
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
214
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
214
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
214
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
214
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
200
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
0
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
0
                             range._fixed_values.begin(), range._fixed_values.end(),
778
0
                             std::inserter(result_values, result_values.begin()));
779
200
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
200
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
199
            IteratorType iter = range._fixed_values.begin();
790
421
            while (iter != range._fixed_values.end()) {
791
222
                if (this->is_in_range(*iter)) {
792
220
                    result_values.insert(*iter);
793
220
                }
794
222
                ++iter;
795
222
            }
796
199
        }
797
798
200
        if (!result_values.empty()) {
799
200
            _fixed_values = std::move(result_values);
800
200
            _contain_null = false;
801
200
            _high_value = TYPE_MIN;
802
200
            _low_value = TYPE_MAX;
803
200
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
200
    } else {
807
14
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
10
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
10
                set_contain_null(true);
811
10
            }
812
10
        } else {
813
4
            static_cast<void>(add_range(range._high_op, range._high_value));
814
4
            static_cast<void>(add_range(range._low_op, range._low_value));
815
4
        }
816
14
    }
817
214
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE12intersectionERS2_
Line
Count
Source
761
82
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
82
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
83
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
82
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
82
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
38
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
16
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
16
                             range._fixed_values.begin(), range._fixed_values.end(),
778
16
                             std::inserter(result_values, result_values.begin()));
779
22
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
22
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
22
            IteratorType iter = range._fixed_values.begin();
790
54
            while (iter != range._fixed_values.end()) {
791
33
                if (this->is_in_range(*iter)) {
792
33
                    result_values.insert(*iter);
793
33
                }
794
32
                ++iter;
795
32
            }
796
22
        }
797
798
39
        if (!result_values.empty()) {
799
39
            _fixed_values = std::move(result_values);
800
39
            _contain_null = false;
801
39
            _high_value = TYPE_MIN;
802
39
            _low_value = TYPE_MAX;
803
18.4E
        } else {
804
18.4E
            set_empty_value_range();
805
18.4E
        }
806
44
    } else {
807
44
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
36
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
36
                set_contain_null(true);
811
36
            }
812
36
        } else {
813
8
            static_cast<void>(add_range(range._high_op, range._high_value));
814
8
            static_cast<void>(add_range(range._low_op, range._low_value));
815
8
        }
816
44
    }
817
82
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE12intersectionERS2_
Line
Count
Source
761
163
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
163
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
165
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
163
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
163
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
92
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
0
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
0
                             range._fixed_values.begin(), range._fixed_values.end(),
778
0
                             std::inserter(result_values, result_values.begin()));
779
92
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
92
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
92
            IteratorType iter = range._fixed_values.begin();
790
199
            while (iter != range._fixed_values.end()) {
791
107
                if (this->is_in_range(*iter)) {
792
107
                    result_values.insert(*iter);
793
107
                }
794
107
                ++iter;
795
107
            }
796
92
        }
797
798
93
        if (!result_values.empty()) {
799
93
            _fixed_values = std::move(result_values);
800
93
            _contain_null = false;
801
93
            _high_value = TYPE_MIN;
802
93
            _low_value = TYPE_MAX;
803
18.4E
        } else {
804
18.4E
            set_empty_value_range();
805
18.4E
        }
806
92
    } else {
807
71
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
40
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
40
                set_contain_null(true);
811
40
            }
812
39
        } else {
813
32
            static_cast<void>(add_range(range._high_op, range._high_value));
814
32
            static_cast<void>(add_range(range._low_op, range._low_value));
815
32
        }
816
71
    }
817
163
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE12intersectionERS2_
Line
Count
Source
761
5
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
5
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
5
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
5
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
5
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
2
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
0
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
0
                             range._fixed_values.begin(), range._fixed_values.end(),
778
0
                             std::inserter(result_values, result_values.begin()));
779
2
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
2
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
2
            IteratorType iter = range._fixed_values.begin();
790
4
            while (iter != range._fixed_values.end()) {
791
2
                if (this->is_in_range(*iter)) {
792
2
                    result_values.insert(*iter);
793
2
                }
794
2
                ++iter;
795
2
            }
796
2
        }
797
798
2
        if (!result_values.empty()) {
799
2
            _fixed_values = std::move(result_values);
800
2
            _contain_null = false;
801
2
            _high_value = TYPE_MIN;
802
2
            _low_value = TYPE_MAX;
803
2
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
3
    } else {
807
3
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
0
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
0
                set_contain_null(true);
811
0
            }
812
3
        } else {
813
3
            static_cast<void>(add_range(range._high_op, range._high_value));
814
3
            static_cast<void>(add_range(range._low_op, range._low_value));
815
3
        }
816
3
    }
817
5
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE12intersectionERS2_
Line
Count
Source
761
5
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
5
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
5
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
5
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
5
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
4
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
0
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
0
                             range._fixed_values.begin(), range._fixed_values.end(),
778
0
                             std::inserter(result_values, result_values.begin()));
779
4
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
4
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
4
            IteratorType iter = range._fixed_values.begin();
790
8
            while (iter != range._fixed_values.end()) {
791
4
                if (this->is_in_range(*iter)) {
792
4
                    result_values.insert(*iter);
793
4
                }
794
4
                ++iter;
795
4
            }
796
4
        }
797
798
4
        if (!result_values.empty()) {
799
4
            _fixed_values = std::move(result_values);
800
4
            _contain_null = false;
801
4
            _high_value = TYPE_MIN;
802
4
            _low_value = TYPE_MAX;
803
4
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
4
    } else {
807
1
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
0
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
0
                set_contain_null(true);
811
0
            }
812
1
        } else {
813
1
            static_cast<void>(add_range(range._high_op, range._high_value));
814
1
            static_cast<void>(add_range(range._low_op, range._low_value));
815
1
        }
816
1
    }
817
5
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE12intersectionERS2_
Line
Count
Source
761
473
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
473
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
473
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
473
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
473
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
415
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
2
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
2
                             range._fixed_values.begin(), range._fixed_values.end(),
778
2
                             std::inserter(result_values, result_values.begin()));
779
413
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
413
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
412
            IteratorType iter = range._fixed_values.begin();
790
1.01k
            while (iter != range._fixed_values.end()) {
791
607
                if (this->is_in_range(*iter)) {
792
607
                    result_values.insert(*iter);
793
607
                }
794
603
                ++iter;
795
603
            }
796
412
        }
797
798
425
        if (!result_values.empty()) {
799
425
            _fixed_values = std::move(result_values);
800
425
            _contain_null = false;
801
425
            _high_value = TYPE_MIN;
802
425
            _low_value = TYPE_MAX;
803
18.4E
        } else {
804
18.4E
            set_empty_value_range();
805
18.4E
        }
806
415
    } else {
807
58
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
34
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
34
                set_contain_null(true);
811
34
            }
812
34
        } else {
813
24
            static_cast<void>(add_range(range._high_op, range._high_value));
814
24
            static_cast<void>(add_range(range._low_op, range._low_value));
815
24
        }
816
58
    }
817
473
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE12intersectionERS2_
Line
Count
Source
761
258k
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
258k
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
258k
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
9
        set_empty_value_range();
770
9
    }
771
772
258k
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
258k
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
257k
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
9
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
9
                             range._fixed_values.begin(), range._fixed_values.end(),
778
9
                             std::inserter(result_values, result_values.begin()));
779
257k
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
257k
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
257k
            IteratorType iter = range._fixed_values.begin();
790
516k
            while (iter != range._fixed_values.end()) {
791
259k
                if (this->is_in_range(*iter)) {
792
259k
                    result_values.insert(*iter);
793
259k
                }
794
258k
                ++iter;
795
258k
            }
796
257k
        }
797
798
258k
        if (!result_values.empty()) {
799
258k
            _fixed_values = std::move(result_values);
800
258k
            _contain_null = false;
801
258k
            _high_value = TYPE_MIN;
802
258k
            _low_value = TYPE_MAX;
803
18.4E
        } else {
804
18.4E
            set_empty_value_range();
805
18.4E
        }
806
257k
    } else {
807
1.27k
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
179
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
179
                set_contain_null(true);
811
179
            }
812
1.09k
        } else {
813
1.09k
            static_cast<void>(add_range(range._high_op, range._high_value));
814
1.09k
            static_cast<void>(add_range(range._low_op, range._low_value));
815
1.09k
        }
816
1.27k
    }
817
258k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE12intersectionERS2_
Line
Count
Source
761
3.56k
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
3.56k
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
3.56k
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
3.56k
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
3.56k
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
1.35k
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
40
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
40
                             range._fixed_values.begin(), range._fixed_values.end(),
778
40
                             std::inserter(result_values, result_values.begin()));
779
1.31k
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
1.31k
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
1.31k
            IteratorType iter = range._fixed_values.begin();
790
2.82k
            while (iter != range._fixed_values.end()) {
791
1.51k
                if (this->is_in_range(*iter)) {
792
1.51k
                    result_values.insert(*iter);
793
1.51k
                }
794
1.51k
                ++iter;
795
1.51k
            }
796
1.31k
        }
797
798
1.36k
        if (!result_values.empty()) {
799
1.36k
            _fixed_values = std::move(result_values);
800
1.36k
            _contain_null = false;
801
1.36k
            _high_value = TYPE_MIN;
802
1.36k
            _low_value = TYPE_MAX;
803
18.4E
        } else {
804
18.4E
            set_empty_value_range();
805
18.4E
        }
806
2.20k
    } else {
807
2.20k
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
126
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
125
                set_contain_null(true);
811
125
            }
812
2.07k
        } else {
813
2.07k
            static_cast<void>(add_range(range._high_op, range._high_value));
814
2.07k
            static_cast<void>(add_range(range._low_op, range._low_value));
815
2.07k
        }
816
2.20k
    }
817
3.56k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE12intersectionERS2_
Line
Count
Source
761
18
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
18
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
18
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
18
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
18
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
18
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
0
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
0
                             range._fixed_values.begin(), range._fixed_values.end(),
778
0
                             std::inserter(result_values, result_values.begin()));
779
18
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
18
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
18
            IteratorType iter = range._fixed_values.begin();
790
36
            while (iter != range._fixed_values.end()) {
791
18
                if (this->is_in_range(*iter)) {
792
18
                    result_values.insert(*iter);
793
18
                }
794
18
                ++iter;
795
18
            }
796
18
        }
797
798
18
        if (!result_values.empty()) {
799
18
            _fixed_values = std::move(result_values);
800
18
            _contain_null = false;
801
18
            _high_value = TYPE_MIN;
802
18
            _low_value = TYPE_MAX;
803
18
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
18
    } else {
807
0
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
0
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
0
                set_contain_null(true);
811
0
            }
812
0
        } else {
813
0
            static_cast<void>(add_range(range._high_op, range._high_value));
814
0
            static_cast<void>(add_range(range._low_op, range._low_value));
815
0
        }
816
0
    }
817
18
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE12intersectionERS2_
Line
Count
Source
761
7.92k
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
7.92k
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
7.92k
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
15
        set_empty_value_range();
770
15
    }
771
772
7.92k
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
7.92k
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
7.80k
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
20
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
20
                             range._fixed_values.begin(), range._fixed_values.end(),
778
20
                             std::inserter(result_values, result_values.begin()));
779
7.78k
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
7.78k
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
7.78k
            IteratorType iter = range._fixed_values.begin();
790
15.7k
            while (iter != range._fixed_values.end()) {
791
7.98k
                if (this->is_in_range(*iter)) {
792
7.98k
                    result_values.insert(*iter);
793
7.98k
                }
794
7.95k
                ++iter;
795
7.95k
            }
796
7.78k
        }
797
798
7.86k
        if (!result_values.empty()) {
799
7.86k
            _fixed_values = std::move(result_values);
800
7.86k
            _contain_null = false;
801
7.86k
            _high_value = TYPE_MIN;
802
7.86k
            _low_value = TYPE_MAX;
803
18.4E
        } else {
804
18.4E
            set_empty_value_range();
805
18.4E
        }
806
7.80k
    } else {
807
122
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
52
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
51
                set_contain_null(true);
811
51
            }
812
72
        } else {
813
72
            static_cast<void>(add_range(range._high_op, range._high_value));
814
72
            static_cast<void>(add_range(range._low_op, range._low_value));
815
72
        }
816
122
    }
817
7.92k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE12intersectionERS2_
Line
Count
Source
761
20
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
20
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
20
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
20
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
20
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
20
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
0
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
0
                             range._fixed_values.begin(), range._fixed_values.end(),
778
0
                             std::inserter(result_values, result_values.begin()));
779
20
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
20
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
20
            IteratorType iter = range._fixed_values.begin();
790
40
            while (iter != range._fixed_values.end()) {
791
20
                if (this->is_in_range(*iter)) {
792
20
                    result_values.insert(*iter);
793
20
                }
794
20
                ++iter;
795
20
            }
796
20
        }
797
798
20
        if (!result_values.empty()) {
799
20
            _fixed_values = std::move(result_values);
800
20
            _contain_null = false;
801
20
            _high_value = TYPE_MIN;
802
20
            _low_value = TYPE_MAX;
803
20
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
20
    } else {
807
0
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
0
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
0
                set_contain_null(true);
811
0
            }
812
0
        } else {
813
0
            static_cast<void>(add_range(range._high_op, range._high_value));
814
0
            static_cast<void>(add_range(range._low_op, range._low_value));
815
0
        }
816
0
    }
817
20
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE12intersectionERS2_
Line
Count
Source
761
637
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
637
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
637
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
637
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
637
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
550
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
48
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
48
                             range._fixed_values.begin(), range._fixed_values.end(),
778
48
                             std::inserter(result_values, result_values.begin()));
779
502
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
502
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
501
            IteratorType iter = range._fixed_values.begin();
790
1.05k
            while (iter != range._fixed_values.end()) {
791
567
                if (this->is_in_range(*iter)) {
792
567
                    result_values.insert(*iter);
793
567
                }
794
554
                ++iter;
795
554
            }
796
501
        }
797
798
557
        if (!result_values.empty()) {
799
557
            _fixed_values = std::move(result_values);
800
557
            _contain_null = false;
801
557
            _high_value = TYPE_MIN;
802
557
            _low_value = TYPE_MAX;
803
18.4E
        } else {
804
18.4E
            set_empty_value_range();
805
18.4E
        }
806
550
    } else {
807
87
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
34
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
34
                set_contain_null(true);
811
34
            }
812
53
        } else {
813
53
            static_cast<void>(add_range(range._high_op, range._high_value));
814
53
            static_cast<void>(add_range(range._low_op, range._low_value));
815
53
        }
816
87
    }
817
637
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE12intersectionERS2_
Line
Count
Source
761
5
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
5
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
5
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
5
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
5
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
4
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
0
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
0
                             range._fixed_values.begin(), range._fixed_values.end(),
778
0
                             std::inserter(result_values, result_values.begin()));
779
4
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
4
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
4
            IteratorType iter = range._fixed_values.begin();
790
10
            while (iter != range._fixed_values.end()) {
791
6
                if (this->is_in_range(*iter)) {
792
6
                    result_values.insert(*iter);
793
6
                }
794
6
                ++iter;
795
6
            }
796
4
        }
797
798
4
        if (!result_values.empty()) {
799
4
            _fixed_values = std::move(result_values);
800
4
            _contain_null = false;
801
4
            _high_value = TYPE_MIN;
802
4
            _low_value = TYPE_MAX;
803
4
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
4
    } else {
807
1
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
0
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
0
                set_contain_null(true);
811
0
            }
812
1
        } else {
813
1
            static_cast<void>(add_range(range._high_op, range._high_value));
814
1
            static_cast<void>(add_range(range._low_op, range._low_value));
815
1
        }
816
1
    }
817
5
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE12intersectionERS2_
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE12intersectionERS2_
Line
Count
Source
761
249
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
249
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
249
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
249
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
249
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
201
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
16
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
16
                             range._fixed_values.begin(), range._fixed_values.end(),
778
16
                             std::inserter(result_values, result_values.begin()));
779
185
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
185
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
185
            IteratorType iter = range._fixed_values.begin();
790
380
            while (iter != range._fixed_values.end()) {
791
195
                if (this->is_in_range(*iter)) {
792
195
                    result_values.insert(*iter);
793
195
                }
794
195
                ++iter;
795
195
            }
796
185
        }
797
798
201
        if (!result_values.empty()) {
799
201
            _fixed_values = std::move(result_values);
800
201
            _contain_null = false;
801
201
            _high_value = TYPE_MIN;
802
201
            _low_value = TYPE_MAX;
803
201
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
201
    } else {
807
48
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
36
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
36
                set_contain_null(true);
811
36
            }
812
36
        } else {
813
12
            static_cast<void>(add_range(range._high_op, range._high_value));
814
12
            static_cast<void>(add_range(range._low_op, range._low_value));
815
12
        }
816
48
    }
817
249
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE12intersectionERS2_
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE12intersectionERS2_
Line
Count
Source
761
27
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
27
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
27
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
27
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
27
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
18
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
0
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
0
                             range._fixed_values.begin(), range._fixed_values.end(),
778
0
                             std::inserter(result_values, result_values.begin()));
779
18
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
18
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
18
            IteratorType iter = range._fixed_values.begin();
790
36
            while (iter != range._fixed_values.end()) {
791
18
                if (this->is_in_range(*iter)) {
792
18
                    result_values.insert(*iter);
793
18
                }
794
18
                ++iter;
795
18
            }
796
18
        }
797
798
18
        if (!result_values.empty()) {
799
18
            _fixed_values = std::move(result_values);
800
18
            _contain_null = false;
801
18
            _high_value = TYPE_MIN;
802
18
            _low_value = TYPE_MAX;
803
18
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
18
    } else {
807
9
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
4
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
4
                set_contain_null(true);
811
4
            }
812
5
        } else {
813
5
            static_cast<void>(add_range(range._high_op, range._high_value));
814
5
            static_cast<void>(add_range(range._low_op, range._low_value));
815
5
        }
816
9
    }
817
27
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE12intersectionERS2_
Line
Count
Source
761
490
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
490
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
490
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
490
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
490
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
170
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
52
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
52
                             range._fixed_values.begin(), range._fixed_values.end(),
778
52
                             std::inserter(result_values, result_values.begin()));
779
118
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
118
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
118
            IteratorType iter = range._fixed_values.begin();
790
294
            while (iter != range._fixed_values.end()) {
791
176
                if (this->is_in_range(*iter)) {
792
176
                    result_values.insert(*iter);
793
176
                }
794
176
                ++iter;
795
176
            }
796
118
        }
797
798
170
        if (!result_values.empty()) {
799
170
            _fixed_values = std::move(result_values);
800
170
            _contain_null = false;
801
170
            _high_value = TYPE_MIN;
802
170
            _low_value = TYPE_MAX;
803
170
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
320
    } else {
807
320
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
67
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
67
                set_contain_null(true);
811
67
            }
812
253
        } else {
813
253
            static_cast<void>(add_range(range._high_op, range._high_value));
814
253
            static_cast<void>(add_range(range._low_op, range._low_value));
815
253
        }
816
320
    }
817
490
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE12intersectionERS2_
Line
Count
Source
761
84
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
84
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
84
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
84
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
84
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
76
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
0
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
0
                             range._fixed_values.begin(), range._fixed_values.end(),
778
0
                             std::inserter(result_values, result_values.begin()));
779
76
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
0
            IteratorType iter = _fixed_values.begin();
781
782
0
            while (iter != _fixed_values.end()) {
783
0
                if (range.is_in_range(*iter)) {
784
0
                    result_values.insert(*iter);
785
0
                }
786
0
                ++iter;
787
0
            }
788
76
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
76
            IteratorType iter = range._fixed_values.begin();
790
152
            while (iter != range._fixed_values.end()) {
791
76
                if (this->is_in_range(*iter)) {
792
75
                    result_values.insert(*iter);
793
75
                }
794
76
                ++iter;
795
76
            }
796
76
        }
797
798
76
        if (!result_values.empty()) {
799
76
            _fixed_values = std::move(result_values);
800
76
            _contain_null = false;
801
76
            _high_value = TYPE_MIN;
802
76
            _low_value = TYPE_MAX;
803
76
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
76
    } else {
807
8
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
0
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
0
                set_contain_null(true);
811
0
            }
812
8
        } else {
813
8
            static_cast<void>(add_range(range._high_op, range._high_value));
814
8
            static_cast<void>(add_range(range._low_op, range._low_value));
815
8
        }
816
8
    }
817
84
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE12intersectionERS2_
818
819
template <PrimitiveType primitive_type>
820
Status OlapScanKeys::extend_scan_key(ColumnValueRange<primitive_type>& range,
821
                                     int32_t max_scan_key_num, bool* exact_value, bool* eos,
822
450k
                                     bool* should_break) {
823
450k
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
450k
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
450k
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
450k
    if (range.is_empty_value_range()) {
829
0
        _begin_scan_keys.clear();
830
0
        _end_scan_keys.clear();
831
0
        return Status::OK();
832
0
    }
833
834
    // 2. stop extend ScanKey when it's already extend a range value
835
450k
    if (_has_range_value) {
836
0
        return Status::OK();
837
0
    }
838
839
    //if a column doesn't have any predicate, we will try converting the range to fixed values
840
450k
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
450k
    if (range.is_fixed_value_range()) {
842
254k
        if (range.get_fixed_value_size() > max_scan_key_num / scan_keys_size) {
843
29
            if (range.is_range_value_convertible()) {
844
28
                range.convert_to_range_value();
845
28
                *exact_value = false;
846
28
            } else {
847
1
                *should_break = true;
848
1
                return Status::OK();
849
1
            }
850
29
        }
851
254k
    } else {
852
196k
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
196k
            !range.is_reject_split_type()) {
854
96.0k
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
96.0k
                                                 _end_include);
856
857
96.0k
            if (!(*eos) &&
858
96.2k
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
96.2k
                                                 _end_include, max_scan_key_num)) {
860
95.3k
                _has_range_value = true;
861
95.3k
            }
862
96.0k
            return Status::OK();
863
96.0k
        }
864
196k
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
354k
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
253k
        if (_begin_scan_keys.empty()) {
870
86.5k
            auto fixed_value_set = range.get_fixed_value_set();
871
86.5k
            ConstIterator iter = fixed_value_set.begin();
872
873
173k
            for (; iter != fixed_value_set.end(); ++iter) {
874
87.2k
                _begin_scan_keys.emplace_back();
875
87.2k
                _begin_scan_keys.back().add_value(
876
87.2k
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
877
87.2k
                _end_scan_keys.emplace_back();
878
87.2k
                _end_scan_keys.back().add_value(
879
87.2k
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
880
87.2k
            }
881
882
86.5k
            if (range.contain_null()) {
883
0
                _begin_scan_keys.emplace_back();
884
0
                _begin_scan_keys.back().add_null();
885
0
                _end_scan_keys.emplace_back();
886
0
                _end_scan_keys.back().add_null();
887
0
            }
888
86.5k
        } // 3.1.2 produces the Cartesian product of ScanKey and fixed_value
889
167k
        else {
890
167k
            auto fixed_value_set = range.get_fixed_value_set();
891
167k
            size_t original_key_range_size = _begin_scan_keys.size();
892
893
334k
            for (int i = 0; i < original_key_range_size; ++i) {
894
167k
                OlapTuple start_base_key_range = _begin_scan_keys[i];
895
167k
                OlapTuple end_base_key_range = _end_scan_keys[i];
896
897
167k
                ConstIterator iter = fixed_value_set.begin();
898
899
334k
                for (; iter != fixed_value_set.end(); ++iter) {
900
                    // alter the first ScanKey in original place
901
167k
                    if (iter == fixed_value_set.begin()) {
902
167k
                        _begin_scan_keys[i].add_value(
903
167k
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
904
167k
                        _end_scan_keys[i].add_value(
905
167k
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
906
167k
                    } // append follow ScanKey
907
152
                    else {
908
152
                        _begin_scan_keys.push_back(start_base_key_range);
909
152
                        _begin_scan_keys.back().add_value(
910
152
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
911
152
                        _end_scan_keys.push_back(end_base_key_range);
912
152
                        _end_scan_keys.back().add_value(
913
152
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
914
152
                    }
915
167k
                }
916
917
167k
                if (range.contain_null()) {
918
0
                    _begin_scan_keys.push_back(start_base_key_range);
919
0
                    _begin_scan_keys.back().add_null();
920
0
                    _end_scan_keys.push_back(end_base_key_range);
921
0
                    _end_scan_keys.back().add_null();
922
0
                }
923
167k
            }
924
167k
        }
925
926
253k
        _begin_include = true;
927
253k
        _end_include = true;
928
253k
    } // Extend ScanKey with range value
929
100k
    else {
930
100k
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
100k
        if (Compare::less(range.get_range_max_value(), range.get_range_min_value())) {
934
7
            CHECK(range.contain_null());
935
7
            if (_begin_scan_keys.empty()) {
936
7
                _begin_scan_keys.emplace_back();
937
7
                _begin_scan_keys.back().add_null();
938
7
                _end_scan_keys.emplace_back();
939
7
                _end_scan_keys.back().add_null();
940
7
            } else {
941
0
                for (int i = 0; i < _begin_scan_keys.size(); ++i) {
942
0
                    _begin_scan_keys[i].add_null();
943
0
                    _end_scan_keys[i].add_null();
944
0
                }
945
0
            }
946
100k
        } else if (_begin_scan_keys.empty()) {
947
13.9k
            _begin_scan_keys.emplace_back();
948
13.9k
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
13.9k
                                                      range.get_range_min_value(), range.scale()),
950
13.9k
                                              range.contain_null());
951
13.9k
            _end_scan_keys.emplace_back();
952
13.9k
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
13.9k
                    range.get_range_max_value(), range.scale()));
954
86.4k
        } else {
955
176k
            for (int i = 0; i < _begin_scan_keys.size(); ++i) {
956
90.0k
                _begin_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
957
90.0k
                                                      range.get_range_min_value(), range.scale()),
958
90.0k
                                              range.contain_null());
959
90.0k
            }
960
961
176k
            for (int i = 0; i < _end_scan_keys.size(); ++i) {
962
90.2k
                _end_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
963
90.2k
                        range.get_range_max_value(), range.scale()));
964
90.2k
            }
965
86.4k
        }
966
100k
        _begin_include = range.is_begin_include();
967
100k
        _end_include = range.is_end_include();
968
100k
    }
969
970
354k
    return Status::OK();
971
450k
}
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE3EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
962
                                     bool* should_break) {
823
962
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
962
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
962
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
962
    if (range.is_empty_value_range()) {
829
0
        _begin_scan_keys.clear();
830
0
        _end_scan_keys.clear();
831
0
        return Status::OK();
832
0
    }
833
834
    // 2. stop extend ScanKey when it's already extend a range value
835
962
    if (_has_range_value) {
836
0
        return Status::OK();
837
0
    }
838
839
    //if a column doesn't have any predicate, we will try converting the range to fixed values
840
962
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
962
    if (range.is_fixed_value_range()) {
842
10
        if (range.get_fixed_value_size() > max_scan_key_num / scan_keys_size) {
843
0
            if (range.is_range_value_convertible()) {
844
0
                range.convert_to_range_value();
845
0
                *exact_value = false;
846
0
            } else {
847
0
                *should_break = true;
848
0
                return Status::OK();
849
0
            }
850
0
        }
851
952
    } else {
852
952
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
952
            !range.is_reject_split_type()) {
854
913
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
913
                                                 _end_include);
856
857
913
            if (!(*eos) &&
858
913
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
911
                                                 _end_include, max_scan_key_num)) {
860
911
                _has_range_value = true;
861
911
            }
862
913
            return Status::OK();
863
913
        }
864
952
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
49
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
10
        if (_begin_scan_keys.empty()) {
870
10
            auto fixed_value_set = range.get_fixed_value_set();
871
10
            ConstIterator iter = fixed_value_set.begin();
872
873
22
            for (; iter != fixed_value_set.end(); ++iter) {
874
12
                _begin_scan_keys.emplace_back();
875
12
                _begin_scan_keys.back().add_value(
876
12
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
877
12
                _end_scan_keys.emplace_back();
878
12
                _end_scan_keys.back().add_value(
879
12
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
880
12
            }
881
882
10
            if (range.contain_null()) {
883
0
                _begin_scan_keys.emplace_back();
884
0
                _begin_scan_keys.back().add_null();
885
0
                _end_scan_keys.emplace_back();
886
0
                _end_scan_keys.back().add_null();
887
0
            }
888
10
        } // 3.1.2 produces the Cartesian product of ScanKey and fixed_value
889
0
        else {
890
0
            auto fixed_value_set = range.get_fixed_value_set();
891
0
            size_t original_key_range_size = _begin_scan_keys.size();
892
893
0
            for (int i = 0; i < original_key_range_size; ++i) {
894
0
                OlapTuple start_base_key_range = _begin_scan_keys[i];
895
0
                OlapTuple end_base_key_range = _end_scan_keys[i];
896
897
0
                ConstIterator iter = fixed_value_set.begin();
898
899
0
                for (; iter != fixed_value_set.end(); ++iter) {
900
                    // alter the first ScanKey in original place
901
0
                    if (iter == fixed_value_set.begin()) {
902
0
                        _begin_scan_keys[i].add_value(
903
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
904
0
                        _end_scan_keys[i].add_value(
905
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
906
0
                    } // append follow ScanKey
907
0
                    else {
908
0
                        _begin_scan_keys.push_back(start_base_key_range);
909
0
                        _begin_scan_keys.back().add_value(
910
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
911
0
                        _end_scan_keys.push_back(end_base_key_range);
912
0
                        _end_scan_keys.back().add_value(
913
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
914
0
                    }
915
0
                }
916
917
0
                if (range.contain_null()) {
918
0
                    _begin_scan_keys.push_back(start_base_key_range);
919
0
                    _begin_scan_keys.back().add_null();
920
0
                    _end_scan_keys.push_back(end_base_key_range);
921
0
                    _end_scan_keys.back().add_null();
922
0
                }
923
0
            }
924
0
        }
925
926
10
        _begin_include = true;
927
10
        _end_include = true;
928
10
    } // Extend ScanKey with range value
929
39
    else {
930
39
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
39
        if (Compare::less(range.get_range_max_value(), range.get_range_min_value())) {
934
0
            CHECK(range.contain_null());
935
0
            if (_begin_scan_keys.empty()) {
936
0
                _begin_scan_keys.emplace_back();
937
0
                _begin_scan_keys.back().add_null();
938
0
                _end_scan_keys.emplace_back();
939
0
                _end_scan_keys.back().add_null();
940
0
            } else {
941
0
                for (int i = 0; i < _begin_scan_keys.size(); ++i) {
942
0
                    _begin_scan_keys[i].add_null();
943
0
                    _end_scan_keys[i].add_null();
944
0
                }
945
0
            }
946
39
        } else if (_begin_scan_keys.empty()) {
947
2
            _begin_scan_keys.emplace_back();
948
2
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
2
                                                      range.get_range_min_value(), range.scale()),
950
2
                                              range.contain_null());
951
2
            _end_scan_keys.emplace_back();
952
2
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
2
                    range.get_range_max_value(), range.scale()));
954
37
        } else {
955
67
            for (int i = 0; i < _begin_scan_keys.size(); ++i) {
956
30
                _begin_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
957
30
                                                      range.get_range_min_value(), range.scale()),
958
30
                                              range.contain_null());
959
30
            }
960
961
67
            for (int i = 0; i < _end_scan_keys.size(); ++i) {
962
30
                _end_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
963
30
                        range.get_range_max_value(), range.scale()));
964
30
            }
965
37
        }
966
39
        _begin_include = range.is_begin_include();
967
39
        _end_include = range.is_end_include();
968
39
    }
969
970
49
    return Status::OK();
971
962
}
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE4EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
220
                                     bool* should_break) {
823
220
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
220
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
220
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
220
    if (range.is_empty_value_range()) {
829
0
        _begin_scan_keys.clear();
830
0
        _end_scan_keys.clear();
831
0
        return Status::OK();
832
0
    }
833
834
    // 2. stop extend ScanKey when it's already extend a range value
835
220
    if (_has_range_value) {
836
0
        return Status::OK();
837
0
    }
838
839
    //if a column doesn't have any predicate, we will try converting the range to fixed values
840
220
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
220
    if (range.is_fixed_value_range()) {
842
3
        if (range.get_fixed_value_size() > max_scan_key_num / scan_keys_size) {
843
0
            if (range.is_range_value_convertible()) {
844
0
                range.convert_to_range_value();
845
0
                *exact_value = false;
846
0
            } else {
847
0
                *should_break = true;
848
0
                return Status::OK();
849
0
            }
850
0
        }
851
217
    } else {
852
217
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
217
            !range.is_reject_split_type()) {
854
162
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
162
                                                 _end_include);
856
857
162
            if (!(*eos) &&
858
162
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
164
                                                 _end_include, max_scan_key_num)) {
860
164
                _has_range_value = true;
861
164
            }
862
162
            return Status::OK();
863
162
        }
864
217
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
58
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
3
        if (_begin_scan_keys.empty()) {
870
2
            auto fixed_value_set = range.get_fixed_value_set();
871
2
            ConstIterator iter = fixed_value_set.begin();
872
873
5
            for (; iter != fixed_value_set.end(); ++iter) {
874
3
                _begin_scan_keys.emplace_back();
875
3
                _begin_scan_keys.back().add_value(
876
3
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
877
3
                _end_scan_keys.emplace_back();
878
3
                _end_scan_keys.back().add_value(
879
3
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
880
3
            }
881
882
2
            if (range.contain_null()) {
883
0
                _begin_scan_keys.emplace_back();
884
0
                _begin_scan_keys.back().add_null();
885
0
                _end_scan_keys.emplace_back();
886
0
                _end_scan_keys.back().add_null();
887
0
            }
888
2
        } // 3.1.2 produces the Cartesian product of ScanKey and fixed_value
889
1
        else {
890
1
            auto fixed_value_set = range.get_fixed_value_set();
891
1
            size_t original_key_range_size = _begin_scan_keys.size();
892
893
3
            for (int i = 0; i < original_key_range_size; ++i) {
894
2
                OlapTuple start_base_key_range = _begin_scan_keys[i];
895
2
                OlapTuple end_base_key_range = _end_scan_keys[i];
896
897
2
                ConstIterator iter = fixed_value_set.begin();
898
899
4
                for (; iter != fixed_value_set.end(); ++iter) {
900
                    // alter the first ScanKey in original place
901
2
                    if (iter == fixed_value_set.begin()) {
902
2
                        _begin_scan_keys[i].add_value(
903
2
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
904
2
                        _end_scan_keys[i].add_value(
905
2
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
906
2
                    } // append follow ScanKey
907
0
                    else {
908
0
                        _begin_scan_keys.push_back(start_base_key_range);
909
0
                        _begin_scan_keys.back().add_value(
910
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
911
0
                        _end_scan_keys.push_back(end_base_key_range);
912
0
                        _end_scan_keys.back().add_value(
913
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
914
0
                    }
915
2
                }
916
917
2
                if (range.contain_null()) {
918
0
                    _begin_scan_keys.push_back(start_base_key_range);
919
0
                    _begin_scan_keys.back().add_null();
920
0
                    _end_scan_keys.push_back(end_base_key_range);
921
0
                    _end_scan_keys.back().add_null();
922
0
                }
923
2
            }
924
1
        }
925
926
3
        _begin_include = true;
927
3
        _end_include = true;
928
3
    } // Extend ScanKey with range value
929
55
    else {
930
55
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
55
        if (Compare::less(range.get_range_max_value(), range.get_range_min_value())) {
934
0
            CHECK(range.contain_null());
935
0
            if (_begin_scan_keys.empty()) {
936
0
                _begin_scan_keys.emplace_back();
937
0
                _begin_scan_keys.back().add_null();
938
0
                _end_scan_keys.emplace_back();
939
0
                _end_scan_keys.back().add_null();
940
0
            } else {
941
0
                for (int i = 0; i < _begin_scan_keys.size(); ++i) {
942
0
                    _begin_scan_keys[i].add_null();
943
0
                    _end_scan_keys[i].add_null();
944
0
                }
945
0
            }
946
55
        } else if (_begin_scan_keys.empty()) {
947
0
            _begin_scan_keys.emplace_back();
948
0
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
0
                                                      range.get_range_min_value(), range.scale()),
950
0
                                              range.contain_null());
951
0
            _end_scan_keys.emplace_back();
952
0
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
0
                    range.get_range_max_value(), range.scale()));
954
55
        } else {
955
340
            for (int i = 0; i < _begin_scan_keys.size(); ++i) {
956
285
                _begin_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
957
285
                                                      range.get_range_min_value(), range.scale()),
958
285
                                              range.contain_null());
959
285
            }
960
961
340
            for (int i = 0; i < _end_scan_keys.size(); ++i) {
962
285
                _end_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
963
285
                        range.get_range_max_value(), range.scale()));
964
285
            }
965
55
        }
966
55
        _begin_include = range.is_begin_include();
967
55
        _end_include = range.is_end_include();
968
55
    }
969
970
58
    return Status::OK();
971
220
}
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE5EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
39.4k
                                     bool* should_break) {
823
39.4k
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
39.4k
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
39.4k
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
39.4k
    if (range.is_empty_value_range()) {
829
0
        _begin_scan_keys.clear();
830
0
        _end_scan_keys.clear();
831
0
        return Status::OK();
832
0
    }
833
834
    // 2. stop extend ScanKey when it's already extend a range value
835
39.4k
    if (_has_range_value) {
836
0
        return Status::OK();
837
0
    }
838
839
    //if a column doesn't have any predicate, we will try converting the range to fixed values
840
39.4k
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
39.4k
    if (range.is_fixed_value_range()) {
842
1.81k
        if (range.get_fixed_value_size() > max_scan_key_num / scan_keys_size) {
843
25
            if (range.is_range_value_convertible()) {
844
25
                range.convert_to_range_value();
845
25
                *exact_value = false;
846
25
            } else {
847
0
                *should_break = true;
848
0
                return Status::OK();
849
0
            }
850
25
        }
851
37.6k
    } else {
852
37.6k
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
37.6k
            !range.is_reject_split_type()) {
854
36.9k
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
36.9k
                                                 _end_include);
856
857
36.9k
            if (!(*eos) &&
858
37.1k
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
37.1k
                                                 _end_include, max_scan_key_num)) {
860
36.4k
                _has_range_value = true;
861
36.4k
            }
862
36.9k
            return Status::OK();
863
36.9k
        }
864
37.6k
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
2.47k
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
1.78k
        if (_begin_scan_keys.empty()) {
870
1.66k
            auto fixed_value_set = range.get_fixed_value_set();
871
1.66k
            ConstIterator iter = fixed_value_set.begin();
872
873
3.64k
            for (; iter != fixed_value_set.end(); ++iter) {
874
1.98k
                _begin_scan_keys.emplace_back();
875
1.98k
                _begin_scan_keys.back().add_value(
876
1.98k
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
877
1.98k
                _end_scan_keys.emplace_back();
878
1.98k
                _end_scan_keys.back().add_value(
879
1.98k
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
880
1.98k
            }
881
882
1.66k
            if (range.contain_null()) {
883
0
                _begin_scan_keys.emplace_back();
884
0
                _begin_scan_keys.back().add_null();
885
0
                _end_scan_keys.emplace_back();
886
0
                _end_scan_keys.back().add_null();
887
0
            }
888
1.66k
        } // 3.1.2 produces the Cartesian product of ScanKey and fixed_value
889
128
        else {
890
128
            auto fixed_value_set = range.get_fixed_value_set();
891
128
            size_t original_key_range_size = _begin_scan_keys.size();
892
893
273
            for (int i = 0; i < original_key_range_size; ++i) {
894
145
                OlapTuple start_base_key_range = _begin_scan_keys[i];
895
145
                OlapTuple end_base_key_range = _end_scan_keys[i];
896
897
145
                ConstIterator iter = fixed_value_set.begin();
898
899
291
                for (; iter != fixed_value_set.end(); ++iter) {
900
                    // alter the first ScanKey in original place
901
146
                    if (iter == fixed_value_set.begin()) {
902
145
                        _begin_scan_keys[i].add_value(
903
145
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
904
145
                        _end_scan_keys[i].add_value(
905
145
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
906
145
                    } // append follow ScanKey
907
1
                    else {
908
1
                        _begin_scan_keys.push_back(start_base_key_range);
909
1
                        _begin_scan_keys.back().add_value(
910
1
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
911
1
                        _end_scan_keys.push_back(end_base_key_range);
912
1
                        _end_scan_keys.back().add_value(
913
1
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
914
1
                    }
915
146
                }
916
917
145
                if (range.contain_null()) {
918
0
                    _begin_scan_keys.push_back(start_base_key_range);
919
0
                    _begin_scan_keys.back().add_null();
920
0
                    _end_scan_keys.push_back(end_base_key_range);
921
0
                    _end_scan_keys.back().add_null();
922
0
                }
923
145
            }
924
128
        }
925
926
1.78k
        _begin_include = true;
927
1.78k
        _end_include = true;
928
1.78k
    } // Extend ScanKey with range value
929
689
    else {
930
689
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
689
        if (Compare::less(range.get_range_max_value(), range.get_range_min_value())) {
934
0
            CHECK(range.contain_null());
935
0
            if (_begin_scan_keys.empty()) {
936
0
                _begin_scan_keys.emplace_back();
937
0
                _begin_scan_keys.back().add_null();
938
0
                _end_scan_keys.emplace_back();
939
0
                _end_scan_keys.back().add_null();
940
0
            } else {
941
0
                for (int i = 0; i < _begin_scan_keys.size(); ++i) {
942
0
                    _begin_scan_keys[i].add_null();
943
0
                    _end_scan_keys[i].add_null();
944
0
                }
945
0
            }
946
689
        } else if (_begin_scan_keys.empty()) {
947
93
            _begin_scan_keys.emplace_back();
948
93
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
93
                                                      range.get_range_min_value(), range.scale()),
950
93
                                              range.contain_null());
951
93
            _end_scan_keys.emplace_back();
952
93
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
93
                    range.get_range_max_value(), range.scale()));
954
596
        } else {
955
4.39k
            for (int i = 0; i < _begin_scan_keys.size(); ++i) {
956
3.80k
                _begin_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
957
3.80k
                                                      range.get_range_min_value(), range.scale()),
958
3.80k
                                              range.contain_null());
959
3.80k
            }
960
961
4.38k
            for (int i = 0; i < _end_scan_keys.size(); ++i) {
962
3.79k
                _end_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
963
3.79k
                        range.get_range_max_value(), range.scale()));
964
3.79k
            }
965
596
        }
966
689
        _begin_include = range.is_begin_include();
967
689
        _end_include = range.is_end_include();
968
689
    }
969
970
2.47k
    return Status::OK();
971
39.4k
}
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE6EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
57.4k
                                     bool* should_break) {
823
57.4k
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
57.4k
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
57.4k
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
57.4k
    if (range.is_empty_value_range()) {
829
0
        _begin_scan_keys.clear();
830
0
        _end_scan_keys.clear();
831
0
        return Status::OK();
832
0
    }
833
834
    // 2. stop extend ScanKey when it's already extend a range value
835
57.4k
    if (_has_range_value) {
836
0
        return Status::OK();
837
0
    }
838
839
    //if a column doesn't have any predicate, we will try converting the range to fixed values
840
57.4k
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
57.4k
    if (range.is_fixed_value_range()) {
842
728
        if (range.get_fixed_value_size() > max_scan_key_num / scan_keys_size) {
843
0
            if (range.is_range_value_convertible()) {
844
0
                range.convert_to_range_value();
845
0
                *exact_value = false;
846
0
            } else {
847
0
                *should_break = true;
848
0
                return Status::OK();
849
0
            }
850
0
        }
851
56.7k
    } else {
852
56.7k
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
56.7k
            !range.is_reject_split_type()) {
854
56.3k
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
56.3k
                                                 _end_include);
856
857
56.3k
            if (!(*eos) &&
858
56.3k
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
56.3k
                                                 _end_include, max_scan_key_num)) {
860
56.1k
                _has_range_value = true;
861
56.1k
            }
862
56.3k
            return Status::OK();
863
56.3k
        }
864
56.7k
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
1.13k
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
728
        if (_begin_scan_keys.empty()) {
870
728
            auto fixed_value_set = range.get_fixed_value_set();
871
728
            ConstIterator iter = fixed_value_set.begin();
872
873
1.53k
            for (; iter != fixed_value_set.end(); ++iter) {
874
807
                _begin_scan_keys.emplace_back();
875
807
                _begin_scan_keys.back().add_value(
876
807
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
877
807
                _end_scan_keys.emplace_back();
878
807
                _end_scan_keys.back().add_value(
879
807
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
880
807
            }
881
882
728
            if (range.contain_null()) {
883
0
                _begin_scan_keys.emplace_back();
884
0
                _begin_scan_keys.back().add_null();
885
0
                _end_scan_keys.emplace_back();
886
0
                _end_scan_keys.back().add_null();
887
0
            }
888
728
        } // 3.1.2 produces the Cartesian product of ScanKey and fixed_value
889
18.4E
        else {
890
18.4E
            auto fixed_value_set = range.get_fixed_value_set();
891
18.4E
            size_t original_key_range_size = _begin_scan_keys.size();
892
893
18.4E
            for (int i = 0; i < original_key_range_size; ++i) {
894
0
                OlapTuple start_base_key_range = _begin_scan_keys[i];
895
0
                OlapTuple end_base_key_range = _end_scan_keys[i];
896
897
0
                ConstIterator iter = fixed_value_set.begin();
898
899
0
                for (; iter != fixed_value_set.end(); ++iter) {
900
                    // alter the first ScanKey in original place
901
0
                    if (iter == fixed_value_set.begin()) {
902
0
                        _begin_scan_keys[i].add_value(
903
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
904
0
                        _end_scan_keys[i].add_value(
905
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
906
0
                    } // append follow ScanKey
907
0
                    else {
908
0
                        _begin_scan_keys.push_back(start_base_key_range);
909
0
                        _begin_scan_keys.back().add_value(
910
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
911
0
                        _end_scan_keys.push_back(end_base_key_range);
912
0
                        _end_scan_keys.back().add_value(
913
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
914
0
                    }
915
0
                }
916
917
0
                if (range.contain_null()) {
918
0
                    _begin_scan_keys.push_back(start_base_key_range);
919
0
                    _begin_scan_keys.back().add_null();
920
0
                    _end_scan_keys.push_back(end_base_key_range);
921
0
                    _end_scan_keys.back().add_null();
922
0
                }
923
0
            }
924
18.4E
        }
925
926
727
        _begin_include = true;
927
727
        _end_include = true;
928
727
    } // Extend ScanKey with range value
929
404
    else {
930
404
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
404
        if (Compare::less(range.get_range_max_value(), range.get_range_min_value())) {
934
0
            CHECK(range.contain_null());
935
0
            if (_begin_scan_keys.empty()) {
936
0
                _begin_scan_keys.emplace_back();
937
0
                _begin_scan_keys.back().add_null();
938
0
                _end_scan_keys.emplace_back();
939
0
                _end_scan_keys.back().add_null();
940
0
            } else {
941
0
                for (int i = 0; i < _begin_scan_keys.size(); ++i) {
942
0
                    _begin_scan_keys[i].add_null();
943
0
                    _end_scan_keys[i].add_null();
944
0
                }
945
0
            }
946
404
        } else if (_begin_scan_keys.empty()) {
947
20
            _begin_scan_keys.emplace_back();
948
20
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
20
                                                      range.get_range_min_value(), range.scale()),
950
20
                                              range.contain_null());
951
20
            _end_scan_keys.emplace_back();
952
20
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
20
                    range.get_range_max_value(), range.scale()));
954
384
        } else {
955
1.10k
            for (int i = 0; i < _begin_scan_keys.size(); ++i) {
956
718
                _begin_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
957
718
                                                      range.get_range_min_value(), range.scale()),
958
718
                                              range.contain_null());
959
718
            }
960
961
1.10k
            for (int i = 0; i < _end_scan_keys.size(); ++i) {
962
722
                _end_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
963
722
                        range.get_range_max_value(), range.scale()));
964
722
            }
965
384
        }
966
404
        _begin_include = range.is_begin_include();
967
404
        _end_include = range.is_end_include();
968
404
    }
969
970
1.13k
    return Status::OK();
971
57.4k
}
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE7EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
3.60k
                                     bool* should_break) {
823
3.60k
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
3.60k
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
3.60k
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
3.60k
    if (range.is_empty_value_range()) {
829
0
        _begin_scan_keys.clear();
830
0
        _end_scan_keys.clear();
831
0
        return Status::OK();
832
0
    }
833
834
    // 2. stop extend ScanKey when it's already extend a range value
835
3.60k
    if (_has_range_value) {
836
0
        return Status::OK();
837
0
    }
838
839
    //if a column doesn't have any predicate, we will try converting the range to fixed values
840
3.60k
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
3.60k
    if (range.is_fixed_value_range()) {
842
138
        if (range.get_fixed_value_size() > max_scan_key_num / scan_keys_size) {
843
0
            if (range.is_range_value_convertible()) {
844
0
                range.convert_to_range_value();
845
0
                *exact_value = false;
846
0
            } else {
847
0
                *should_break = true;
848
0
                return Status::OK();
849
0
            }
850
0
        }
851
3.46k
    } else {
852
3.46k
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
3.46k
            !range.is_reject_split_type()) {
854
0
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
0
                                                 _end_include);
856
857
0
            if (!(*eos) &&
858
0
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
0
                                                 _end_include, max_scan_key_num)) {
860
0
                _has_range_value = true;
861
0
            }
862
0
            return Status::OK();
863
0
        }
864
3.46k
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
3.60k
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
138
        if (_begin_scan_keys.empty()) {
870
138
            auto fixed_value_set = range.get_fixed_value_set();
871
138
            ConstIterator iter = fixed_value_set.begin();
872
873
297
            for (; iter != fixed_value_set.end(); ++iter) {
874
159
                _begin_scan_keys.emplace_back();
875
159
                _begin_scan_keys.back().add_value(
876
159
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
877
159
                _end_scan_keys.emplace_back();
878
159
                _end_scan_keys.back().add_value(
879
159
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
880
159
            }
881
882
138
            if (range.contain_null()) {
883
0
                _begin_scan_keys.emplace_back();
884
0
                _begin_scan_keys.back().add_null();
885
0
                _end_scan_keys.emplace_back();
886
0
                _end_scan_keys.back().add_null();
887
0
            }
888
138
        } // 3.1.2 produces the Cartesian product of ScanKey and fixed_value
889
0
        else {
890
0
            auto fixed_value_set = range.get_fixed_value_set();
891
0
            size_t original_key_range_size = _begin_scan_keys.size();
892
893
0
            for (int i = 0; i < original_key_range_size; ++i) {
894
0
                OlapTuple start_base_key_range = _begin_scan_keys[i];
895
0
                OlapTuple end_base_key_range = _end_scan_keys[i];
896
897
0
                ConstIterator iter = fixed_value_set.begin();
898
899
0
                for (; iter != fixed_value_set.end(); ++iter) {
900
                    // alter the first ScanKey in original place
901
0
                    if (iter == fixed_value_set.begin()) {
902
0
                        _begin_scan_keys[i].add_value(
903
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
904
0
                        _end_scan_keys[i].add_value(
905
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
906
0
                    } // append follow ScanKey
907
0
                    else {
908
0
                        _begin_scan_keys.push_back(start_base_key_range);
909
0
                        _begin_scan_keys.back().add_value(
910
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
911
0
                        _end_scan_keys.push_back(end_base_key_range);
912
0
                        _end_scan_keys.back().add_value(
913
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
914
0
                    }
915
0
                }
916
917
0
                if (range.contain_null()) {
918
0
                    _begin_scan_keys.push_back(start_base_key_range);
919
0
                    _begin_scan_keys.back().add_null();
920
0
                    _end_scan_keys.push_back(end_base_key_range);
921
0
                    _end_scan_keys.back().add_null();
922
0
                }
923
0
            }
924
0
        }
925
926
138
        _begin_include = true;
927
138
        _end_include = true;
928
138
    } // Extend ScanKey with range value
929
3.46k
    else {
930
3.46k
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
3.46k
        if (Compare::less(range.get_range_max_value(), range.get_range_min_value())) {
934
0
            CHECK(range.contain_null());
935
0
            if (_begin_scan_keys.empty()) {
936
0
                _begin_scan_keys.emplace_back();
937
0
                _begin_scan_keys.back().add_null();
938
0
                _end_scan_keys.emplace_back();
939
0
                _end_scan_keys.back().add_null();
940
0
            } else {
941
0
                for (int i = 0; i < _begin_scan_keys.size(); ++i) {
942
0
                    _begin_scan_keys[i].add_null();
943
0
                    _end_scan_keys[i].add_null();
944
0
                }
945
0
            }
946
3.46k
        } else if (_begin_scan_keys.empty()) {
947
3.41k
            _begin_scan_keys.emplace_back();
948
3.41k
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
3.41k
                                                      range.get_range_min_value(), range.scale()),
950
3.41k
                                              range.contain_null());
951
3.41k
            _end_scan_keys.emplace_back();
952
3.41k
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
3.41k
                    range.get_range_max_value(), range.scale()));
954
3.41k
        } else {
955
130
            for (int i = 0; i < _begin_scan_keys.size(); ++i) {
956
80
                _begin_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
957
80
                                                      range.get_range_min_value(), range.scale()),
958
80
                                              range.contain_null());
959
80
            }
960
961
130
            for (int i = 0; i < _end_scan_keys.size(); ++i) {
962
80
                _end_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
963
80
                        range.get_range_max_value(), range.scale()));
964
80
            }
965
50
        }
966
3.46k
        _begin_include = range.is_begin_include();
967
3.46k
        _end_include = range.is_end_include();
968
3.46k
    }
969
970
3.60k
    return Status::OK();
971
3.60k
}
Unexecuted instantiation: _ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE8EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Unexecuted instantiation: _ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE9EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Unexecuted instantiation: _ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE36EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE37EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
1
                                     bool* should_break) {
823
1
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
1
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
1
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
1
    if (range.is_empty_value_range()) {
829
0
        _begin_scan_keys.clear();
830
0
        _end_scan_keys.clear();
831
0
        return Status::OK();
832
0
    }
833
834
    // 2. stop extend ScanKey when it's already extend a range value
835
1
    if (_has_range_value) {
836
0
        return Status::OK();
837
0
    }
838
839
    //if a column doesn't have any predicate, we will try converting the range to fixed values
840
1
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
1
    if (range.is_fixed_value_range()) {
842
0
        if (range.get_fixed_value_size() > max_scan_key_num / scan_keys_size) {
843
0
            if (range.is_range_value_convertible()) {
844
0
                range.convert_to_range_value();
845
0
                *exact_value = false;
846
0
            } else {
847
0
                *should_break = true;
848
0
                return Status::OK();
849
0
            }
850
0
        }
851
1
    } else {
852
1
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
1
            !range.is_reject_split_type()) {
854
0
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
0
                                                 _end_include);
856
857
0
            if (!(*eos) &&
858
0
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
0
                                                 _end_include, max_scan_key_num)) {
860
0
                _has_range_value = true;
861
0
            }
862
0
            return Status::OK();
863
0
        }
864
1
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
1
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
0
        if (_begin_scan_keys.empty()) {
870
0
            auto fixed_value_set = range.get_fixed_value_set();
871
0
            ConstIterator iter = fixed_value_set.begin();
872
873
0
            for (; iter != fixed_value_set.end(); ++iter) {
874
0
                _begin_scan_keys.emplace_back();
875
0
                _begin_scan_keys.back().add_value(
876
0
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
877
0
                _end_scan_keys.emplace_back();
878
0
                _end_scan_keys.back().add_value(
879
0
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
880
0
            }
881
882
0
            if (range.contain_null()) {
883
0
                _begin_scan_keys.emplace_back();
884
0
                _begin_scan_keys.back().add_null();
885
0
                _end_scan_keys.emplace_back();
886
0
                _end_scan_keys.back().add_null();
887
0
            }
888
0
        } // 3.1.2 produces the Cartesian product of ScanKey and fixed_value
889
0
        else {
890
0
            auto fixed_value_set = range.get_fixed_value_set();
891
0
            size_t original_key_range_size = _begin_scan_keys.size();
892
893
0
            for (int i = 0; i < original_key_range_size; ++i) {
894
0
                OlapTuple start_base_key_range = _begin_scan_keys[i];
895
0
                OlapTuple end_base_key_range = _end_scan_keys[i];
896
897
0
                ConstIterator iter = fixed_value_set.begin();
898
899
0
                for (; iter != fixed_value_set.end(); ++iter) {
900
                    // alter the first ScanKey in original place
901
0
                    if (iter == fixed_value_set.begin()) {
902
0
                        _begin_scan_keys[i].add_value(
903
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
904
0
                        _end_scan_keys[i].add_value(
905
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
906
0
                    } // append follow ScanKey
907
0
                    else {
908
0
                        _begin_scan_keys.push_back(start_base_key_range);
909
0
                        _begin_scan_keys.back().add_value(
910
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
911
0
                        _end_scan_keys.push_back(end_base_key_range);
912
0
                        _end_scan_keys.back().add_value(
913
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
914
0
                    }
915
0
                }
916
917
0
                if (range.contain_null()) {
918
0
                    _begin_scan_keys.push_back(start_base_key_range);
919
0
                    _begin_scan_keys.back().add_null();
920
0
                    _end_scan_keys.push_back(end_base_key_range);
921
0
                    _end_scan_keys.back().add_null();
922
0
                }
923
0
            }
924
0
        }
925
926
0
        _begin_include = true;
927
0
        _end_include = true;
928
0
    } // Extend ScanKey with range value
929
1
    else {
930
1
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
1
        if (Compare::less(range.get_range_max_value(), range.get_range_min_value())) {
934
0
            CHECK(range.contain_null());
935
0
            if (_begin_scan_keys.empty()) {
936
0
                _begin_scan_keys.emplace_back();
937
0
                _begin_scan_keys.back().add_null();
938
0
                _end_scan_keys.emplace_back();
939
0
                _end_scan_keys.back().add_null();
940
0
            } else {
941
0
                for (int i = 0; i < _begin_scan_keys.size(); ++i) {
942
0
                    _begin_scan_keys[i].add_null();
943
0
                    _end_scan_keys[i].add_null();
944
0
                }
945
0
            }
946
1
        } else if (_begin_scan_keys.empty()) {
947
0
            _begin_scan_keys.emplace_back();
948
0
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
0
                                                      range.get_range_min_value(), range.scale()),
950
0
                                              range.contain_null());
951
0
            _end_scan_keys.emplace_back();
952
0
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
0
                    range.get_range_max_value(), range.scale()));
954
1
        } else {
955
2
            for (int i = 0; i < _begin_scan_keys.size(); ++i) {
956
1
                _begin_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
957
1
                                                      range.get_range_min_value(), range.scale()),
958
1
                                              range.contain_null());
959
1
            }
960
961
2
            for (int i = 0; i < _end_scan_keys.size(); ++i) {
962
1
                _end_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
963
1
                        range.get_range_max_value(), range.scale()));
964
1
            }
965
1
        }
966
1
        _begin_include = range.is_begin_include();
967
1
        _end_include = range.is_end_include();
968
1
    }
969
970
1
    return Status::OK();
971
1
}
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE15EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
178
                                     bool* should_break) {
823
178
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
178
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
178
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
178
    if (range.is_empty_value_range()) {
829
0
        _begin_scan_keys.clear();
830
0
        _end_scan_keys.clear();
831
0
        return Status::OK();
832
0
    }
833
834
    // 2. stop extend ScanKey when it's already extend a range value
835
178
    if (_has_range_value) {
836
0
        return Status::OK();
837
0
    }
838
839
    //if a column doesn't have any predicate, we will try converting the range to fixed values
840
178
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
178
    if (range.is_fixed_value_range()) {
842
15
        if (range.get_fixed_value_size() > max_scan_key_num / scan_keys_size) {
843
1
            if (range.is_range_value_convertible()) {
844
1
                range.convert_to_range_value();
845
1
                *exact_value = false;
846
1
            } else {
847
0
                *should_break = true;
848
0
                return Status::OK();
849
0
            }
850
1
        }
851
163
    } else {
852
163
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
163
            !range.is_reject_split_type()) {
854
0
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
0
                                                 _end_include);
856
857
0
            if (!(*eos) &&
858
0
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
0
                                                 _end_include, max_scan_key_num)) {
860
0
                _has_range_value = true;
861
0
            }
862
0
            return Status::OK();
863
0
        }
864
163
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
178
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
14
        if (_begin_scan_keys.empty()) {
870
13
            auto fixed_value_set = range.get_fixed_value_set();
871
13
            ConstIterator iter = fixed_value_set.begin();
872
873
38
            for (; iter != fixed_value_set.end(); ++iter) {
874
25
                _begin_scan_keys.emplace_back();
875
25
                _begin_scan_keys.back().add_value(
876
25
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
877
25
                _end_scan_keys.emplace_back();
878
25
                _end_scan_keys.back().add_value(
879
25
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
880
25
            }
881
882
13
            if (range.contain_null()) {
883
0
                _begin_scan_keys.emplace_back();
884
0
                _begin_scan_keys.back().add_null();
885
0
                _end_scan_keys.emplace_back();
886
0
                _end_scan_keys.back().add_null();
887
0
            }
888
13
        } // 3.1.2 produces the Cartesian product of ScanKey and fixed_value
889
1
        else {
890
1
            auto fixed_value_set = range.get_fixed_value_set();
891
1
            size_t original_key_range_size = _begin_scan_keys.size();
892
893
2
            for (int i = 0; i < original_key_range_size; ++i) {
894
1
                OlapTuple start_base_key_range = _begin_scan_keys[i];
895
1
                OlapTuple end_base_key_range = _end_scan_keys[i];
896
897
1
                ConstIterator iter = fixed_value_set.begin();
898
899
2
                for (; iter != fixed_value_set.end(); ++iter) {
900
                    // alter the first ScanKey in original place
901
1
                    if (iter == fixed_value_set.begin()) {
902
1
                        _begin_scan_keys[i].add_value(
903
1
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
904
1
                        _end_scan_keys[i].add_value(
905
1
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
906
1
                    } // append follow ScanKey
907
0
                    else {
908
0
                        _begin_scan_keys.push_back(start_base_key_range);
909
0
                        _begin_scan_keys.back().add_value(
910
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
911
0
                        _end_scan_keys.push_back(end_base_key_range);
912
0
                        _end_scan_keys.back().add_value(
913
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
914
0
                    }
915
1
                }
916
917
1
                if (range.contain_null()) {
918
0
                    _begin_scan_keys.push_back(start_base_key_range);
919
0
                    _begin_scan_keys.back().add_null();
920
0
                    _end_scan_keys.push_back(end_base_key_range);
921
0
                    _end_scan_keys.back().add_null();
922
0
                }
923
1
            }
924
1
        }
925
926
14
        _begin_include = true;
927
14
        _end_include = true;
928
14
    } // Extend ScanKey with range value
929
164
    else {
930
164
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
164
        if (Compare::less(range.get_range_max_value(), range.get_range_min_value())) {
934
1
            CHECK(range.contain_null());
935
1
            if (_begin_scan_keys.empty()) {
936
1
                _begin_scan_keys.emplace_back();
937
1
                _begin_scan_keys.back().add_null();
938
1
                _end_scan_keys.emplace_back();
939
1
                _end_scan_keys.back().add_null();
940
1
            } else {
941
0
                for (int i = 0; i < _begin_scan_keys.size(); ++i) {
942
0
                    _begin_scan_keys[i].add_null();
943
0
                    _end_scan_keys[i].add_null();
944
0
                }
945
0
            }
946
163
        } else if (_begin_scan_keys.empty()) {
947
158
            _begin_scan_keys.emplace_back();
948
158
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
158
                                                      range.get_range_min_value(), range.scale()),
950
158
                                              range.contain_null());
951
158
            _end_scan_keys.emplace_back();
952
158
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
158
                    range.get_range_max_value(), range.scale()));
954
158
        } else {
955
104
            for (int i = 0; i < _begin_scan_keys.size(); ++i) {
956
99
                _begin_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
957
99
                                                      range.get_range_min_value(), range.scale()),
958
99
                                              range.contain_null());
959
99
            }
960
961
104
            for (int i = 0; i < _end_scan_keys.size(); ++i) {
962
99
                _end_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
963
99
                        range.get_range_max_value(), range.scale()));
964
99
            }
965
5
        }
966
164
        _begin_include = range.is_begin_include();
967
164
        _end_include = range.is_end_include();
968
164
    }
969
970
178
    return Status::OK();
971
178
}
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE10EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
343k
                                     bool* should_break) {
823
343k
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
343k
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
343k
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
343k
    if (range.is_empty_value_range()) {
829
0
        _begin_scan_keys.clear();
830
0
        _end_scan_keys.clear();
831
0
        return Status::OK();
832
0
    }
833
834
    // 2. stop extend ScanKey when it's already extend a range value
835
343k
    if (_has_range_value) {
836
0
        return Status::OK();
837
0
    }
838
839
    //if a column doesn't have any predicate, we will try converting the range to fixed values
840
343k
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
343k
    if (range.is_fixed_value_range()) {
842
251k
        if (range.get_fixed_value_size() > max_scan_key_num / scan_keys_size) {
843
2
            if (range.is_range_value_convertible()) {
844
2
                range.convert_to_range_value();
845
2
                *exact_value = false;
846
2
            } else {
847
0
                *should_break = true;
848
0
                return Status::OK();
849
0
            }
850
2
        }
851
251k
    } else {
852
92.6k
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
92.6k
            !range.is_reject_split_type()) {
854
0
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
0
                                                 _end_include);
856
857
0
            if (!(*eos) &&
858
0
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
0
                                                 _end_include, max_scan_key_num)) {
860
0
                _has_range_value = true;
861
0
            }
862
0
            return Status::OK();
863
0
        }
864
92.6k
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
343k
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
250k
        if (_begin_scan_keys.empty()) {
870
83.6k
            auto fixed_value_set = range.get_fixed_value_set();
871
83.6k
            ConstIterator iter = fixed_value_set.begin();
872
873
167k
            for (; iter != fixed_value_set.end(); ++iter) {
874
83.8k
                _begin_scan_keys.emplace_back();
875
83.8k
                _begin_scan_keys.back().add_value(
876
83.8k
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
877
83.8k
                _end_scan_keys.emplace_back();
878
83.8k
                _end_scan_keys.back().add_value(
879
83.8k
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
880
83.8k
            }
881
882
83.6k
            if (range.contain_null()) {
883
0
                _begin_scan_keys.emplace_back();
884
0
                _begin_scan_keys.back().add_null();
885
0
                _end_scan_keys.emplace_back();
886
0
                _end_scan_keys.back().add_null();
887
0
            }
888
83.6k
        } // 3.1.2 produces the Cartesian product of ScanKey and fixed_value
889
167k
        else {
890
167k
            auto fixed_value_set = range.get_fixed_value_set();
891
167k
            size_t original_key_range_size = _begin_scan_keys.size();
892
893
334k
            for (int i = 0; i < original_key_range_size; ++i) {
894
167k
                OlapTuple start_base_key_range = _begin_scan_keys[i];
895
167k
                OlapTuple end_base_key_range = _end_scan_keys[i];
896
897
167k
                ConstIterator iter = fixed_value_set.begin();
898
899
334k
                for (; iter != fixed_value_set.end(); ++iter) {
900
                    // alter the first ScanKey in original place
901
167k
                    if (iter == fixed_value_set.begin()) {
902
167k
                        _begin_scan_keys[i].add_value(
903
167k
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
904
167k
                        _end_scan_keys[i].add_value(
905
167k
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
906
167k
                    } // append follow ScanKey
907
151
                    else {
908
151
                        _begin_scan_keys.push_back(start_base_key_range);
909
151
                        _begin_scan_keys.back().add_value(
910
151
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
911
151
                        _end_scan_keys.push_back(end_base_key_range);
912
151
                        _end_scan_keys.back().add_value(
913
151
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
914
151
                    }
915
167k
                }
916
917
167k
                if (range.contain_null()) {
918
0
                    _begin_scan_keys.push_back(start_base_key_range);
919
0
                    _begin_scan_keys.back().add_null();
920
0
                    _end_scan_keys.push_back(end_base_key_range);
921
0
                    _end_scan_keys.back().add_null();
922
0
                }
923
167k
            }
924
167k
        }
925
926
250k
        _begin_include = true;
927
250k
        _end_include = true;
928
250k
    } // Extend ScanKey with range value
929
93.0k
    else {
930
93.0k
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
93.0k
        if (Compare::less(range.get_range_max_value(), range.get_range_min_value())) {
934
0
            CHECK(range.contain_null());
935
0
            if (_begin_scan_keys.empty()) {
936
0
                _begin_scan_keys.emplace_back();
937
0
                _begin_scan_keys.back().add_null();
938
0
                _end_scan_keys.emplace_back();
939
0
                _end_scan_keys.back().add_null();
940
0
            } else {
941
0
                for (int i = 0; i < _begin_scan_keys.size(); ++i) {
942
0
                    _begin_scan_keys[i].add_null();
943
0
                    _end_scan_keys[i].add_null();
944
0
                }
945
0
            }
946
93.0k
        } else if (_begin_scan_keys.empty()) {
947
7.78k
            _begin_scan_keys.emplace_back();
948
7.78k
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
7.78k
                                                      range.get_range_min_value(), range.scale()),
950
7.78k
                                              range.contain_null());
951
7.78k
            _end_scan_keys.emplace_back();
952
7.78k
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
7.78k
                    range.get_range_max_value(), range.scale()));
954
85.2k
        } else {
955
170k
            for (int i = 0; i < _begin_scan_keys.size(); ++i) {
956
84.9k
                _begin_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
957
84.9k
                                                      range.get_range_min_value(), range.scale()),
958
84.9k
                                              range.contain_null());
959
84.9k
            }
960
961
170k
            for (int i = 0; i < _end_scan_keys.size(); ++i) {
962
85.0k
                _end_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
963
85.0k
                        range.get_range_max_value(), range.scale()));
964
85.0k
            }
965
85.2k
        }
966
93.0k
        _begin_include = range.is_begin_include();
967
93.0k
        _end_include = range.is_end_include();
968
93.0k
    }
969
970
343k
    return Status::OK();
971
343k
}
Unexecuted instantiation: _ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE23EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Unexecuted instantiation: _ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE11EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE25EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
2.12k
                                     bool* should_break) {
823
2.12k
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
2.12k
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
2.12k
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
2.12k
    if (range.is_empty_value_range()) {
829
0
        _begin_scan_keys.clear();
830
0
        _end_scan_keys.clear();
831
0
        return Status::OK();
832
0
    }
833
834
    // 2. stop extend ScanKey when it's already extend a range value
835
2.12k
    if (_has_range_value) {
836
0
        return Status::OK();
837
0
    }
838
839
    //if a column doesn't have any predicate, we will try converting the range to fixed values
840
2.12k
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
2.12k
    if (range.is_fixed_value_range()) {
842
347
        if (range.get_fixed_value_size() > max_scan_key_num / scan_keys_size) {
843
0
            if (range.is_range_value_convertible()) {
844
0
                range.convert_to_range_value();
845
0
                *exact_value = false;
846
0
            } else {
847
0
                *should_break = true;
848
0
                return Status::OK();
849
0
            }
850
0
        }
851
1.77k
    } else {
852
1.77k
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
1.77k
            !range.is_reject_split_type()) {
854
1.69k
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
1.69k
                                                 _end_include);
856
857
1.69k
            if (!(*eos) &&
858
1.70k
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
1.70k
                                                 _end_include, max_scan_key_num)) {
860
1.56k
                _has_range_value = true;
861
1.56k
            }
862
1.69k
            return Status::OK();
863
1.69k
        }
864
1.77k
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
421
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
345
        if (_begin_scan_keys.empty()) {
870
343
            auto fixed_value_set = range.get_fixed_value_set();
871
343
            ConstIterator iter = fixed_value_set.begin();
872
873
741
            for (; iter != fixed_value_set.end(); ++iter) {
874
398
                _begin_scan_keys.emplace_back();
875
398
                _begin_scan_keys.back().add_value(
876
398
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
877
398
                _end_scan_keys.emplace_back();
878
398
                _end_scan_keys.back().add_value(
879
398
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
880
398
            }
881
882
343
            if (range.contain_null()) {
883
0
                _begin_scan_keys.emplace_back();
884
0
                _begin_scan_keys.back().add_null();
885
0
                _end_scan_keys.emplace_back();
886
0
                _end_scan_keys.back().add_null();
887
0
            }
888
343
        } // 3.1.2 produces the Cartesian product of ScanKey and fixed_value
889
2
        else {
890
2
            auto fixed_value_set = range.get_fixed_value_set();
891
2
            size_t original_key_range_size = _begin_scan_keys.size();
892
893
4
            for (int i = 0; i < original_key_range_size; ++i) {
894
2
                OlapTuple start_base_key_range = _begin_scan_keys[i];
895
2
                OlapTuple end_base_key_range = _end_scan_keys[i];
896
897
2
                ConstIterator iter = fixed_value_set.begin();
898
899
4
                for (; iter != fixed_value_set.end(); ++iter) {
900
                    // alter the first ScanKey in original place
901
2
                    if (iter == fixed_value_set.begin()) {
902
2
                        _begin_scan_keys[i].add_value(
903
2
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
904
2
                        _end_scan_keys[i].add_value(
905
2
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
906
2
                    } // append follow ScanKey
907
0
                    else {
908
0
                        _begin_scan_keys.push_back(start_base_key_range);
909
0
                        _begin_scan_keys.back().add_value(
910
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
911
0
                        _end_scan_keys.push_back(end_base_key_range);
912
0
                        _end_scan_keys.back().add_value(
913
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
914
0
                    }
915
2
                }
916
917
2
                if (range.contain_null()) {
918
0
                    _begin_scan_keys.push_back(start_base_key_range);
919
0
                    _begin_scan_keys.back().add_null();
920
0
                    _end_scan_keys.push_back(end_base_key_range);
921
0
                    _end_scan_keys.back().add_null();
922
0
                }
923
2
            }
924
2
        }
925
926
345
        _begin_include = true;
927
345
        _end_include = true;
928
345
    } // Extend ScanKey with range value
929
76
    else {
930
76
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
76
        if (Compare::less(range.get_range_max_value(), range.get_range_min_value())) {
934
0
            CHECK(range.contain_null());
935
0
            if (_begin_scan_keys.empty()) {
936
0
                _begin_scan_keys.emplace_back();
937
0
                _begin_scan_keys.back().add_null();
938
0
                _end_scan_keys.emplace_back();
939
0
                _end_scan_keys.back().add_null();
940
0
            } else {
941
0
                for (int i = 0; i < _begin_scan_keys.size(); ++i) {
942
0
                    _begin_scan_keys[i].add_null();
943
0
                    _end_scan_keys[i].add_null();
944
0
                }
945
0
            }
946
76
        } else if (_begin_scan_keys.empty()) {
947
0
            _begin_scan_keys.emplace_back();
948
0
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
0
                                                      range.get_range_min_value(), range.scale()),
950
0
                                              range.contain_null());
951
0
            _end_scan_keys.emplace_back();
952
0
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
0
                    range.get_range_max_value(), range.scale()));
954
76
        } else {
955
159
            for (int i = 0; i < _begin_scan_keys.size(); ++i) {
956
83
                _begin_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
957
83
                                                      range.get_range_min_value(), range.scale()),
958
83
                                              range.contain_null());
959
83
            }
960
961
159
            for (int i = 0; i < _end_scan_keys.size(); ++i) {
962
83
                _end_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
963
83
                        range.get_range_max_value(), range.scale()));
964
83
            }
965
76
        }
966
76
        _begin_include = range.is_begin_include();
967
76
        _end_include = range.is_end_include();
968
76
    }
969
970
421
    return Status::OK();
971
2.12k
}
Unexecuted instantiation: _ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE12EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE26EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
977
                                     bool* should_break) {
823
977
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
977
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
977
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
977
    if (range.is_empty_value_range()) {
829
0
        _begin_scan_keys.clear();
830
0
        _end_scan_keys.clear();
831
0
        return Status::OK();
832
0
    }
833
834
    // 2. stop extend ScanKey when it's already extend a range value
835
977
    if (_has_range_value) {
836
0
        return Status::OK();
837
0
    }
838
839
    //if a column doesn't have any predicate, we will try converting the range to fixed values
840
977
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
977
    if (range.is_fixed_value_range()) {
842
19
        if (range.get_fixed_value_size() > max_scan_key_num / scan_keys_size) {
843
0
            if (range.is_range_value_convertible()) {
844
0
                range.convert_to_range_value();
845
0
                *exact_value = false;
846
0
            } else {
847
0
                *should_break = true;
848
0
                return Status::OK();
849
0
            }
850
0
        }
851
958
    } else {
852
958
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
958
            !range.is_reject_split_type()) {
854
0
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
0
                                                 _end_include);
856
857
0
            if (!(*eos) &&
858
0
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
0
                                                 _end_include, max_scan_key_num)) {
860
0
                _has_range_value = true;
861
0
            }
862
0
            return Status::OK();
863
0
        }
864
958
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
977
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
19
        if (_begin_scan_keys.empty()) {
870
17
            auto fixed_value_set = range.get_fixed_value_set();
871
17
            ConstIterator iter = fixed_value_set.begin();
872
873
35
            for (; iter != fixed_value_set.end(); ++iter) {
874
18
                _begin_scan_keys.emplace_back();
875
18
                _begin_scan_keys.back().add_value(
876
18
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
877
18
                _end_scan_keys.emplace_back();
878
18
                _end_scan_keys.back().add_value(
879
18
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
880
18
            }
881
882
17
            if (range.contain_null()) {
883
0
                _begin_scan_keys.emplace_back();
884
0
                _begin_scan_keys.back().add_null();
885
0
                _end_scan_keys.emplace_back();
886
0
                _end_scan_keys.back().add_null();
887
0
            }
888
17
        } // 3.1.2 produces the Cartesian product of ScanKey and fixed_value
889
2
        else {
890
2
            auto fixed_value_set = range.get_fixed_value_set();
891
2
            size_t original_key_range_size = _begin_scan_keys.size();
892
893
6
            for (int i = 0; i < original_key_range_size; ++i) {
894
4
                OlapTuple start_base_key_range = _begin_scan_keys[i];
895
4
                OlapTuple end_base_key_range = _end_scan_keys[i];
896
897
4
                ConstIterator iter = fixed_value_set.begin();
898
899
8
                for (; iter != fixed_value_set.end(); ++iter) {
900
                    // alter the first ScanKey in original place
901
4
                    if (iter == fixed_value_set.begin()) {
902
4
                        _begin_scan_keys[i].add_value(
903
4
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
904
4
                        _end_scan_keys[i].add_value(
905
4
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
906
4
                    } // append follow ScanKey
907
0
                    else {
908
0
                        _begin_scan_keys.push_back(start_base_key_range);
909
0
                        _begin_scan_keys.back().add_value(
910
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
911
0
                        _end_scan_keys.push_back(end_base_key_range);
912
0
                        _end_scan_keys.back().add_value(
913
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
914
0
                    }
915
4
                }
916
917
4
                if (range.contain_null()) {
918
0
                    _begin_scan_keys.push_back(start_base_key_range);
919
0
                    _begin_scan_keys.back().add_null();
920
0
                    _end_scan_keys.push_back(end_base_key_range);
921
0
                    _end_scan_keys.back().add_null();
922
0
                }
923
4
            }
924
2
        }
925
926
19
        _begin_include = true;
927
19
        _end_include = true;
928
19
    } // Extend ScanKey with range value
929
958
    else {
930
958
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
958
        if (Compare::less(range.get_range_max_value(), range.get_range_min_value())) {
934
0
            CHECK(range.contain_null());
935
0
            if (_begin_scan_keys.empty()) {
936
0
                _begin_scan_keys.emplace_back();
937
0
                _begin_scan_keys.back().add_null();
938
0
                _end_scan_keys.emplace_back();
939
0
                _end_scan_keys.back().add_null();
940
0
            } else {
941
0
                for (int i = 0; i < _begin_scan_keys.size(); ++i) {
942
0
                    _begin_scan_keys[i].add_null();
943
0
                    _end_scan_keys[i].add_null();
944
0
                }
945
0
            }
946
958
        } else if (_begin_scan_keys.empty()) {
947
956
            _begin_scan_keys.emplace_back();
948
956
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
956
                                                      range.get_range_min_value(), range.scale()),
950
956
                                              range.contain_null());
951
956
            _end_scan_keys.emplace_back();
952
956
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
956
                    range.get_range_max_value(), range.scale()));
954
956
        } else {
955
4
            for (int i = 0; i < _begin_scan_keys.size(); ++i) {
956
2
                _begin_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
957
2
                                                      range.get_range_min_value(), range.scale()),
958
2
                                              range.contain_null());
959
2
            }
960
961
4
            for (int i = 0; i < _end_scan_keys.size(); ++i) {
962
2
                _end_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
963
2
                        range.get_range_max_value(), range.scale()));
964
2
            }
965
2
        }
966
958
        _begin_include = range.is_begin_include();
967
958
        _end_include = range.is_end_include();
968
958
    }
969
970
977
    return Status::OK();
971
977
}
Unexecuted instantiation: _ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE42EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Unexecuted instantiation: _ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE20EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE2EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
1.36k
                                     bool* should_break) {
823
1.36k
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
1.36k
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
1.36k
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
1.36k
    if (range.is_empty_value_range()) {
829
0
        _begin_scan_keys.clear();
830
0
        _end_scan_keys.clear();
831
0
        return Status::OK();
832
0
    }
833
834
    // 2. stop extend ScanKey when it's already extend a range value
835
1.36k
    if (_has_range_value) {
836
0
        return Status::OK();
837
0
    }
838
839
    //if a column doesn't have any predicate, we will try converting the range to fixed values
840
18.4E
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
1.36k
    if (range.is_fixed_value_range()) {
842
4
        if (range.get_fixed_value_size() > max_scan_key_num / scan_keys_size) {
843
1
            if (range.is_range_value_convertible()) {
844
0
                range.convert_to_range_value();
845
0
                *exact_value = false;
846
1
            } else {
847
1
                *should_break = true;
848
1
                return Status::OK();
849
1
            }
850
1
        }
851
1.35k
    } else {
852
1.35k
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
1.35k
            !range.is_reject_split_type()) {
854
0
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
0
                                                 _end_include);
856
857
0
            if (!(*eos) &&
858
0
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
0
                                                 _end_include, max_scan_key_num)) {
860
0
                _has_range_value = true;
861
0
            }
862
0
            return Status::OK();
863
0
        }
864
1.35k
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
1.36k
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
3
        if (_begin_scan_keys.empty()) {
870
3
            auto fixed_value_set = range.get_fixed_value_set();
871
3
            ConstIterator iter = fixed_value_set.begin();
872
873
7
            for (; iter != fixed_value_set.end(); ++iter) {
874
4
                _begin_scan_keys.emplace_back();
875
4
                _begin_scan_keys.back().add_value(
876
4
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
877
4
                _end_scan_keys.emplace_back();
878
4
                _end_scan_keys.back().add_value(
879
4
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
880
4
            }
881
882
3
            if (range.contain_null()) {
883
0
                _begin_scan_keys.emplace_back();
884
0
                _begin_scan_keys.back().add_null();
885
0
                _end_scan_keys.emplace_back();
886
0
                _end_scan_keys.back().add_null();
887
0
            }
888
3
        } // 3.1.2 produces the Cartesian product of ScanKey and fixed_value
889
0
        else {
890
0
            auto fixed_value_set = range.get_fixed_value_set();
891
0
            size_t original_key_range_size = _begin_scan_keys.size();
892
893
0
            for (int i = 0; i < original_key_range_size; ++i) {
894
0
                OlapTuple start_base_key_range = _begin_scan_keys[i];
895
0
                OlapTuple end_base_key_range = _end_scan_keys[i];
896
897
0
                ConstIterator iter = fixed_value_set.begin();
898
899
0
                for (; iter != fixed_value_set.end(); ++iter) {
900
                    // alter the first ScanKey in original place
901
0
                    if (iter == fixed_value_set.begin()) {
902
0
                        _begin_scan_keys[i].add_value(
903
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
904
0
                        _end_scan_keys[i].add_value(
905
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
906
0
                    } // append follow ScanKey
907
0
                    else {
908
0
                        _begin_scan_keys.push_back(start_base_key_range);
909
0
                        _begin_scan_keys.back().add_value(
910
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
911
0
                        _end_scan_keys.push_back(end_base_key_range);
912
0
                        _end_scan_keys.back().add_value(
913
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
914
0
                    }
915
0
                }
916
917
0
                if (range.contain_null()) {
918
0
                    _begin_scan_keys.push_back(start_base_key_range);
919
0
                    _begin_scan_keys.back().add_null();
920
0
                    _end_scan_keys.push_back(end_base_key_range);
921
0
                    _end_scan_keys.back().add_null();
922
0
                }
923
0
            }
924
0
        }
925
926
3
        _begin_include = true;
927
3
        _end_include = true;
928
3
    } // Extend ScanKey with range value
929
1.35k
    else {
930
1.35k
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
1.35k
        if (Compare::less(range.get_range_max_value(), range.get_range_min_value())) {
934
6
            CHECK(range.contain_null());
935
6
            if (_begin_scan_keys.empty()) {
936
6
                _begin_scan_keys.emplace_back();
937
6
                _begin_scan_keys.back().add_null();
938
6
                _end_scan_keys.emplace_back();
939
6
                _end_scan_keys.back().add_null();
940
6
            } else {
941
0
                for (int i = 0; i < _begin_scan_keys.size(); ++i) {
942
0
                    _begin_scan_keys[i].add_null();
943
0
                    _end_scan_keys[i].add_null();
944
0
                }
945
0
            }
946
1.35k
        } else if (_begin_scan_keys.empty()) {
947
1.35k
            _begin_scan_keys.emplace_back();
948
1.35k
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
1.35k
                                                      range.get_range_min_value(), range.scale()),
950
1.35k
                                              range.contain_null());
951
1.35k
            _end_scan_keys.emplace_back();
952
1.35k
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
1.35k
                    range.get_range_max_value(), range.scale()));
954
18.4E
        } else {
955
18.4E
            for (int i = 0; i < _begin_scan_keys.size(); ++i) {
956
30
                _begin_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
957
30
                                                      range.get_range_min_value(), range.scale()),
958
30
                                              range.contain_null());
959
30
            }
960
961
18.4E
            for (int i = 0; i < _end_scan_keys.size(); ++i) {
962
30
                _end_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
963
30
                        range.get_range_max_value(), range.scale()));
964
30
            }
965
18.4E
        }
966
1.35k
        _begin_include = range.is_begin_include();
967
1.35k
        _end_include = range.is_end_include();
968
1.35k
    }
969
970
1.36k
    return Status::OK();
971
1.36k
}
Unexecuted instantiation: _ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE19EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE28EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
36
                                     bool* should_break) {
823
36
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
36
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
36
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
36
    if (range.is_empty_value_range()) {
829
0
        _begin_scan_keys.clear();
830
0
        _end_scan_keys.clear();
831
0
        return Status::OK();
832
0
    }
833
834
    // 2. stop extend ScanKey when it's already extend a range value
835
36
    if (_has_range_value) {
836
0
        return Status::OK();
837
0
    }
838
839
    //if a column doesn't have any predicate, we will try converting the range to fixed values
840
36
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
36
    if (range.is_fixed_value_range()) {
842
3
        if (range.get_fixed_value_size() > max_scan_key_num / scan_keys_size) {
843
0
            if (range.is_range_value_convertible()) {
844
0
                range.convert_to_range_value();
845
0
                *exact_value = false;
846
0
            } else {
847
0
                *should_break = true;
848
0
                return Status::OK();
849
0
            }
850
0
        }
851
33
    } else {
852
33
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
33
            !range.is_reject_split_type()) {
854
0
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
0
                                                 _end_include);
856
857
0
            if (!(*eos) &&
858
0
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
0
                                                 _end_include, max_scan_key_num)) {
860
0
                _has_range_value = true;
861
0
            }
862
0
            return Status::OK();
863
0
        }
864
33
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
36
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
3
        if (_begin_scan_keys.empty()) {
870
1
            auto fixed_value_set = range.get_fixed_value_set();
871
1
            ConstIterator iter = fixed_value_set.begin();
872
873
2
            for (; iter != fixed_value_set.end(); ++iter) {
874
1
                _begin_scan_keys.emplace_back();
875
1
                _begin_scan_keys.back().add_value(
876
1
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
877
1
                _end_scan_keys.emplace_back();
878
1
                _end_scan_keys.back().add_value(
879
1
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
880
1
            }
881
882
1
            if (range.contain_null()) {
883
0
                _begin_scan_keys.emplace_back();
884
0
                _begin_scan_keys.back().add_null();
885
0
                _end_scan_keys.emplace_back();
886
0
                _end_scan_keys.back().add_null();
887
0
            }
888
1
        } // 3.1.2 produces the Cartesian product of ScanKey and fixed_value
889
2
        else {
890
2
            auto fixed_value_set = range.get_fixed_value_set();
891
2
            size_t original_key_range_size = _begin_scan_keys.size();
892
893
4
            for (int i = 0; i < original_key_range_size; ++i) {
894
2
                OlapTuple start_base_key_range = _begin_scan_keys[i];
895
2
                OlapTuple end_base_key_range = _end_scan_keys[i];
896
897
2
                ConstIterator iter = fixed_value_set.begin();
898
899
4
                for (; iter != fixed_value_set.end(); ++iter) {
900
                    // alter the first ScanKey in original place
901
2
                    if (iter == fixed_value_set.begin()) {
902
2
                        _begin_scan_keys[i].add_value(
903
2
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
904
2
                        _end_scan_keys[i].add_value(
905
2
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
906
2
                    } // append follow ScanKey
907
0
                    else {
908
0
                        _begin_scan_keys.push_back(start_base_key_range);
909
0
                        _begin_scan_keys.back().add_value(
910
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
911
0
                        _end_scan_keys.push_back(end_base_key_range);
912
0
                        _end_scan_keys.back().add_value(
913
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
914
0
                    }
915
2
                }
916
917
2
                if (range.contain_null()) {
918
0
                    _begin_scan_keys.push_back(start_base_key_range);
919
0
                    _begin_scan_keys.back().add_null();
920
0
                    _end_scan_keys.push_back(end_base_key_range);
921
0
                    _end_scan_keys.back().add_null();
922
0
                }
923
2
            }
924
2
        }
925
926
3
        _begin_include = true;
927
3
        _end_include = true;
928
3
    } // Extend ScanKey with range value
929
33
    else {
930
33
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
33
        if (Compare::less(range.get_range_max_value(), range.get_range_min_value())) {
934
0
            CHECK(range.contain_null());
935
0
            if (_begin_scan_keys.empty()) {
936
0
                _begin_scan_keys.emplace_back();
937
0
                _begin_scan_keys.back().add_null();
938
0
                _end_scan_keys.emplace_back();
939
0
                _end_scan_keys.back().add_null();
940
0
            } else {
941
0
                for (int i = 0; i < _begin_scan_keys.size(); ++i) {
942
0
                    _begin_scan_keys[i].add_null();
943
0
                    _end_scan_keys[i].add_null();
944
0
                }
945
0
            }
946
33
        } else if (_begin_scan_keys.empty()) {
947
32
            _begin_scan_keys.emplace_back();
948
32
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
32
                                                      range.get_range_min_value(), range.scale()),
950
32
                                              range.contain_null());
951
32
            _end_scan_keys.emplace_back();
952
32
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
32
                    range.get_range_max_value(), range.scale()));
954
32
        } else {
955
2
            for (int i = 0; i < _begin_scan_keys.size(); ++i) {
956
1
                _begin_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
957
1
                                                      range.get_range_min_value(), range.scale()),
958
1
                                              range.contain_null());
959
1
            }
960
961
2
            for (int i = 0; i < _end_scan_keys.size(); ++i) {
962
1
                _end_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
963
1
                        range.get_range_max_value(), range.scale()));
964
1
            }
965
1
        }
966
33
        _begin_include = range.is_begin_include();
967
33
        _end_include = range.is_end_include();
968
33
    }
969
970
36
    return Status::OK();
971
36
}
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE29EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
118
                                     bool* should_break) {
823
118
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
118
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
118
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
118
    if (range.is_empty_value_range()) {
829
0
        _begin_scan_keys.clear();
830
0
        _end_scan_keys.clear();
831
0
        return Status::OK();
832
0
    }
833
834
    // 2. stop extend ScanKey when it's already extend a range value
835
118
    if (_has_range_value) {
836
0
        return Status::OK();
837
0
    }
838
839
    //if a column doesn't have any predicate, we will try converting the range to fixed values
840
118
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
118
    if (range.is_fixed_value_range()) {
842
11
        if (range.get_fixed_value_size() > max_scan_key_num / scan_keys_size) {
843
0
            if (range.is_range_value_convertible()) {
844
0
                range.convert_to_range_value();
845
0
                *exact_value = false;
846
0
            } else {
847
0
                *should_break = true;
848
0
                return Status::OK();
849
0
            }
850
0
        }
851
107
    } else {
852
107
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
107
            !range.is_reject_split_type()) {
854
0
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
0
                                                 _end_include);
856
857
0
            if (!(*eos) &&
858
0
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
0
                                                 _end_include, max_scan_key_num)) {
860
0
                _has_range_value = true;
861
0
            }
862
0
            return Status::OK();
863
0
        }
864
107
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
118
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
11
        if (_begin_scan_keys.empty()) {
870
10
            auto fixed_value_set = range.get_fixed_value_set();
871
10
            ConstIterator iter = fixed_value_set.begin();
872
873
20
            for (; iter != fixed_value_set.end(); ++iter) {
874
10
                _begin_scan_keys.emplace_back();
875
10
                _begin_scan_keys.back().add_value(
876
10
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
877
10
                _end_scan_keys.emplace_back();
878
10
                _end_scan_keys.back().add_value(
879
10
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
880
10
            }
881
882
10
            if (range.contain_null()) {
883
0
                _begin_scan_keys.emplace_back();
884
0
                _begin_scan_keys.back().add_null();
885
0
                _end_scan_keys.emplace_back();
886
0
                _end_scan_keys.back().add_null();
887
0
            }
888
10
        } // 3.1.2 produces the Cartesian product of ScanKey and fixed_value
889
1
        else {
890
1
            auto fixed_value_set = range.get_fixed_value_set();
891
1
            size_t original_key_range_size = _begin_scan_keys.size();
892
893
2
            for (int i = 0; i < original_key_range_size; ++i) {
894
1
                OlapTuple start_base_key_range = _begin_scan_keys[i];
895
1
                OlapTuple end_base_key_range = _end_scan_keys[i];
896
897
1
                ConstIterator iter = fixed_value_set.begin();
898
899
2
                for (; iter != fixed_value_set.end(); ++iter) {
900
                    // alter the first ScanKey in original place
901
1
                    if (iter == fixed_value_set.begin()) {
902
1
                        _begin_scan_keys[i].add_value(
903
1
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
904
1
                        _end_scan_keys[i].add_value(
905
1
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
906
1
                    } // append follow ScanKey
907
0
                    else {
908
0
                        _begin_scan_keys.push_back(start_base_key_range);
909
0
                        _begin_scan_keys.back().add_value(
910
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
911
0
                        _end_scan_keys.push_back(end_base_key_range);
912
0
                        _end_scan_keys.back().add_value(
913
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
914
0
                    }
915
1
                }
916
917
1
                if (range.contain_null()) {
918
0
                    _begin_scan_keys.push_back(start_base_key_range);
919
0
                    _begin_scan_keys.back().add_null();
920
0
                    _end_scan_keys.push_back(end_base_key_range);
921
0
                    _end_scan_keys.back().add_null();
922
0
                }
923
1
            }
924
1
        }
925
926
11
        _begin_include = true;
927
11
        _end_include = true;
928
11
    } // Extend ScanKey with range value
929
107
    else {
930
107
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
107
        if (Compare::less(range.get_range_max_value(), range.get_range_min_value())) {
934
0
            CHECK(range.contain_null());
935
0
            if (_begin_scan_keys.empty()) {
936
0
                _begin_scan_keys.emplace_back();
937
0
                _begin_scan_keys.back().add_null();
938
0
                _end_scan_keys.emplace_back();
939
0
                _end_scan_keys.back().add_null();
940
0
            } else {
941
0
                for (int i = 0; i < _begin_scan_keys.size(); ++i) {
942
0
                    _begin_scan_keys[i].add_null();
943
0
                    _end_scan_keys[i].add_null();
944
0
                }
945
0
            }
946
107
        } else if (_begin_scan_keys.empty()) {
947
100
            _begin_scan_keys.emplace_back();
948
100
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
100
                                                      range.get_range_min_value(), range.scale()),
950
100
                                              range.contain_null());
951
100
            _end_scan_keys.emplace_back();
952
100
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
100
                    range.get_range_max_value(), range.scale()));
954
100
        } else {
955
15
            for (int i = 0; i < _begin_scan_keys.size(); ++i) {
956
8
                _begin_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
957
8
                                                      range.get_range_min_value(), range.scale()),
958
8
                                              range.contain_null());
959
8
            }
960
961
15
            for (int i = 0; i < _end_scan_keys.size(); ++i) {
962
8
                _end_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
963
8
                        range.get_range_max_value(), range.scale()));
964
8
            }
965
7
        }
966
107
        _begin_include = range.is_begin_include();
967
107
        _end_include = range.is_end_include();
968
107
    }
969
970
118
    return Status::OK();
971
118
}
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE30EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
70
                                     bool* should_break) {
823
70
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
70
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
70
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
70
    if (range.is_empty_value_range()) {
829
0
        _begin_scan_keys.clear();
830
0
        _end_scan_keys.clear();
831
0
        return Status::OK();
832
0
    }
833
834
    // 2. stop extend ScanKey when it's already extend a range value
835
70
    if (_has_range_value) {
836
0
        return Status::OK();
837
0
    }
838
839
    //if a column doesn't have any predicate, we will try converting the range to fixed values
840
70
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
70
    if (range.is_fixed_value_range()) {
842
6
        if (range.get_fixed_value_size() > max_scan_key_num / scan_keys_size) {
843
0
            if (range.is_range_value_convertible()) {
844
0
                range.convert_to_range_value();
845
0
                *exact_value = false;
846
0
            } else {
847
0
                *should_break = true;
848
0
                return Status::OK();
849
0
            }
850
0
        }
851
64
    } else {
852
64
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
64
            !range.is_reject_split_type()) {
854
0
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
0
                                                 _end_include);
856
857
0
            if (!(*eos) &&
858
0
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
0
                                                 _end_include, max_scan_key_num)) {
860
0
                _has_range_value = true;
861
0
            }
862
0
            return Status::OK();
863
0
        }
864
64
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
70
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
6
        if (_begin_scan_keys.empty()) {
870
6
            auto fixed_value_set = range.get_fixed_value_set();
871
6
            ConstIterator iter = fixed_value_set.begin();
872
873
12
            for (; iter != fixed_value_set.end(); ++iter) {
874
6
                _begin_scan_keys.emplace_back();
875
6
                _begin_scan_keys.back().add_value(
876
6
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
877
6
                _end_scan_keys.emplace_back();
878
6
                _end_scan_keys.back().add_value(
879
6
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
880
6
            }
881
882
6
            if (range.contain_null()) {
883
0
                _begin_scan_keys.emplace_back();
884
0
                _begin_scan_keys.back().add_null();
885
0
                _end_scan_keys.emplace_back();
886
0
                _end_scan_keys.back().add_null();
887
0
            }
888
6
        } // 3.1.2 produces the Cartesian product of ScanKey and fixed_value
889
0
        else {
890
0
            auto fixed_value_set = range.get_fixed_value_set();
891
0
            size_t original_key_range_size = _begin_scan_keys.size();
892
893
0
            for (int i = 0; i < original_key_range_size; ++i) {
894
0
                OlapTuple start_base_key_range = _begin_scan_keys[i];
895
0
                OlapTuple end_base_key_range = _end_scan_keys[i];
896
897
0
                ConstIterator iter = fixed_value_set.begin();
898
899
0
                for (; iter != fixed_value_set.end(); ++iter) {
900
                    // alter the first ScanKey in original place
901
0
                    if (iter == fixed_value_set.begin()) {
902
0
                        _begin_scan_keys[i].add_value(
903
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
904
0
                        _end_scan_keys[i].add_value(
905
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
906
0
                    } // append follow ScanKey
907
0
                    else {
908
0
                        _begin_scan_keys.push_back(start_base_key_range);
909
0
                        _begin_scan_keys.back().add_value(
910
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
911
0
                        _end_scan_keys.push_back(end_base_key_range);
912
0
                        _end_scan_keys.back().add_value(
913
0
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
914
0
                    }
915
0
                }
916
917
0
                if (range.contain_null()) {
918
0
                    _begin_scan_keys.push_back(start_base_key_range);
919
0
                    _begin_scan_keys.back().add_null();
920
0
                    _end_scan_keys.push_back(end_base_key_range);
921
0
                    _end_scan_keys.back().add_null();
922
0
                }
923
0
            }
924
0
        }
925
926
6
        _begin_include = true;
927
6
        _end_include = true;
928
6
    } // Extend ScanKey with range value
929
64
    else {
930
64
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
64
        if (Compare::less(range.get_range_max_value(), range.get_range_min_value())) {
934
0
            CHECK(range.contain_null());
935
0
            if (_begin_scan_keys.empty()) {
936
0
                _begin_scan_keys.emplace_back();
937
0
                _begin_scan_keys.back().add_null();
938
0
                _end_scan_keys.emplace_back();
939
0
                _end_scan_keys.back().add_null();
940
0
            } else {
941
0
                for (int i = 0; i < _begin_scan_keys.size(); ++i) {
942
0
                    _begin_scan_keys[i].add_null();
943
0
                    _end_scan_keys[i].add_null();
944
0
                }
945
0
            }
946
64
        } else if (_begin_scan_keys.empty()) {
947
64
            _begin_scan_keys.emplace_back();
948
64
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
64
                                                      range.get_range_min_value(), range.scale()),
950
64
                                              range.contain_null());
951
64
            _end_scan_keys.emplace_back();
952
64
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
64
                    range.get_range_max_value(), range.scale()));
954
64
        } else {
955
0
            for (int i = 0; i < _begin_scan_keys.size(); ++i) {
956
0
                _begin_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
957
0
                                                      range.get_range_min_value(), range.scale()),
958
0
                                              range.contain_null());
959
0
            }
960
961
0
            for (int i = 0; i < _end_scan_keys.size(); ++i) {
962
0
                _end_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
963
0
                        range.get_range_max_value(), range.scale()));
964
0
            }
965
0
        }
966
64
        _begin_include = range.is_begin_include();
967
64
        _end_include = range.is_end_include();
968
64
    }
969
970
70
    return Status::OK();
971
70
}
Unexecuted instantiation: _ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE35EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
972
973
#include "common/compile_check_end.h"
974
} // namespace doris