Coverage Report

Created: 2026-03-18 17:20

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
365k
std::string cast_to_string(T value, int scale) {
61
365k
    if constexpr (primitive_type == TYPE_DECIMAL32) {
62
0
        return ((Decimal<int32_t>)value).to_string(scale);
63
0
    } else if constexpr (primitive_type == TYPE_DECIMAL64) {
64
0
        return ((Decimal<int64_t>)value).to_string(scale);
65
0
    } else if constexpr (primitive_type == TYPE_DECIMAL128I) {
66
0
        return ((Decimal<int128_t>)value).to_string(scale);
67
0
    } else if constexpr (primitive_type == TYPE_DECIMAL256) {
68
0
        return ((Decimal<wide::Int256>)value).to_string(scale);
69
7.62k
    } else if constexpr (primitive_type == TYPE_TINYINT) {
70
7.62k
        return std::to_string(static_cast<int>(value));
71
7.62k
    } else if constexpr (primitive_type == TYPE_LARGEINT) {
72
260
        return int128_to_string(value);
73
286
    } else if constexpr (primitive_type == TYPE_DATETIMEV2) {
74
286
        auto datetimev2_val = static_cast<DateV2Value<DateTimeV2ValueType>>(value);
75
286
        char buf[30];
76
286
        datetimev2_val.to_string(buf);
77
286
        std::stringstream ss;
78
286
        ss << buf;
79
286
        return ss.str();
80
286
    } 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
0
    } else if constexpr (primitive_type == TYPE_IPV6) {
88
0
        return IPv6Value::to_string(value);
89
344
    } else if constexpr (primitive_type == TYPE_BOOLEAN) {
90
344
        return CastToString::from_number(value);
91
356k
    } else {
92
356k
        return boost::lexical_cast<std::string>(value);
93
356k
    }
94
365k
}
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE3EaEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Line
Count
Source
60
7.62k
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
7.62k
    } else if constexpr (primitive_type == TYPE_TINYINT) {
70
7.62k
        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
7.62k
}
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE4EsEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Line
Count
Source
60
14.0k
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
14.0k
    } else {
92
14.0k
        return boost::lexical_cast<std::string>(value);
93
14.0k
    }
94
14.0k
}
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE5EiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Line
Count
Source
60
6.03k
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
6.03k
    } else {
92
6.03k
        return boost::lexical_cast<std::string>(value);
93
6.03k
    }
94
6.03k
}
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE6ElEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Line
Count
Source
60
496
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
496
    } else {
92
496
        return boost::lexical_cast<std::string>(value);
93
496
    }
94
496
}
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE7EnEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Line
Count
Source
60
260
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
260
    } else if constexpr (primitive_type == TYPE_LARGEINT) {
72
260
        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
260
}
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
Unexecuted instantiation: _ZN5doris14cast_to_stringILNS_13PrimitiveTypeE37EoEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Unexecuted instantiation: _ZN5doris14cast_to_stringILNS_13PrimitiveTypeE15ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEES7_T0_i
_ZN5doris14cast_to_stringILNS_13PrimitiveTypeE10ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEES7_T0_i
Line
Count
Source
60
331k
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
331k
    } else {
92
331k
        return boost::lexical_cast<std::string>(value);
93
331k
    }
94
331k
}
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
4.23k
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
4.23k
    } else {
92
4.23k
        return boost::lexical_cast<std::string>(value);
93
4.23k
    }
94
4.23k
}
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
286
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
286
    } else if constexpr (primitive_type == TYPE_DATETIMEV2) {
74
286
        auto datetimev2_val = static_cast<DateV2Value<DateTimeV2ValueType>>(value);
75
286
        char buf[30];
76
286
        datetimev2_val.to_string(buf);
77
286
        std::stringstream ss;
78
286
        ss << buf;
79
286
        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
286
}
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
344
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
344
    } else if constexpr (primitive_type == TYPE_BOOLEAN) {
90
344
        return CastToString::from_number(value);
91
    } else {
92
        return boost::lexical_cast<std::string>(value);
93
    }
94
344
}
Unexecuted instantiation: _ZN5doris14cast_to_stringILNS_13PrimitiveTypeE19ENS_9StringRefEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Unexecuted instantiation: _ZN5doris14cast_to_stringILNS_13PrimitiveTypeE28ENS_7DecimalIiEEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Unexecuted instantiation: _ZN5doris14cast_to_stringILNS_13PrimitiveTypeE29ENS_7DecimalIlEEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
Unexecuted instantiation: _ZN5doris14cast_to_stringILNS_13PrimitiveTypeE30ENS_12Decimal128V3EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_i
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
3.62k
    constexpr bool is_reject_split_type() const { return _is_reject_split_type; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE20is_reject_split_typeEv
Line
Count
Source
139
90
    constexpr bool is_reject_split_type() const { return _is_reject_split_type; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE20is_reject_split_typeEv
Line
Count
Source
139
150
    constexpr bool is_reject_split_type() const { return _is_reject_split_type; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE20is_reject_split_typeEv
Line
Count
Source
139
2.96k
    constexpr bool is_reject_split_type() const { return _is_reject_split_type; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE20is_reject_split_typeEv
Line
Count
Source
139
250
    constexpr bool is_reject_split_type() const { return _is_reject_split_type; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE20is_reject_split_typeEv
Line
Count
Source
139
130
    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
44
    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
1.35k
    void set_empty_value_range() {
144
1.35k
        _fixed_values.clear();
145
1.35k
        _low_value = TYPE_MAX;
146
1.35k
        _high_value = TYPE_MIN;
147
1.35k
        _contain_null = false;
148
1.35k
    }
_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
60
    void set_empty_value_range() {
144
60
        _fixed_values.clear();
145
60
        _low_value = TYPE_MAX;
146
60
        _high_value = TYPE_MIN;
147
60
        _contain_null = false;
148
60
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE21set_empty_value_rangeEv
Line
Count
Source
143
322
    void set_empty_value_range() {
144
322
        _fixed_values.clear();
145
322
        _low_value = TYPE_MAX;
146
322
        _high_value = TYPE_MIN;
147
322
        _contain_null = false;
148
322
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE21set_empty_value_rangeEv
Line
Count
Source
143
75
    void set_empty_value_range() {
144
75
        _fixed_values.clear();
145
75
        _low_value = TYPE_MAX;
146
75
        _high_value = TYPE_MIN;
147
75
        _contain_null = false;
148
75
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE21set_empty_value_rangeEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE21set_empty_value_rangeEv
Line
Count
Source
143
58
    void set_empty_value_range() {
144
58
        _fixed_values.clear();
145
58
        _low_value = TYPE_MAX;
146
58
        _high_value = TYPE_MIN;
147
58
        _contain_null = false;
148
58
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE21set_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
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE21set_empty_value_rangeEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE21set_empty_value_rangeEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE21set_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_13PrimitiveTypeE10EE21set_empty_value_rangeEv
Line
Count
Source
143
110
    void set_empty_value_range() {
144
110
        _fixed_values.clear();
145
110
        _low_value = TYPE_MAX;
146
110
        _high_value = TYPE_MIN;
147
110
        _contain_null = false;
148
110
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE21set_empty_value_rangeEv
Line
Count
Source
143
212
    void set_empty_value_range() {
144
212
        _fixed_values.clear();
145
212
        _low_value = TYPE_MAX;
146
212
        _high_value = TYPE_MIN;
147
212
        _contain_null = false;
148
212
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE21set_empty_value_rangeEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE21set_empty_value_rangeEv
Line
Count
Source
143
60
    void set_empty_value_range() {
144
60
        _fixed_values.clear();
145
60
        _low_value = TYPE_MAX;
146
60
        _high_value = TYPE_MIN;
147
60
        _contain_null = false;
148
60
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE21set_empty_value_rangeEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE21set_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
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE21set_empty_value_rangeEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE21set_empty_value_rangeEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE21set_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
    }
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
130
    void set_empty_value_range() {
144
130
        _fixed_values.clear();
145
130
        _low_value = TYPE_MAX;
146
130
        _high_value = TYPE_MIN;
147
130
        _contain_null = false;
148
130
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE21set_empty_value_rangeEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE21set_empty_value_rangeEv
149
150
124k
    const SetType& get_fixed_value_set() const { return _fixed_values; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE19get_fixed_value_setEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE19get_fixed_value_setEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE19get_fixed_value_setEv
Line
Count
Source
150
32
    const SetType& get_fixed_value_set() const { return _fixed_values; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE19get_fixed_value_setEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE19get_fixed_value_setEv
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
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE19get_fixed_value_setB5cxx11Ev
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE19get_fixed_value_setB5cxx11Ev
Line
Count
Source
150
124k
    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
4
    const SetType& get_fixed_value_set() const { return _fixed_values; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE19get_fixed_value_setEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE19get_fixed_value_setEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE19get_fixed_value_setEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE19get_fixed_value_setEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE19get_fixed_value_setEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE19get_fixed_value_setEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE19get_fixed_value_setEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE19get_fixed_value_setEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE19get_fixed_value_setEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE19get_fixed_value_setEv
151
152
91.8k
    CppType get_range_max_value() const { return _high_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE19get_range_max_valueEv
Line
Count
Source
152
90
    CppType get_range_max_value() const { return _high_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE19get_range_max_valueEv
Line
Count
Source
152
150
    CppType get_range_max_value() const { return _high_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE19get_range_max_valueEv
Line
Count
Source
152
5.97k
    CppType get_range_max_value() const { return _high_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE19get_range_max_valueEv
Line
Count
Source
152
500
    CppType get_range_max_value() const { return _high_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE19get_range_max_valueEv
Line
Count
Source
152
260
    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
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE19get_range_max_valueEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE19get_range_max_valueB5cxx11Ev
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE19get_range_max_valueB5cxx11Ev
Line
Count
Source
152
84.1k
    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
44
    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
288
    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
344
    CppType get_range_max_value() const { return _high_value; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE19get_range_max_valueEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE19get_range_max_valueEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE19get_range_max_valueEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE19get_range_max_valueEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE19get_range_max_valueEv
153
154
91.7k
    CppType get_range_min_value() const { return _low_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE19get_range_min_valueEv
Line
Count
Source
154
90
    CppType get_range_min_value() const { return _low_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE19get_range_min_valueEv
Line
Count
Source
154
150
    CppType get_range_min_value() const { return _low_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE19get_range_min_valueEv
Line
Count
Source
154
5.97k
    CppType get_range_min_value() const { return _low_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE19get_range_min_valueEv
Line
Count
Source
154
500
    CppType get_range_min_value() const { return _low_value; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE19get_range_min_valueEv
Line
Count
Source
154
260
    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
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE19get_range_min_valueEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE19get_range_min_valueB5cxx11Ev
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE19get_range_min_valueB5cxx11Ev
Line
Count
Source
154
84.1k
    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
44
    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
288
    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
344
    CppType get_range_min_value() const { return _low_value; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE19get_range_min_valueEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE19get_range_min_valueEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE19get_range_min_valueEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE19get_range_min_valueEv
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
46.0k
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE16is_begin_includeEv
Line
Count
Source
168
90
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE16is_begin_includeEv
Line
Count
Source
168
150
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE16is_begin_includeEv
Line
Count
Source
168
2.98k
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE16is_begin_includeEv
Line
Count
Source
168
250
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE16is_begin_includeEv
Line
Count
Source
168
130
    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
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE16is_begin_includeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE16is_begin_includeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE16is_begin_includeEv
Line
Count
Source
168
42.0k
    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
44
    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
144
    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
172
    bool is_begin_include() const { return _low_op == FILTER_LARGER_OR_EQUAL; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE16is_begin_includeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE16is_begin_includeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE16is_begin_includeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE16is_begin_includeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE16is_begin_includeEv
169
170
46.0k
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE14is_end_includeEv
Line
Count
Source
170
90
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE14is_end_includeEv
Line
Count
Source
170
150
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE14is_end_includeEv
Line
Count
Source
170
2.98k
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE14is_end_includeEv
Line
Count
Source
170
250
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE14is_end_includeEv
Line
Count
Source
170
130
    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
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE14is_end_includeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE14is_end_includeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE14is_end_includeEv
Line
Count
Source
170
42.0k
    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
44
    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
144
    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
172
    bool is_end_include() const { return _high_op == FILTER_LESS_OR_EQUAL; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE14is_end_includeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE14is_end_includeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE14is_end_includeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE14is_end_includeEv
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
178k
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE12contain_nullEv
Line
Count
Source
176
256
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE12contain_nullEv
Line
Count
Source
176
310
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE12contain_nullEv
Line
Count
Source
176
4.38k
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE12contain_nullEv
Line
Count
Source
176
432
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE12contain_nullEv
Line
Count
Source
176
130
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE12contain_nullEv
Line
Count
Source
176
156
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE12contain_nullEv
Line
Count
Source
176
192
    bool contain_null() const { return _contain_null; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE12contain_nullEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE12contain_nullEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE12contain_nullEv
Line
Count
Source
176
152
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE12contain_nullEv
Line
Count
Source
176
166k
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE12contain_nullEv
Line
Count
Source
176
4.58k
    bool contain_null() const { return _contain_null; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE12contain_nullEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE12contain_nullEv
Line
Count
Source
176
192
    bool contain_null() const { return _contain_null; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE12contain_nullEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE12contain_nullEv
Line
Count
Source
176
332
    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
350
    bool contain_null() const { return _contain_null; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE12contain_nullEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE12contain_nullEv
Line
Count
Source
176
20
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE12contain_nullEv
Line
Count
Source
176
816
    bool contain_null() const { return _contain_null; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE12contain_nullEv
Line
Count
Source
176
16
    bool contain_null() const { return _contain_null; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE12contain_nullEv
177
178
294k
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE20get_fixed_value_sizeEv
Line
Count
Source
178
90
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE20get_fixed_value_sizeEv
Line
Count
Source
178
150
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE20get_fixed_value_sizeEv
Line
Count
Source
178
3.06k
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE20get_fixed_value_sizeEv
Line
Count
Source
178
250
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE20get_fixed_value_sizeEv
Line
Count
Source
178
130
    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
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE20get_fixed_value_sizeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE20get_fixed_value_sizeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE20get_fixed_value_sizeEv
Line
Count
Source
178
290k
    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
52
    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
144
    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
172
    size_t get_fixed_value_size() const { return _fixed_values.size(); }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE20get_fixed_value_sizeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE20get_fixed_value_sizeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE20get_fixed_value_sizeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE20get_fixed_value_sizeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE20get_fixed_value_sizeEv
179
180
2.67k
    void set_whole_value_range() {
181
2.67k
        _fixed_values.clear();
182
2.67k
        _low_value = TYPE_MIN;
183
2.67k
        _high_value = TYPE_MAX;
184
2.67k
        _low_op = FILTER_LARGER_OR_EQUAL;
185
2.67k
        _high_op = FILTER_LESS_OR_EQUAL;
186
2.67k
        _contain_null = _is_nullable_col;
187
2.67k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE21set_whole_value_rangeEv
Line
Count
Source
180
4
    void set_whole_value_range() {
181
4
        _fixed_values.clear();
182
4
        _low_value = TYPE_MIN;
183
4
        _high_value = TYPE_MAX;
184
4
        _low_op = FILTER_LARGER_OR_EQUAL;
185
4
        _high_op = FILTER_LESS_OR_EQUAL;
186
4
        _contain_null = _is_nullable_col;
187
4
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE21set_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_13PrimitiveTypeE5EE21set_whole_value_rangeEv
Line
Count
Source
180
278
    void set_whole_value_range() {
181
278
        _fixed_values.clear();
182
278
        _low_value = TYPE_MIN;
183
278
        _high_value = TYPE_MAX;
184
278
        _low_op = FILTER_LARGER_OR_EQUAL;
185
278
        _high_op = FILTER_LESS_OR_EQUAL;
186
278
        _contain_null = _is_nullable_col;
187
278
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE21set_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
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE21set_whole_value_rangeEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE21set_whole_value_rangeEv
Line
Count
Source
180
6
    void set_whole_value_range() {
181
6
        _fixed_values.clear();
182
6
        _low_value = TYPE_MIN;
183
6
        _high_value = TYPE_MAX;
184
6
        _low_op = FILTER_LARGER_OR_EQUAL;
185
6
        _high_op = FILTER_LESS_OR_EQUAL;
186
6
        _contain_null = _is_nullable_col;
187
6
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE21set_whole_value_rangeEv
Line
Count
Source
180
15
    void set_whole_value_range() {
181
15
        _fixed_values.clear();
182
15
        _low_value = TYPE_MIN;
183
15
        _high_value = TYPE_MAX;
184
15
        _low_op = FILTER_LARGER_OR_EQUAL;
185
15
        _high_op = FILTER_LESS_OR_EQUAL;
186
15
        _contain_null = _is_nullable_col;
187
15
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE21set_whole_value_rangeEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE21set_whole_value_rangeEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE21set_whole_value_rangeEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE21set_whole_value_rangeEv
Line
Count
Source
180
12
    void set_whole_value_range() {
181
12
        _fixed_values.clear();
182
12
        _low_value = TYPE_MIN;
183
12
        _high_value = TYPE_MAX;
184
12
        _low_op = FILTER_LARGER_OR_EQUAL;
185
12
        _high_op = FILTER_LESS_OR_EQUAL;
186
12
        _contain_null = _is_nullable_col;
187
12
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE21set_whole_value_rangeEv
Line
Count
Source
180
2.06k
    void set_whole_value_range() {
181
2.06k
        _fixed_values.clear();
182
2.06k
        _low_value = TYPE_MIN;
183
2.06k
        _high_value = TYPE_MAX;
184
2.06k
        _low_op = FILTER_LARGER_OR_EQUAL;
185
2.06k
        _high_op = FILTER_LESS_OR_EQUAL;
186
2.06k
        _contain_null = _is_nullable_col;
187
2.06k
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE21set_whole_value_rangeEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE21set_whole_value_rangeEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE21set_whole_value_rangeEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE21set_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_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
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE21set_whole_value_rangeEv
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE21set_whole_value_rangeEv
Line
Count
Source
180
254
    void set_whole_value_range() {
181
254
        _fixed_values.clear();
182
254
        _low_value = TYPE_MIN;
183
254
        _high_value = TYPE_MAX;
184
254
        _low_op = FILTER_LARGER_OR_EQUAL;
185
254
        _high_op = FILTER_LESS_OR_EQUAL;
186
254
        _contain_null = _is_nullable_col;
187
254
    }
_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.34k
    bool is_whole_value_range() const {
190
1.34k
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
1.34k
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
1.34k
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
1.34k
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
1.34k
    }
_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
62
    bool is_whole_value_range() const {
190
62
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
62
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
62
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
62
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
62
    }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE20is_whole_value_rangeEv
Line
Count
Source
189
320
    bool is_whole_value_range() const {
190
320
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
320
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
320
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
320
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
320
    }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE20is_whole_value_rangeEv
Line
Count
Source
189
66
    bool is_whole_value_range() const {
190
66
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
66
        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
    }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE20is_whole_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE20is_whole_value_rangeEv
Line
Count
Source
189
56
    bool is_whole_value_range() const {
190
56
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
58
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
56
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
56
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
56
    }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE20is_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
    }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE20is_whole_value_rangeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE20is_whole_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE20is_whole_value_rangeEv
Line
Count
Source
189
62
    bool is_whole_value_range() const {
190
62
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
62
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
62
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
62
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
62
    }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE20is_whole_value_rangeEv
Line
Count
Source
189
110
    bool is_whole_value_range() const {
190
110
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
110
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
110
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
110
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
110
    }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE20is_whole_value_rangeEv
Line
Count
Source
189
212
    bool is_whole_value_range() const {
190
212
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
212
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
212
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
212
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
212
    }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE20is_whole_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE20is_whole_value_rangeEv
Line
Count
Source
189
60
    bool is_whole_value_range() const {
190
60
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
60
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
60
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
60
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
60
    }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE20is_whole_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE20is_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
    }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE20is_whole_value_rangeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE20is_whole_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE20is_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
    }
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
128
    bool is_whole_value_range() const {
190
128
        DCHECK(_is_nullable_col || !contain_null())
191
0
                << "Non-nullable column cannot contains null value";
192
193
128
        return _fixed_values.empty() && Compare::equal(_low_value, TYPE_MIN) &&
194
128
               Compare::equal(_high_value, TYPE_MAX) && _low_op == FILTER_LARGER_OR_EQUAL &&
195
128
               _high_op == FILTER_LESS_OR_EQUAL && _is_nullable_col == contain_null();
196
128
    }
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
4.02k
    void set_contain_null(bool contain_null) {
205
4.02k
        if (contain_null) {
206
1.34k
            set_empty_value_range();
207
2.67k
        } else {
208
2.67k
            set_whole_value_range();
209
2.67k
        }
210
4.02k
        _contain_null = _is_nullable_col && contain_null;
211
4.02k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE16set_contain_nullEb
Line
Count
Source
204
68
    void set_contain_null(bool contain_null) {
205
68
        if (contain_null) {
206
64
            set_empty_value_range();
207
64
        } else {
208
4
            set_whole_value_range();
209
4
        }
210
68
        _contain_null = _is_nullable_col && contain_null;
211
68
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE16set_contain_nullEb
Line
Count
Source
204
62
    void set_contain_null(bool contain_null) {
205
62
        if (contain_null) {
206
60
            set_empty_value_range();
207
60
        } else {
208
2
            set_whole_value_range();
209
2
        }
210
62
        _contain_null = _is_nullable_col && contain_null;
211
62
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE16set_contain_nullEb
Line
Count
Source
204
598
    void set_contain_null(bool contain_null) {
205
598
        if (contain_null) {
206
320
            set_empty_value_range();
207
320
        } else {
208
278
            set_whole_value_range();
209
278
        }
210
598
        _contain_null = _is_nullable_col && contain_null;
211
598
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE16set_contain_nullEb
Line
Count
Source
204
72
    void set_contain_null(bool contain_null) {
205
72
        if (contain_null) {
206
69
            set_empty_value_range();
207
69
        } else {
208
3
            set_whole_value_range();
209
3
        }
210
72
        _contain_null = _is_nullable_col && contain_null;
211
72
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE16set_contain_nullEb
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE16set_contain_nullEb
Line
Count
Source
204
64
    void set_contain_null(bool contain_null) {
205
64
        if (contain_null) {
206
58
            set_empty_value_range();
207
58
        } else {
208
6
            set_whole_value_range();
209
6
        }
210
64
        _contain_null = _is_nullable_col && contain_null;
211
64
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE16set_contain_nullEb
Line
Count
Source
204
79
    void set_contain_null(bool contain_null) {
205
79
        if (contain_null) {
206
64
            set_empty_value_range();
207
64
        } else {
208
15
            set_whole_value_range();
209
15
        }
210
79
        _contain_null = _is_nullable_col && contain_null;
211
79
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE16set_contain_nullEb
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE16set_contain_nullEb
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE16set_contain_nullEb
Line
Count
Source
204
64
    void set_contain_null(bool contain_null) {
205
64
        if (contain_null) {
206
64
            set_empty_value_range();
207
64
        } else {
208
0
            set_whole_value_range();
209
0
        }
210
64
        _contain_null = _is_nullable_col && contain_null;
211
64
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE16set_contain_nullEb
Line
Count
Source
204
122
    void set_contain_null(bool contain_null) {
205
122
        if (contain_null) {
206
110
            set_empty_value_range();
207
110
        } else {
208
12
            set_whole_value_range();
209
12
        }
210
124
        _contain_null = _is_nullable_col && contain_null;
211
122
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE16set_contain_nullEb
Line
Count
Source
204
2.28k
    void set_contain_null(bool contain_null) {
205
2.28k
        if (contain_null) {
206
212
            set_empty_value_range();
207
2.07k
        } else {
208
2.07k
            set_whole_value_range();
209
2.07k
        }
210
2.28k
        _contain_null = _is_nullable_col && contain_null;
211
2.28k
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE16set_contain_nullEb
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE16set_contain_nullEb
Line
Count
Source
204
58
    void set_contain_null(bool contain_null) {
205
60
        if (contain_null) {
206
60
            set_empty_value_range();
207
18.4E
        } else {
208
18.4E
            set_whole_value_range();
209
18.4E
        }
210
62
        _contain_null = _is_nullable_col && contain_null;
211
58
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE16set_contain_nullEb
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE16set_contain_nullEb
Line
Count
Source
204
78
    void set_contain_null(bool contain_null) {
205
78
        if (contain_null) {
206
64
            set_empty_value_range();
207
64
        } else {
208
14
            set_whole_value_range();
209
14
        }
210
78
        _contain_null = _is_nullable_col && contain_null;
211
78
    }
_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
74
    void set_contain_null(bool contain_null) {
205
74
        if (contain_null) {
206
64
            set_empty_value_range();
207
64
        } else {
208
10
            set_whole_value_range();
209
10
        }
210
74
        _contain_null = _is_nullable_col && contain_null;
211
74
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE16set_contain_nullEb
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE16set_contain_nullEb
Line
Count
Source
204
8
    void set_contain_null(bool contain_null) {
205
8
        if (contain_null) {
206
8
            set_empty_value_range();
207
8
        } else {
208
0
            set_whole_value_range();
209
0
        }
210
8
        _contain_null = _is_nullable_col && contain_null;
211
8
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE16set_contain_nullEb
Line
Count
Source
204
386
    void set_contain_null(bool contain_null) {
205
386
        if (contain_null) {
206
130
            set_empty_value_range();
207
256
        } else {
208
256
            set_whole_value_range();
209
256
        }
210
386
        _contain_null = _is_nullable_col && contain_null;
211
386
    }
_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
179k
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE9precisionEv
Line
Count
Source
213
42.9k
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE9precisionEv
Line
Count
Source
213
88
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE9precisionEv
Line
Count
Source
213
4.52k
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE9precisionEv
Line
Count
Source
213
997
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE9precisionEv
Line
Count
Source
213
12
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE9precisionEv
Line
Count
Source
213
128
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE9precisionEv
Line
Count
Source
213
253
    int precision() const { return _precision; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE9precisionEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE9precisionEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE9precisionEv
Line
Count
Source
213
70
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE9precisionEv
Line
Count
Source
213
125k
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE9precisionEv
Line
Count
Source
213
3.46k
    int precision() const { return _precision; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE9precisionEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE9precisionEv
Line
Count
Source
213
568
    int precision() const { return _precision; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE9precisionEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE9precisionEv
Line
Count
Source
213
618
    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
284
    int precision() const { return _precision; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE9precisionEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE9precisionEv
Line
Count
Source
213
22
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE9precisionEv
Line
Count
Source
213
794
    int precision() const { return _precision; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE9precisionEv
Line
Count
Source
213
64
    int precision() const { return _precision; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE9precisionEv
214
215
545k
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE5scaleEv
Line
Count
Source
215
50.5k
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE5scaleEv
Line
Count
Source
215
14.2k
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE5scaleEv
Line
Count
Source
215
10.5k
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE5scaleEv
Line
Count
Source
215
1.49k
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE5scaleEv
Line
Count
Source
215
272
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE5scaleEv
Line
Count
Source
215
128
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE5scaleEv
Line
Count
Source
215
253
    int scale() const { return _scale; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE5scaleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE5scaleEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE5scaleEv
Line
Count
Source
215
70
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE5scaleEv
Line
Count
Source
215
457k
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE5scaleEv
Line
Count
Source
215
3.46k
    int scale() const { return _scale; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE5scaleEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE5scaleEv
Line
Count
Source
215
4.80k
    int scale() const { return _scale; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE5scaleEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE5scaleEv
Line
Count
Source
215
904
    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
628
    int scale() const { return _scale; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE5scaleEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE5scaleEv
Line
Count
Source
215
22
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE5scaleEv
Line
Count
Source
215
794
    int scale() const { return _scale; }
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE5scaleEv
Line
Count
Source
215
64
    int scale() const { return _scale; }
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE5scaleEv
216
217
    static void add_fixed_value_range(ColumnValueRange<primitive_type>& range, SQLFilterOp op,
218
175k
                                      const CppType& value) {
219
175k
        static_cast<void>(range.add_fixed_value(value));
220
175k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKa
Line
Count
Source
218
42.7k
                                      const CppType& value) {
219
42.7k
        static_cast<void>(range.add_fixed_value(value));
220
42.7k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKs
Line
Count
Source
218
42
                                      const CppType& value) {
219
42
        static_cast<void>(range.add_fixed_value(value));
220
42
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKi
Line
Count
Source
218
4.60k
                                      const CppType& value) {
219
4.60k
        static_cast<void>(range.add_fixed_value(value));
220
4.60k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKl
Line
Count
Source
218
1.12k
                                      const CppType& value) {
219
1.12k
        static_cast<void>(range.add_fixed_value(value));
220
1.12k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKn
Line
Count
Source
218
14
                                      const CppType& value) {
219
14
        static_cast<void>(range.add_fixed_value(value));
220
14
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKf
Line
Count
Source
218
36
                                      const CppType& value) {
219
36
        static_cast<void>(range.add_fixed_value(value));
220
36
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKd
Line
Count
Source
218
44
                                      const CppType& value) {
219
44
        static_cast<void>(range.add_fixed_value(value));
220
44
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKj
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKo
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
218
34
                                      const CppType& value) {
219
34
        static_cast<void>(range.add_fixed_value(value));
220
34
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
218
125k
                                      const CppType& value) {
219
125k
        static_cast<void>(range.add_fixed_value(value));
220
125k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
218
1.21k
                                      const CppType& value) {
219
1.21k
        static_cast<void>(range.add_fixed_value(value));
220
1.21k
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_16VecDateTimeValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_11DateV2ValueINS_15DateV2ValueTypeEEE
Line
Count
Source
218
278
                                      const CppType& value) {
219
278
        static_cast<void>(range.add_fixed_value(value));
220
278
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_16VecDateTimeValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_11DateV2ValueINS_19DateTimeV2ValueTypeEEE
Line
Count
Source
218
238
                                      const CppType& value) {
219
238
        static_cast<void>(range.add_fixed_value(value));
220
238
    }
_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
202
                                      const CppType& value) {
219
202
        static_cast<void>(range.add_fixed_value(value));
220
202
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_9StringRefE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_7DecimalIiEE
Line
Count
Source
218
12
                                      const CppType& value) {
219
12
        static_cast<void>(range.add_fixed_value(value));
220
12
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_7DecimalIlEE
Line
Count
Source
218
188
                                      const CppType& value) {
219
188
        static_cast<void>(range.add_fixed_value(value));
220
188
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE21add_fixed_value_rangeERS2_NS_11SQLFilterOpERKNS_12Decimal128V3E
Line
Count
Source
218
12
                                      const CppType& value) {
219
12
        static_cast<void>(range.add_fixed_value(value));
220
12
    }
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
340
                               const CppType& value) {}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE14empty_functionERS2_NS_11SQLFilterOpERKa
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE14empty_functionERS2_NS_11SQLFilterOpERKs
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE14empty_functionERS2_NS_11SQLFilterOpERKi
Line
Count
Source
228
184
                               const CppType& value) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE14empty_functionERS2_NS_11SQLFilterOpERKl
Line
Count
Source
228
4
                               const CppType& value) {}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE14empty_functionERS2_NS_11SQLFilterOpERKn
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE14empty_functionERS2_NS_11SQLFilterOpERKf
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE14empty_functionERS2_NS_11SQLFilterOpERKd
Line
Count
Source
228
20
                               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
6
                               const CppType& value) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE14empty_functionERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
228
6
                               const CppType& value) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE14empty_functionERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
228
98
                               const CppType& value) {}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE14empty_functionERS2_NS_11SQLFilterOpERKNS_16VecDateTimeValueE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE14empty_functionERS2_NS_11SQLFilterOpERKNS_11DateV2ValueINS_15DateV2ValueTypeEEE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE14empty_functionERS2_NS_11SQLFilterOpERKNS_16VecDateTimeValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE14empty_functionERS2_NS_11SQLFilterOpERKNS_11DateV2ValueINS_19DateTimeV2ValueTypeEEE
Line
Count
Source
228
8
                               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
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE14empty_functionERS2_NS_11SQLFilterOpERKh
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE14empty_functionERS2_NS_11SQLFilterOpERKNS_9StringRefE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE14empty_functionERS2_NS_11SQLFilterOpERKNS_7DecimalIiEE
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE14empty_functionERS2_NS_11SQLFilterOpERKNS_7DecimalIlEE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE14empty_functionERS2_NS_11SQLFilterOpERKNS_12Decimal128V3E
Line
Count
Source
228
8
                               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
4.03k
                                const CppType& value) {
232
4.03k
        static_cast<void>(range.add_range(op, value));
233
4.03k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE15add_value_rangeERS2_NS_11SQLFilterOpERKa
Line
Count
Source
231
24
                                const CppType& value) {
232
24
        static_cast<void>(range.add_range(op, value));
233
24
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE15add_value_rangeERS2_NS_11SQLFilterOpERKs
Line
Count
Source
231
12
                                const CppType& value) {
232
12
        static_cast<void>(range.add_range(op, value));
233
12
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE15add_value_rangeERS2_NS_11SQLFilterOpERKi
Line
Count
Source
231
2.19k
                                const CppType& value) {
232
2.19k
        static_cast<void>(range.add_range(op, value));
233
2.19k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE15add_value_rangeERS2_NS_11SQLFilterOpERKl
Line
Count
Source
231
298
                                const CppType& value) {
232
298
        static_cast<void>(range.add_range(op, value));
233
298
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE15add_value_rangeERS2_NS_11SQLFilterOpERKn
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE15add_value_rangeERS2_NS_11SQLFilterOpERKf
Line
Count
Source
231
66
                                const CppType& value) {
232
66
        static_cast<void>(range.add_range(op, value));
233
66
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE15add_value_rangeERS2_NS_11SQLFilterOpERKd
Line
Count
Source
231
160
                                const CppType& value) {
232
160
        static_cast<void>(range.add_range(op, value));
233
160
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE15add_value_rangeERS2_NS_11SQLFilterOpERKj
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE15add_value_rangeERS2_NS_11SQLFilterOpERKo
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE15add_value_rangeERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE15add_value_rangeERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
231
32
                                const CppType& value) {
232
32
        static_cast<void>(range.add_range(op, value));
233
32
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE15add_value_rangeERS2_NS_11SQLFilterOpERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
231
156
                                const CppType& value) {
232
156
        static_cast<void>(range.add_range(op, value));
233
156
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE15add_value_rangeERS2_NS_11SQLFilterOpERKNS_16VecDateTimeValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE15add_value_rangeERS2_NS_11SQLFilterOpERKNS_11DateV2ValueINS_15DateV2ValueTypeEEE
Line
Count
Source
231
288
                                const CppType& value) {
232
288
        static_cast<void>(range.add_range(op, value));
233
288
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE15add_value_rangeERS2_NS_11SQLFilterOpERKNS_16VecDateTimeValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE15add_value_rangeERS2_NS_11SQLFilterOpERKNS_11DateV2ValueINS_19DateTimeV2ValueTypeEEE
Line
Count
Source
231
374
                                const CppType& value) {
232
374
        static_cast<void>(range.add_range(op, value));
233
374
    }
_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
6
                                const CppType& value) {
232
6
        static_cast<void>(range.add_range(op, value));
233
6
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE15add_value_rangeERS2_NS_11SQLFilterOpERKNS_7DecimalIlEE
Line
Count
Source
231
332
                                const CppType& value) {
232
332
        static_cast<void>(range.add_range(op, value));
233
332
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE15add_value_rangeERS2_NS_11SQLFilterOpERKNS_12Decimal128V3E
Line
Count
Source
231
36
                                const CppType& value) {
232
36
        static_cast<void>(range.add_range(op, value));
233
36
    }
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
179k
                                                                            int scale) {
238
179k
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
179k
                                                precision, scale);
240
179k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
42.8k
                                                                            int scale) {
238
42.8k
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
42.8k
                                                precision, scale);
240
42.8k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
88
                                                                            int scale) {
238
88
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
88
                                                precision, scale);
240
88
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
4.51k
                                                                            int scale) {
238
4.51k
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
4.51k
                                                precision, scale);
240
4.51k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
995
                                                                            int scale) {
238
995
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
995
                                                precision, scale);
240
995
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
12
                                                                            int scale) {
238
12
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
12
                                                precision, scale);
240
12
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
128
                                                                            int scale) {
238
128
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
128
                                                precision, scale);
240
128
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
253
                                                                            int scale) {
238
253
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
253
                                                precision, scale);
240
253
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE31create_empty_column_value_rangeEbii
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE31create_empty_column_value_rangeEbii
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
70
                                                                            int scale) {
238
70
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
70
                                                precision, scale);
240
70
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
124k
                                                                            int scale) {
238
124k
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
124k
                                                precision, scale);
240
124k
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
3.44k
                                                                            int scale) {
238
3.44k
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
3.44k
                                                precision, scale);
240
3.44k
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE31create_empty_column_value_rangeEbii
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
564
                                                                            int scale) {
238
564
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
564
                                                precision, scale);
240
564
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE31create_empty_column_value_rangeEbii
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
616
                                                                            int scale) {
238
616
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
616
                                                precision, scale);
240
616
    }
_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
284
                                                                            int scale) {
238
284
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
284
                                                precision, scale);
240
284
    }
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE31create_empty_column_value_rangeEbii
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
22
                                                                            int scale) {
238
22
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
22
                                                precision, scale);
240
22
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
788
                                                                            int scale) {
238
788
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
788
                                                precision, scale);
240
788
    }
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE31create_empty_column_value_rangeEbii
Line
Count
Source
237
64
                                                                            int scale) {
238
64
        return ColumnValueRange<primitive_type>("", TYPE_MAX, TYPE_MIN, is_nullable_col, false,
239
64
                                                precision, scale);
240
64
    }
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
215k
    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
0
    std::string debug_string() {
310
0
        std::stringstream ss;
311
0
        DCHECK(_begin_scan_keys.size() == _end_scan_keys.size());
312
0
        ss << "ScanKeys:";
313
314
0
        for (int i = 0; i < _begin_scan_keys.size(); ++i) {
315
0
            ss << "ScanKey=" << (_begin_include ? "[" : "(") << _begin_scan_keys[i] << " : "
316
0
               << _end_scan_keys[i] << (_end_include ? "]" : ")");
317
0
        }
318
0
        return ss.str();
319
0
    }
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
47.5k
    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
819k
        : _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
1.00M
        : _column_name(std::move(col_name)),
381
1.00M
          _column_type(primitive_type),
382
668k
          _low_value(min),
383
668k
          _high_value(max),
384
1.00M
          _low_op(FILTER_LARGER_OR_EQUAL),
385
1.00M
          _high_op(FILTER_LESS_OR_EQUAL),
386
1.00M
          _is_nullable_col(is_nullable_col),
387
1.00M
          _contain_null(is_nullable_col && contain_null),
388
1.00M
          _precision(precision),
389
1.00M
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKaSA_bbii
Line
Count
Source
380
90.1k
        : _column_name(std::move(col_name)),
381
90.1k
          _column_type(primitive_type),
382
90.1k
          _low_value(min),
383
90.1k
          _high_value(max),
384
90.1k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
90.1k
          _high_op(FILTER_LESS_OR_EQUAL),
386
90.1k
          _is_nullable_col(is_nullable_col),
387
90.1k
          _contain_null(is_nullable_col && contain_null),
388
90.1k
          _precision(precision),
389
90.1k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKsSA_bbii
Line
Count
Source
380
4.65k
        : _column_name(std::move(col_name)),
381
4.65k
          _column_type(primitive_type),
382
4.65k
          _low_value(min),
383
4.65k
          _high_value(max),
384
4.65k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
4.65k
          _high_op(FILTER_LESS_OR_EQUAL),
386
4.65k
          _is_nullable_col(is_nullable_col),
387
4.65k
          _contain_null(is_nullable_col && contain_null),
388
4.65k
          _precision(precision),
389
4.65k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKiSA_bbii
Line
Count
Source
380
39.5k
        : _column_name(std::move(col_name)),
381
39.5k
          _column_type(primitive_type),
382
39.5k
          _low_value(min),
383
39.5k
          _high_value(max),
384
39.5k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
39.5k
          _high_op(FILTER_LESS_OR_EQUAL),
386
39.5k
          _is_nullable_col(is_nullable_col),
387
39.5k
          _contain_null(is_nullable_col && contain_null),
388
39.5k
          _precision(precision),
389
39.5k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKlSA_bbii
Line
Count
Source
380
180k
        : _column_name(std::move(col_name)),
381
180k
          _column_type(primitive_type),
382
180k
          _low_value(min),
383
180k
          _high_value(max),
384
180k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
180k
          _high_op(FILTER_LESS_OR_EQUAL),
386
180k
          _is_nullable_col(is_nullable_col),
387
180k
          _contain_null(is_nullable_col && contain_null),
388
180k
          _precision(precision),
389
180k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKnSA_bbii
Line
Count
Source
380
1.08k
        : _column_name(std::move(col_name)),
381
1.08k
          _column_type(primitive_type),
382
1.08k
          _low_value(min),
383
1.08k
          _high_value(max),
384
1.08k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
1.08k
          _high_op(FILTER_LESS_OR_EQUAL),
386
1.08k
          _is_nullable_col(is_nullable_col),
387
1.08k
          _contain_null(is_nullable_col && contain_null),
388
1.08k
          _precision(precision),
389
1.08k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKfSA_bbii
Line
Count
Source
380
4.40k
        : _column_name(std::move(col_name)),
381
4.40k
          _column_type(primitive_type),
382
4.40k
          _low_value(min),
383
4.40k
          _high_value(max),
384
4.40k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
4.40k
          _high_op(FILTER_LESS_OR_EQUAL),
386
4.40k
          _is_nullable_col(is_nullable_col),
387
4.40k
          _contain_null(is_nullable_col && contain_null),
388
4.40k
          _precision(precision),
389
4.40k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKdSA_bbii
Line
Count
Source
380
6.73k
        : _column_name(std::move(col_name)),
381
6.73k
          _column_type(primitive_type),
382
6.73k
          _low_value(min),
383
6.73k
          _high_value(max),
384
6.73k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
6.73k
          _high_op(FILTER_LESS_OR_EQUAL),
386
6.73k
          _is_nullable_col(is_nullable_col),
387
6.73k
          _contain_null(is_nullable_col && contain_null),
388
6.73k
          _precision(precision),
389
6.73k
          _scale(scale) {}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKjSA_bbii
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKoSA_bbii
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS8_SA_bbii
Line
Count
Source
380
4.81k
        : _column_name(std::move(col_name)),
381
4.81k
          _column_type(primitive_type),
382
4.81k
          _low_value(min),
383
4.81k
          _high_value(max),
384
4.81k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
4.81k
          _high_op(FILTER_LESS_OR_EQUAL),
386
4.81k
          _is_nullable_col(is_nullable_col),
387
4.81k
          _contain_null(is_nullable_col && contain_null),
388
4.81k
          _precision(precision),
389
4.81k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS8_SA_bbii
Line
Count
Source
380
509k
        : _column_name(std::move(col_name)),
381
509k
          _column_type(primitive_type),
382
509k
          _low_value(min),
383
509k
          _high_value(max),
384
509k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
509k
          _high_op(FILTER_LESS_OR_EQUAL),
386
509k
          _is_nullable_col(is_nullable_col),
387
509k
          _contain_null(is_nullable_col && contain_null),
388
509k
          _precision(precision),
389
509k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS8_SA_bbii
Line
Count
Source
380
80.3k
        : _column_name(std::move(col_name)),
381
80.3k
          _column_type(primitive_type),
382
80.3k
          _low_value(min),
383
80.3k
          _high_value(max),
384
80.3k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
80.3k
          _high_op(FILTER_LESS_OR_EQUAL),
386
80.3k
          _is_nullable_col(is_nullable_col),
387
80.3k
          _contain_null(is_nullable_col && contain_null),
388
80.3k
          _precision(precision),
389
80.3k
          _scale(scale) {}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_16VecDateTimeValueESB_bbii
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_11DateV2ValueINS_15DateV2ValueTypeEEESD_bbii
Line
Count
Source
380
6.06k
        : _column_name(std::move(col_name)),
381
6.06k
          _column_type(primitive_type),
382
6.06k
          _low_value(min),
383
6.06k
          _high_value(max),
384
6.06k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
6.06k
          _high_op(FILTER_LESS_OR_EQUAL),
386
6.06k
          _is_nullable_col(is_nullable_col),
387
6.06k
          _contain_null(is_nullable_col && contain_null),
388
6.06k
          _precision(precision),
389
6.06k
          _scale(scale) {}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_16VecDateTimeValueESB_bbii
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_11DateV2ValueINS_19DateTimeV2ValueTypeEEESD_bbii
Line
Count
Source
380
52.5k
        : _column_name(std::move(col_name)),
381
52.5k
          _column_type(primitive_type),
382
52.5k
          _low_value(min),
383
52.5k
          _high_value(max),
384
52.5k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
52.5k
          _high_op(FILTER_LESS_OR_EQUAL),
386
52.5k
          _is_nullable_col(is_nullable_col),
387
52.5k
          _contain_null(is_nullable_col && contain_null),
388
52.5k
          _precision(precision),
389
52.5k
          _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) {}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_14DecimalV2ValueESB_bbii
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKhSA_bbii
Line
Count
Source
380
5.05k
        : _column_name(std::move(col_name)),
381
5.05k
          _column_type(primitive_type),
382
5.05k
          _low_value(min),
383
5.05k
          _high_value(max),
384
5.05k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
5.05k
          _high_op(FILTER_LESS_OR_EQUAL),
386
5.05k
          _is_nullable_col(is_nullable_col),
387
5.05k
          _contain_null(is_nullable_col && contain_null),
388
5.05k
          _precision(precision),
389
5.05k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_9StringRefESB_bbii
Line
Count
Source
380
86
        : _column_name(std::move(col_name)),
381
86
          _column_type(primitive_type),
382
86
          _low_value(min),
383
86
          _high_value(max),
384
86
          _low_op(FILTER_LARGER_OR_EQUAL),
385
86
          _high_op(FILTER_LESS_OR_EQUAL),
386
86
          _is_nullable_col(is_nullable_col),
387
86
          _contain_null(is_nullable_col && contain_null),
388
86
          _precision(precision),
389
86
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_7DecimalIiEESC_bbii
Line
Count
Source
380
4.37k
        : _column_name(std::move(col_name)),
381
4.37k
          _column_type(primitive_type),
382
4.37k
          _low_value(min),
383
4.37k
          _high_value(max),
384
4.37k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
4.37k
          _high_op(FILTER_LESS_OR_EQUAL),
386
4.37k
          _is_nullable_col(is_nullable_col),
387
4.37k
          _contain_null(is_nullable_col && contain_null),
388
4.37k
          _precision(precision),
389
4.37k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_7DecimalIlEESC_bbii
Line
Count
Source
380
6.81k
        : _column_name(std::move(col_name)),
381
6.81k
          _column_type(primitive_type),
382
6.81k
          _low_value(min),
383
6.81k
          _high_value(max),
384
6.81k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
6.81k
          _high_op(FILTER_LESS_OR_EQUAL),
386
6.81k
          _is_nullable_col(is_nullable_col),
387
6.81k
          _contain_null(is_nullable_col && contain_null),
388
6.81k
          _precision(precision),
389
6.81k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_12Decimal128V3ESB_bbii
Line
Count
Source
380
3.31k
        : _column_name(std::move(col_name)),
381
3.31k
          _column_type(primitive_type),
382
3.31k
          _low_value(min),
383
3.31k
          _high_value(max),
384
3.31k
          _low_op(FILTER_LARGER_OR_EQUAL),
385
3.31k
          _high_op(FILTER_LESS_OR_EQUAL),
386
3.31k
          _is_nullable_col(is_nullable_col),
387
3.31k
          _contain_null(is_nullable_col && contain_null),
388
3.31k
          _precision(precision),
389
3.31k
          _scale(scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_7DecimalIN4wide7integerILm256EiEEEESF_bbii
Line
Count
Source
380
4
        : _column_name(std::move(col_name)),
381
4
          _column_type(primitive_type),
382
4
          _low_value(min),
383
4
          _high_value(max),
384
4
          _low_op(FILTER_LARGER_OR_EQUAL),
385
4
          _high_op(FILTER_LESS_OR_EQUAL),
386
4
          _is_nullable_col(is_nullable_col),
387
4
          _contain_null(is_nullable_col && contain_null),
388
4
          _precision(precision),
389
4
          _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
819k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
819k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
47.2k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
47.2k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
4.56k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
4.56k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
34.9k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
34.9k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
179k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
179k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
1.07k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
1.07k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
4.26k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
4.26k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
6.47k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
6.47k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
4.72k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
4.72k
                           is_nullable_col, precision, scale) {}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
5.49k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
5.49k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
51.8k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
51.8k
                           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
384k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
384k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
76.8k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
76.8k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
86
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
86
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
4.34k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
4.34k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
6.01k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
6.01k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
3.24k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
3.24k
                           is_nullable_col, precision, scale) {}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
4
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
4
                           is_nullable_col, precision, scale) {}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Line
Count
Source
394
4.76k
        : ColumnValueRange(std::move(col_name), TYPE_MIN, TYPE_MAX, is_nullable_col,
395
4.76k
                           is_nullable_col, precision, scale) {}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EEC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbii
396
397
template <PrimitiveType primitive_type>
398
176k
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
176k
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
176k
    _fixed_values.insert(value);
404
176k
    _contain_null = false;
405
406
176k
    _high_value = TYPE_MIN;
407
176k
    _low_value = TYPE_MAX;
408
409
176k
    return Status::OK();
410
176k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE15add_fixed_valueERKa
Line
Count
Source
398
42.8k
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
42.8k
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
42.8k
    _fixed_values.insert(value);
404
42.8k
    _contain_null = false;
405
406
42.8k
    _high_value = TYPE_MIN;
407
42.8k
    _low_value = TYPE_MAX;
408
409
42.8k
    return Status::OK();
410
42.8k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE15add_fixed_valueERKs
Line
Count
Source
398
42
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
42
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
42
    _fixed_values.insert(value);
404
42
    _contain_null = false;
405
406
42
    _high_value = TYPE_MIN;
407
42
    _low_value = TYPE_MAX;
408
409
42
    return Status::OK();
410
42
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE15add_fixed_valueERKi
Line
Count
Source
398
4.65k
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
4.65k
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
4.65k
    _fixed_values.insert(value);
404
4.65k
    _contain_null = false;
405
406
4.65k
    _high_value = TYPE_MIN;
407
4.65k
    _low_value = TYPE_MAX;
408
409
4.65k
    return Status::OK();
410
4.65k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE15add_fixed_valueERKl
Line
Count
Source
398
1.16k
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
1.16k
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
1.16k
    _fixed_values.insert(value);
404
1.16k
    _contain_null = false;
405
406
1.16k
    _high_value = TYPE_MIN;
407
1.16k
    _low_value = TYPE_MAX;
408
409
1.16k
    return Status::OK();
410
1.16k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE15add_fixed_valueERKn
Line
Count
Source
398
14
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
14
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
14
    _fixed_values.insert(value);
404
14
    _contain_null = false;
405
406
14
    _high_value = TYPE_MIN;
407
14
    _low_value = TYPE_MAX;
408
409
14
    return Status::OK();
410
14
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE15add_fixed_valueERKf
Line
Count
Source
398
52
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
52
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
52
    _fixed_values.insert(value);
404
52
    _contain_null = false;
405
406
52
    _high_value = TYPE_MIN;
407
52
    _low_value = TYPE_MAX;
408
409
52
    return Status::OK();
410
52
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE15add_fixed_valueERKd
Line
Count
Source
398
46
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
46
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
46
    _fixed_values.insert(value);
404
46
    _contain_null = false;
405
406
46
    _high_value = TYPE_MIN;
407
46
    _low_value = TYPE_MAX;
408
409
46
    return Status::OK();
410
46
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE15add_fixed_valueERKj
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE15add_fixed_valueERKo
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE15add_fixed_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
398
34
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
34
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
34
    _fixed_values.insert(value);
404
34
    _contain_null = false;
405
406
34
    _high_value = TYPE_MIN;
407
34
    _low_value = TYPE_MAX;
408
409
34
    return Status::OK();
410
34
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE15add_fixed_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
398
125k
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
125k
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
125k
    _fixed_values.insert(value);
404
125k
    _contain_null = false;
405
406
125k
    _high_value = TYPE_MIN;
407
125k
    _low_value = TYPE_MAX;
408
409
125k
    return Status::OK();
410
125k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE15add_fixed_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
398
1.25k
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
1.25k
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
1.25k
    _fixed_values.insert(value);
404
1.25k
    _contain_null = false;
405
406
1.25k
    _high_value = TYPE_MIN;
407
1.25k
    _low_value = TYPE_MAX;
408
409
1.25k
    return Status::OK();
410
1.25k
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE15add_fixed_valueERKNS_16VecDateTimeValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE15add_fixed_valueERKNS_11DateV2ValueINS_15DateV2ValueTypeEEE
Line
Count
Source
398
298
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
298
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
298
    _fixed_values.insert(value);
404
298
    _contain_null = false;
405
406
298
    _high_value = TYPE_MIN;
407
298
    _low_value = TYPE_MAX;
408
409
298
    return Status::OK();
410
298
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE15add_fixed_valueERKNS_16VecDateTimeValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE15add_fixed_valueERKNS_11DateV2ValueINS_19DateTimeV2ValueTypeEEE
Line
Count
Source
398
286
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
286
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
286
    _fixed_values.insert(value);
404
286
    _contain_null = false;
405
406
286
    _high_value = TYPE_MIN;
407
286
    _low_value = TYPE_MAX;
408
409
286
    return Status::OK();
410
286
}
_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
218
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
218
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
218
    _fixed_values.insert(value);
404
218
    _contain_null = false;
405
406
218
    _high_value = TYPE_MIN;
407
218
    _low_value = TYPE_MAX;
408
409
218
    return Status::OK();
410
218
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE15add_fixed_valueERKNS_9StringRefE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE15add_fixed_valueERKNS_7DecimalIiEE
Line
Count
Source
398
12
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
12
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
12
    _fixed_values.insert(value);
404
12
    _contain_null = false;
405
406
12
    _high_value = TYPE_MIN;
407
12
    _low_value = TYPE_MAX;
408
409
12
    return Status::OK();
410
12
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE15add_fixed_valueERKNS_7DecimalIlEE
Line
Count
Source
398
240
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
240
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
240
    _fixed_values.insert(value);
404
240
    _contain_null = false;
405
406
240
    _high_value = TYPE_MIN;
407
240
    _low_value = TYPE_MAX;
408
409
240
    return Status::OK();
410
240
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE15add_fixed_valueERKNS_12Decimal128V3E
Line
Count
Source
398
12
Status ColumnValueRange<primitive_type>::add_fixed_value(const CppType& value) {
399
12
    if (INVALID_TYPE == _column_type) {
400
0
        return Status::InternalError("AddFixedValue failed, Invalid type");
401
0
    }
402
403
12
    _fixed_values.insert(value);
404
12
    _contain_null = false;
405
406
12
    _high_value = TYPE_MIN;
407
12
    _low_value = TYPE_MAX;
408
409
12
    return Status::OK();
410
12
}
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
2.72M
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
2.72M
    return _fixed_values.size() != 0;
420
2.72M
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE20is_fixed_value_rangeEv
Line
Count
Source
418
389k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
389k
    return _fixed_values.size() != 0;
420
389k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE20is_fixed_value_rangeEv
Line
Count
Source
418
5.50k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
5.50k
    return _fixed_values.size() != 0;
420
5.50k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE20is_fixed_value_rangeEv
Line
Count
Source
418
62.5k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
62.5k
    return _fixed_values.size() != 0;
420
62.5k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE20is_fixed_value_rangeEv
Line
Count
Source
418
185k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
185k
    return _fixed_values.size() != 0;
420
185k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE20is_fixed_value_rangeEv
Line
Count
Source
418
1.68k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
1.68k
    return _fixed_values.size() != 0;
420
1.68k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE20is_fixed_value_rangeEv
Line
Count
Source
418
4.65k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
4.65k
    return _fixed_values.size() != 0;
420
4.65k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE20is_fixed_value_rangeEv
Line
Count
Source
418
7.11k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
7.11k
    return _fixed_values.size() != 0;
420
7.11k
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE20is_fixed_value_rangeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE20is_fixed_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE20is_fixed_value_rangeEv
Line
Count
Source
418
5.10k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
5.10k
    return _fixed_values.size() != 0;
420
5.10k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE20is_fixed_value_rangeEv
Line
Count
Source
418
1.88M
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
1.88M
    return _fixed_values.size() != 0;
420
1.88M
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE20is_fixed_value_rangeEv
Line
Count
Source
418
97.7k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
97.7k
    return _fixed_values.size() != 0;
420
97.7k
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE20is_fixed_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE20is_fixed_value_rangeEv
Line
Count
Source
418
7.97k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
7.97k
    return _fixed_values.size() != 0;
420
7.97k
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE20is_fixed_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE20is_fixed_value_rangeEv
Line
Count
Source
418
54.4k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
54.4k
    return _fixed_values.size() != 0;
420
54.4k
}
_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
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE20is_fixed_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE20is_fixed_value_rangeEv
Line
Count
Source
418
7.19k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
7.19k
    return _fixed_values.size() != 0;
420
7.19k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE20is_fixed_value_rangeEv
Line
Count
Source
418
86
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
86
    return _fixed_values.size() != 0;
420
86
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE20is_fixed_value_rangeEv
Line
Count
Source
418
4.46k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
4.46k
    return _fixed_values.size() != 0;
420
4.46k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE20is_fixed_value_rangeEv
Line
Count
Source
418
9.02k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
9.02k
    return _fixed_values.size() != 0;
420
9.02k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE20is_fixed_value_rangeEv
Line
Count
Source
418
3.42k
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
3.42k
    return _fixed_values.size() != 0;
420
3.42k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE20is_fixed_value_rangeEv
Line
Count
Source
418
4
bool ColumnValueRange<primitive_type>::is_fixed_value_range() const {
419
4
    return _fixed_values.size() != 0;
420
4
}
421
422
template <PrimitiveType primitive_type>
423
871k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
871k
    return Compare::greater(_high_value, _low_value);
425
871k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE20is_scope_value_rangeEv
Line
Count
Source
423
47.4k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
47.4k
    return Compare::greater(_high_value, _low_value);
425
47.4k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE20is_scope_value_rangeEv
Line
Count
Source
423
4.78k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
4.78k
    return Compare::greater(_high_value, _low_value);
425
4.78k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE20is_scope_value_rangeEv
Line
Count
Source
423
38.7k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
38.7k
    return Compare::greater(_high_value, _low_value);
425
38.7k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE20is_scope_value_rangeEv
Line
Count
Source
423
179k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
179k
    return Compare::greater(_high_value, _low_value);
425
179k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE20is_scope_value_rangeEv
Line
Count
Source
423
1.20k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
1.20k
    return Compare::greater(_high_value, _low_value);
425
1.20k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE20is_scope_value_rangeEv
Line
Count
Source
423
4.31k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
4.31k
    return Compare::greater(_high_value, _low_value);
425
4.31k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE20is_scope_value_rangeEv
Line
Count
Source
423
6.54k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
6.54k
    return Compare::greater(_high_value, _low_value);
425
6.54k
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE20is_scope_value_rangeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE20is_scope_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE20is_scope_value_rangeEv
Line
Count
Source
423
4.77k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
4.77k
    return Compare::greater(_high_value, _low_value);
425
4.77k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE20is_scope_value_rangeEv
Line
Count
Source
423
426k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
426k
    return Compare::greater(_high_value, _low_value);
425
426k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE20is_scope_value_rangeEv
Line
Count
Source
423
80.9k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
80.9k
    return Compare::greater(_high_value, _low_value);
425
80.9k
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE20is_scope_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE20is_scope_value_rangeEv
Line
Count
Source
423
5.57k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
5.57k
    return Compare::greater(_high_value, _low_value);
425
5.57k
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE20is_scope_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE20is_scope_value_rangeEv
Line
Count
Source
423
51.9k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
51.9k
    return Compare::greater(_high_value, _low_value);
425
51.9k
}
_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
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE20is_scope_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE20is_scope_value_rangeEv
Line
Count
Source
423
5.00k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
5.00k
    return Compare::greater(_high_value, _low_value);
425
5.00k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE20is_scope_value_rangeEv
Line
Count
Source
423
86
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
86
    return Compare::greater(_high_value, _low_value);
425
86
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE20is_scope_value_rangeEv
Line
Count
Source
423
4.35k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
4.35k
    return Compare::greater(_high_value, _low_value);
425
4.35k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE20is_scope_value_rangeEv
Line
Count
Source
423
6.54k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
6.54k
    return Compare::greater(_high_value, _low_value);
425
6.54k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE20is_scope_value_rangeEv
Line
Count
Source
423
3.25k
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
3.25k
    return Compare::greater(_high_value, _low_value);
425
3.25k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE20is_scope_value_rangeEv
Line
Count
Source
423
4
bool ColumnValueRange<primitive_type>::is_scope_value_range() const {
424
4
    return Compare::greater(_high_value, _low_value);
425
4
}
426
427
template <PrimitiveType primitive_type>
428
1.33M
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
1.33M
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
1.33M
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
1.33M
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE20is_empty_value_rangeEv
Line
Count
Source
428
132k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
132k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
132k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
132k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE20is_empty_value_rangeEv
Line
Count
Source
428
4.86k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
4.86k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
4.86k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
4.86k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE20is_empty_value_rangeEv
Line
Count
Source
428
42.3k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
42.3k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
42.3k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
42.3k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE20is_empty_value_rangeEv
Line
Count
Source
428
180k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
180k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
180k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
180k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE20is_empty_value_rangeEv
Line
Count
Source
428
1.22k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
1.22k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
1.22k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
1.22k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE20is_empty_value_rangeEv
Line
Count
Source
428
4.38k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
4.38k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
4.38k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
4.38k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE20is_empty_value_rangeEv
Line
Count
Source
428
6.56k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
6.56k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
6.56k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
6.56k
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE20is_empty_value_rangeEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE20is_empty_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE20is_empty_value_rangeEv
Line
Count
Source
428
4.83k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
4.83k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
4.83k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
4.83k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE20is_empty_value_rangeEv
Line
Count
Source
428
800k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
800k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
800k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
800k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE20is_empty_value_rangeEv
Line
Count
Source
428
83.0k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
83.0k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
83.0k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
83.0k
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE20is_empty_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE20is_empty_value_rangeEv
Line
Count
Source
428
6.09k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
6.09k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
6.09k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
6.09k
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE20is_empty_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE20is_empty_value_rangeEv
Line
Count
Source
428
52.5k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
52.5k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
52.5k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
52.5k
}
_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
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE20is_empty_value_rangeEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE20is_empty_value_rangeEv
Line
Count
Source
428
5.40k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
5.40k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
5.40k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
5.40k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE20is_empty_value_rangeEv
Line
Count
Source
428
86
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
86
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
86
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
86
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE20is_empty_value_rangeEv
Line
Count
Source
428
4.37k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
4.37k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
4.37k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
4.37k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE20is_empty_value_rangeEv
Line
Count
Source
428
6.89k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
6.89k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
6.89k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
6.89k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE20is_empty_value_rangeEv
Line
Count
Source
428
3.27k
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
3.27k
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
3.27k
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
3.27k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE20is_empty_value_rangeEv
Line
Count
Source
428
4
bool ColumnValueRange<primitive_type>::is_empty_value_range() const {
429
4
    if (INVALID_TYPE == _column_type) {
430
0
        return true;
431
0
    }
432
433
4
    return (!is_fixed_value_range() && !is_scope_value_range() && !contain_null());
434
4
}
435
436
template <PrimitiveType primitive_type>
437
4.61k
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
4.61k
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
4.61k
    if (!is_enumeration_type(_column_type)) {
443
974
        return false;
444
974
    }
445
446
3.64k
    return true;
447
4.61k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE26is_fixed_value_convertibleEv
Line
Count
Source
437
90
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
90
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
90
    if (!is_enumeration_type(_column_type)) {
443
0
        return false;
444
0
    }
445
446
90
    return true;
447
90
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE26is_fixed_value_convertibleEv
Line
Count
Source
437
150
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
150
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
150
    if (!is_enumeration_type(_column_type)) {
443
0
        return false;
444
0
    }
445
446
150
    return true;
447
150
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE26is_fixed_value_convertibleEv
Line
Count
Source
437
2.96k
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
2.96k
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
2.96k
    if (!is_enumeration_type(_column_type)) {
443
0
        return false;
444
0
    }
445
446
2.96k
    return true;
447
2.96k
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE26is_fixed_value_convertibleEv
Line
Count
Source
437
250
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
250
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
250
    if (!is_enumeration_type(_column_type)) {
443
0
        return false;
444
0
    }
445
446
250
    return true;
447
250
}
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE26is_fixed_value_convertibleEv
Line
Count
Source
437
130
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
130
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
130
    if (!is_enumeration_type(_column_type)) {
443
0
        return false;
444
0
    }
445
446
130
    return true;
447
130
}
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
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE26is_fixed_value_convertibleEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE26is_fixed_value_convertibleEv
Line
Count
Source
437
668
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
668
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
668
    if (!is_enumeration_type(_column_type)) {
443
658
        return false;
444
658
    }
445
446
10
    return true;
447
668
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE26is_fixed_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE26is_fixed_value_convertibleEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE26is_fixed_value_convertibleEv
Line
Count
Source
437
44
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
44
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
44
    if (!is_enumeration_type(_column_type)) {
443
0
        return false;
444
0
    }
445
446
44
    return true;
447
44
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE26is_fixed_value_convertibleEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE26is_fixed_value_convertibleEv
Line
Count
Source
437
144
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
144
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
144
    if (!is_enumeration_type(_column_type)) {
443
144
        return false;
444
144
    }
445
446
0
    return true;
447
144
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE42EE26is_fixed_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE20EE26is_fixed_value_convertibleEv
_ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE26is_fixed_value_convertibleEv
Line
Count
Source
437
172
bool ColumnValueRange<primitive_type>::is_fixed_value_convertible() const {
438
172
    if (is_fixed_value_range()) {
439
0
        return false;
440
0
    }
441
442
172
    if (!is_enumeration_type(_column_type)) {
443
172
        return false;
444
172
    }
445
446
0
    return true;
447
172
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE26is_fixed_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE26is_fixed_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE26is_fixed_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE26is_fixed_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE26is_fixed_value_convertibleEv
448
449
template <PrimitiveType primitive_type>
450
0
bool ColumnValueRange<primitive_type>::is_range_value_convertible() const {
451
0
    if (!is_fixed_value_range()) {
452
0
        return false;
453
0
    }
454
455
0
    if (TYPE_NULL == _column_type || TYPE_BOOLEAN == _column_type) {
456
0
        return false;
457
0
    }
458
459
0
    return true;
460
0
}
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE26is_range_value_convertibleEv
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
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE26is_range_value_convertibleEv
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE26is_range_value_convertibleEv
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
Unexecuted instantiation: _ZNK5doris16ColumnValueRangeILNS_13PrimitiveTypeE2EE26is_range_value_convertibleEv
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
3.49k
        bool& begin_include, bool& end_include) {
467
3.49k
    if constexpr (!_is_reject_split_type) {
468
3.49k
        begin_include = true;
469
3.49k
        end_include = true;
470
471
3.49k
        bool is_empty = false;
472
473
3.49k
        if (!is_begin_include()) {
474
42
            if (Compare::equal(_low_value, TYPE_MAX)) {
475
0
                is_empty = true;
476
42
            } else {
477
42
                ++_low_value;
478
42
            }
479
42
        }
480
481
3.49k
        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
3.49k
        if (Compare::less(_high_value, _low_value)) {
490
0
            is_empty = true;
491
0
        }
492
493
3.49k
        if (is_empty && !contain_null()) {
494
0
            begin_scan_keys.clear();
495
0
            end_scan_keys.clear();
496
0
            return true;
497
0
        }
498
3.49k
    }
499
3.49k
    return false;
500
3.49k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Line
Count
Source
466
90
        bool& begin_include, bool& end_include) {
467
90
    if constexpr (!_is_reject_split_type) {
468
90
        begin_include = true;
469
90
        end_include = true;
470
471
90
        bool is_empty = false;
472
473
90
        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
90
        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
90
        if (Compare::less(_high_value, _low_value)) {
490
0
            is_empty = true;
491
0
        }
492
493
90
        if (is_empty && !contain_null()) {
494
0
            begin_scan_keys.clear();
495
0
            end_scan_keys.clear();
496
0
            return true;
497
0
        }
498
90
    }
499
90
    return false;
500
90
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Line
Count
Source
466
150
        bool& begin_include, bool& end_include) {
467
150
    if constexpr (!_is_reject_split_type) {
468
150
        begin_include = true;
469
150
        end_include = true;
470
471
150
        bool is_empty = false;
472
473
150
        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
150
        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
150
        if (Compare::less(_high_value, _low_value)) {
490
0
            is_empty = true;
491
0
        }
492
493
150
        if (is_empty && !contain_null()) {
494
0
            begin_scan_keys.clear();
495
0
            end_scan_keys.clear();
496
0
            return true;
497
0
        }
498
150
    }
499
150
    return false;
500
150
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Line
Count
Source
466
2.96k
        bool& begin_include, bool& end_include) {
467
2.96k
    if constexpr (!_is_reject_split_type) {
468
2.96k
        begin_include = true;
469
2.96k
        end_include = true;
470
471
2.96k
        bool is_empty = false;
472
473
2.96k
        if (!is_begin_include()) {
474
42
            if (Compare::equal(_low_value, TYPE_MAX)) {
475
0
                is_empty = true;
476
42
            } else {
477
42
                ++_low_value;
478
42
            }
479
42
        }
480
481
2.96k
        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
2.96k
        if (Compare::less(_high_value, _low_value)) {
490
0
            is_empty = true;
491
0
        }
492
493
2.96k
        if (is_empty && !contain_null()) {
494
0
            begin_scan_keys.clear();
495
0
            end_scan_keys.clear();
496
0
            return true;
497
0
        }
498
2.96k
    }
499
2.96k
    return false;
500
2.96k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE22convert_to_close_rangeERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_
Line
Count
Source
466
250
        bool& begin_include, bool& end_include) {
467
250
    if constexpr (!_is_reject_split_type) {
468
250
        begin_include = true;
469
250
        end_include = true;
470
471
250
        bool is_empty = false;
472
473
250
        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
250
        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
250
        if (Compare::less(_high_value, _low_value)) {
490
0
            is_empty = true;
491
0
        }
492
493
250
        if (is_empty && !contain_null()) {
494
0
            begin_scan_keys.clear();
495
0
            end_scan_keys.clear();
496
0
            return true;
497
0
        }
498
250
    }
499
250
    return false;
500
250
}
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
44
        bool& begin_include, bool& end_include) {
467
44
    if constexpr (!_is_reject_split_type) {
468
44
        begin_include = true;
469
44
        end_include = true;
470
471
44
        bool is_empty = false;
472
473
44
        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
44
        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
44
        if (Compare::less(_high_value, _low_value)) {
490
0
            is_empty = true;
491
0
        }
492
493
44
        if (is_empty && !contain_null()) {
494
0
            begin_scan_keys.clear();
495
0
            end_scan_keys.clear();
496
0
            return true;
497
0
        }
498
44
    }
499
44
    return false;
500
44
}
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
3.49k
        bool& begin_include, bool& end_include, int32_t max_scan_key_num) {
507
3.49k
    if constexpr (!_is_reject_split_type) {
508
3.49k
        CppType min_value = get_range_min_value();
509
3.49k
        CppType max_value = get_range_max_value();
510
3.49k
        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
3.49k
        auto empty_range_only_null = Compare::greater(min_value, max_value);
515
3.49k
        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
3.49k
        auto no_split = [&]() -> bool {
521
3.19k
            begin_scan_keys.emplace_back();
522
3.19k
            begin_scan_keys.back().add_value(
523
3.19k
                    cast_to_string<primitive_type, CppType>(get_range_min_value(), scale()),
524
3.19k
                    contain_null());
525
3.19k
            end_scan_keys.emplace_back();
526
3.19k
            end_scan_keys.back().add_value(
527
3.19k
                    cast_to_string<primitive_type, CppType>(get_range_max_value(), scale()),
528
3.19k
                    empty_range_only_null ? true : false);
529
3.19k
            return true;
530
3.19k
        };
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
2.95k
        auto no_split = [&]() -> bool {
521
2.95k
            begin_scan_keys.emplace_back();
522
2.95k
            begin_scan_keys.back().add_value(
523
2.95k
                    cast_to_string<primitive_type, CppType>(get_range_min_value(), scale()),
524
2.95k
                    contain_null());
525
2.95k
            end_scan_keys.emplace_back();
526
2.95k
            end_scan_keys.back().add_value(
527
2.95k
                    cast_to_string<primitive_type, CppType>(get_range_max_value(), scale()),
528
2.95k
                    empty_range_only_null ? true : false);
529
2.95k
            return true;
530
2.95k
        };
_ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlvE_clEv
Line
Count
Source
520
248
        auto no_split = [&]() -> bool {
521
248
            begin_scan_keys.emplace_back();
522
248
            begin_scan_keys.back().add_value(
523
248
                    cast_to_string<primitive_type, CppType>(get_range_min_value(), scale()),
524
248
                    contain_null());
525
248
            end_scan_keys.emplace_back();
526
248
            end_scan_keys.back().add_value(
527
248
                    cast_to_string<primitive_type, CppType>(get_range_max_value(), scale()),
528
248
                    empty_range_only_null ? true : false);
529
248
            return true;
530
248
        };
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
3.49k
        if (empty_range_only_null || max_scan_key_num == 1) {
532
0
            return no_split();
533
0
        }
534
535
16.6k
        auto cast = [](const CppType& value) {
536
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
2.15k
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
2.15k
                return value;
539
14.4k
            } else {
540
14.4k
                return (int128_t)value;
541
14.4k
            }
542
16.6k
        };
_ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlRKaE_clESA_
Line
Count
Source
535
3.94k
        auto cast = [](const CppType& value) {
536
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
                return value;
539
3.94k
            } else {
540
3.94k
                return (int128_t)value;
541
3.94k
            }
542
3.94k
        };
_ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlRKsE_clESA_
Line
Count
Source
535
7.32k
        auto cast = [](const CppType& value) {
536
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
                return value;
539
7.32k
            } else {
540
7.32k
                return (int128_t)value;
541
7.32k
            }
542
7.32k
        };
_ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlRKiE_clESA_
Line
Count
Source
535
2.96k
        auto cast = [](const CppType& value) {
536
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
                return value;
539
2.96k
            } else {
540
2.96k
                return (int128_t)value;
541
2.96k
            }
542
2.96k
        };
_ZZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_iENKUlRKlE_clESA_
Line
Count
Source
535
250
        auto cast = [](const CppType& value) {
536
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
                return value;
539
250
            } else {
540
250
                return (int128_t)value;
541
250
            }
542
250
        };
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
2.15k
        auto cast = [](const CppType& value) {
536
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
2.15k
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
2.15k
                return value;
539
            } else {
540
                return (int128_t)value;
541
            }
542
2.15k
        };
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
3.49k
        int128_t step_size_may_overflow = (cast(max_value) - min_value) / max_scan_key_num;
547
548
3.49k
        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
3.49k
        if (step_size_may_overflow > MAX_STEP_SIZE) {
551
3.20k
            return no_split();
552
3.20k
        }
553
284
        int step_size = cast_set<int>(step_size_may_overflow);
554
284
        int real_step_size = 0;
555
556
        // Add null key if contain null, must do after no_split check
557
284
        if (contain_null()) {
558
194
            begin_scan_keys.emplace_back();
559
194
            begin_scan_keys.back().add_null();
560
194
            end_scan_keys.emplace_back();
561
194
            end_scan_keys.back().add_null();
562
194
        }
563
13.1k
        while (true) {
564
13.1k
            begin_scan_keys.emplace_back();
565
13.1k
            begin_scan_keys.back().add_value(
566
13.1k
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
567
568
13.1k
            if (cast(max_value) - min_value < step_size) {
569
284
                min_value = max_value;
570
12.8k
            } else {
571
12.8k
                min_value += step_size;
572
12.8k
            }
573
574
13.1k
            end_scan_keys.emplace_back();
575
13.1k
            end_scan_keys.back().add_value(
576
13.1k
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
577
578
13.1k
            if (Compare::equal(min_value, max_value)) {
579
284
                break;
580
284
            }
581
12.8k
            ++min_value;
582
12.8k
            ++real_step_size;
583
12.8k
            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
12.8k
        }
592
593
284
        return step_size != 0;
594
284
    }
595
0
    return false;
596
3.49k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Line
Count
Source
506
90
        bool& begin_include, bool& end_include, int32_t max_scan_key_num) {
507
90
    if constexpr (!_is_reject_split_type) {
508
90
        CppType min_value = get_range_min_value();
509
90
        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
90
        auto empty_range_only_null = Compare::greater(min_value, max_value);
515
90
        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
90
        auto no_split = [&]() -> bool {
521
90
            begin_scan_keys.emplace_back();
522
90
            begin_scan_keys.back().add_value(
523
90
                    cast_to_string<primitive_type, CppType>(get_range_min_value(), scale()),
524
90
                    contain_null());
525
90
            end_scan_keys.emplace_back();
526
90
            end_scan_keys.back().add_value(
527
90
                    cast_to_string<primitive_type, CppType>(get_range_max_value(), scale()),
528
90
                    empty_range_only_null ? true : false);
529
90
            return true;
530
90
        };
531
90
        if (empty_range_only_null || max_scan_key_num == 1) {
532
0
            return no_split();
533
0
        }
534
535
90
        auto cast = [](const CppType& value) {
536
90
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
90
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
90
                return value;
539
90
            } else {
540
90
                return (int128_t)value;
541
90
            }
542
90
        };
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
90
        int128_t step_size_may_overflow = (cast(max_value) - min_value) / max_scan_key_num;
547
548
90
        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
90
        if (step_size_may_overflow > MAX_STEP_SIZE) {
551
0
            return no_split();
552
0
        }
553
90
        int step_size = cast_set<int>(step_size_may_overflow);
554
90
        int real_step_size = 0;
555
556
        // Add null key if contain null, must do after no_split check
557
90
        if (contain_null()) {
558
90
            begin_scan_keys.emplace_back();
559
90
            begin_scan_keys.back().add_null();
560
90
            end_scan_keys.emplace_back();
561
90
            end_scan_keys.back().add_null();
562
90
        }
563
3.85k
        while (true) {
564
3.85k
            begin_scan_keys.emplace_back();
565
3.85k
            begin_scan_keys.back().add_value(
566
3.85k
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
567
568
3.85k
            if (cast(max_value) - min_value < step_size) {
569
90
                min_value = max_value;
570
3.76k
            } else {
571
3.76k
                min_value += step_size;
572
3.76k
            }
573
574
3.85k
            end_scan_keys.emplace_back();
575
3.85k
            end_scan_keys.back().add_value(
576
3.85k
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
577
578
3.85k
            if (Compare::equal(min_value, max_value)) {
579
90
                break;
580
90
            }
581
3.76k
            ++min_value;
582
3.76k
            ++real_step_size;
583
3.76k
            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
3.76k
        }
592
593
90
        return step_size != 0;
594
90
    }
595
0
    return false;
596
90
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Line
Count
Source
506
150
        bool& begin_include, bool& end_include, int32_t max_scan_key_num) {
507
150
    if constexpr (!_is_reject_split_type) {
508
150
        CppType min_value = get_range_min_value();
509
150
        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
150
        auto empty_range_only_null = Compare::greater(min_value, max_value);
515
150
        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
150
        auto no_split = [&]() -> bool {
521
150
            begin_scan_keys.emplace_back();
522
150
            begin_scan_keys.back().add_value(
523
150
                    cast_to_string<primitive_type, CppType>(get_range_min_value(), scale()),
524
150
                    contain_null());
525
150
            end_scan_keys.emplace_back();
526
150
            end_scan_keys.back().add_value(
527
150
                    cast_to_string<primitive_type, CppType>(get_range_max_value(), scale()),
528
150
                    empty_range_only_null ? true : false);
529
150
            return true;
530
150
        };
531
150
        if (empty_range_only_null || max_scan_key_num == 1) {
532
0
            return no_split();
533
0
        }
534
535
150
        auto cast = [](const CppType& value) {
536
150
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
150
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
150
                return value;
539
150
            } else {
540
150
                return (int128_t)value;
541
150
            }
542
150
        };
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
150
        int128_t step_size_may_overflow = (cast(max_value) - min_value) / max_scan_key_num;
547
548
150
        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
150
        if (step_size_may_overflow > MAX_STEP_SIZE) {
551
0
            return no_split();
552
0
        }
553
150
        int step_size = cast_set<int>(step_size_may_overflow);
554
150
        int real_step_size = 0;
555
556
        // Add null key if contain null, must do after no_split check
557
150
        if (contain_null()) {
558
82
            begin_scan_keys.emplace_back();
559
82
            begin_scan_keys.back().add_null();
560
82
            end_scan_keys.emplace_back();
561
82
            end_scan_keys.back().add_null();
562
82
        }
563
7.16k
        while (true) {
564
7.16k
            begin_scan_keys.emplace_back();
565
7.16k
            begin_scan_keys.back().add_value(
566
7.16k
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
567
568
7.16k
            if (cast(max_value) - min_value < step_size) {
569
150
                min_value = max_value;
570
7.01k
            } else {
571
7.01k
                min_value += step_size;
572
7.01k
            }
573
574
7.16k
            end_scan_keys.emplace_back();
575
7.16k
            end_scan_keys.back().add_value(
576
7.16k
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
577
578
7.16k
            if (Compare::equal(min_value, max_value)) {
579
150
                break;
580
150
            }
581
7.01k
            ++min_value;
582
7.01k
            ++real_step_size;
583
7.01k
            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.01k
        }
592
593
150
        return step_size != 0;
594
150
    }
595
0
    return false;
596
150
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Line
Count
Source
506
2.95k
        bool& begin_include, bool& end_include, int32_t max_scan_key_num) {
507
2.95k
    if constexpr (!_is_reject_split_type) {
508
2.95k
        CppType min_value = get_range_min_value();
509
2.95k
        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
2.95k
        auto empty_range_only_null = Compare::greater(min_value, max_value);
515
2.95k
        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
2.95k
        auto no_split = [&]() -> bool {
521
2.95k
            begin_scan_keys.emplace_back();
522
2.95k
            begin_scan_keys.back().add_value(
523
2.95k
                    cast_to_string<primitive_type, CppType>(get_range_min_value(), scale()),
524
2.95k
                    contain_null());
525
2.95k
            end_scan_keys.emplace_back();
526
2.95k
            end_scan_keys.back().add_value(
527
2.95k
                    cast_to_string<primitive_type, CppType>(get_range_max_value(), scale()),
528
2.95k
                    empty_range_only_null ? true : false);
529
2.95k
            return true;
530
2.95k
        };
531
2.95k
        if (empty_range_only_null || max_scan_key_num == 1) {
532
0
            return no_split();
533
0
        }
534
535
2.95k
        auto cast = [](const CppType& value) {
536
2.95k
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
2.95k
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
2.95k
                return value;
539
2.95k
            } else {
540
2.95k
                return (int128_t)value;
541
2.95k
            }
542
2.95k
        };
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
2.95k
        int128_t step_size_may_overflow = (cast(max_value) - min_value) / max_scan_key_num;
547
548
2.95k
        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
2.95k
        if (step_size_may_overflow > MAX_STEP_SIZE) {
551
2.95k
            return no_split();
552
2.95k
        }
553
0
        int step_size = cast_set<int>(step_size_may_overflow);
554
0
        int real_step_size = 0;
555
556
        // Add null key if contain null, must do after no_split check
557
0
        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
0
        while (true) {
564
0
            begin_scan_keys.emplace_back();
565
0
            begin_scan_keys.back().add_value(
566
0
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
567
568
0
            if (cast(max_value) - min_value < step_size) {
569
0
                min_value = max_value;
570
0
            } else {
571
0
                min_value += step_size;
572
0
            }
573
574
0
            end_scan_keys.emplace_back();
575
0
            end_scan_keys.back().add_value(
576
0
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
577
578
0
            if (Compare::equal(min_value, max_value)) {
579
0
                break;
580
0
            }
581
0
            ++min_value;
582
0
            ++real_step_size;
583
0
            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
0
        }
592
593
0
        return step_size != 0;
594
0
    }
595
0
    return false;
596
2.95k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE26convert_to_avg_range_valueERSt6vectorINS_9OlapTupleESaIS4_EES7_RbS8_i
Line
Count
Source
506
250
        bool& begin_include, bool& end_include, int32_t max_scan_key_num) {
507
250
    if constexpr (!_is_reject_split_type) {
508
250
        CppType min_value = get_range_min_value();
509
250
        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
250
        auto empty_range_only_null = Compare::greater(min_value, max_value);
515
250
        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
250
        auto no_split = [&]() -> bool {
521
250
            begin_scan_keys.emplace_back();
522
250
            begin_scan_keys.back().add_value(
523
250
                    cast_to_string<primitive_type, CppType>(get_range_min_value(), scale()),
524
250
                    contain_null());
525
250
            end_scan_keys.emplace_back();
526
250
            end_scan_keys.back().add_value(
527
250
                    cast_to_string<primitive_type, CppType>(get_range_max_value(), scale()),
528
250
                    empty_range_only_null ? true : false);
529
250
            return true;
530
250
        };
531
250
        if (empty_range_only_null || max_scan_key_num == 1) {
532
0
            return no_split();
533
0
        }
534
535
250
        auto cast = [](const CppType& value) {
536
250
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
250
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
250
                return value;
539
250
            } else {
540
250
                return (int128_t)value;
541
250
            }
542
250
        };
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
250
        int128_t step_size_may_overflow = (cast(max_value) - min_value) / max_scan_key_num;
547
548
250
        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
250
        if (step_size_may_overflow > MAX_STEP_SIZE) {
551
250
            return no_split();
552
250
        }
553
0
        int step_size = cast_set<int>(step_size_may_overflow);
554
0
        int real_step_size = 0;
555
556
        // Add null key if contain null, must do after no_split check
557
0
        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
0
        while (true) {
564
0
            begin_scan_keys.emplace_back();
565
0
            begin_scan_keys.back().add_value(
566
0
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
567
568
0
            if (cast(max_value) - min_value < step_size) {
569
0
                min_value = max_value;
570
0
            } else {
571
0
                min_value += step_size;
572
0
            }
573
574
0
            end_scan_keys.emplace_back();
575
0
            end_scan_keys.back().add_value(
576
0
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
577
578
0
            if (Compare::equal(min_value, max_value)) {
579
0
                break;
580
0
            }
581
0
            ++min_value;
582
0
            ++real_step_size;
583
0
            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
0
        }
592
593
0
        return step_size != 0;
594
0
    }
595
0
    return false;
596
250
}
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
44
        bool& begin_include, bool& end_include, int32_t max_scan_key_num) {
507
44
    if constexpr (!_is_reject_split_type) {
508
44
        CppType min_value = get_range_min_value();
509
44
        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
44
        auto empty_range_only_null = Compare::greater(min_value, max_value);
515
44
        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
44
        auto no_split = [&]() -> bool {
521
44
            begin_scan_keys.emplace_back();
522
44
            begin_scan_keys.back().add_value(
523
44
                    cast_to_string<primitive_type, CppType>(get_range_min_value(), scale()),
524
44
                    contain_null());
525
44
            end_scan_keys.emplace_back();
526
44
            end_scan_keys.back().add_value(
527
44
                    cast_to_string<primitive_type, CppType>(get_range_max_value(), scale()),
528
44
                    empty_range_only_null ? true : false);
529
44
            return true;
530
44
        };
531
44
        if (empty_range_only_null || max_scan_key_num == 1) {
532
0
            return no_split();
533
0
        }
534
535
44
        auto cast = [](const CppType& value) {
536
44
            if constexpr (primitive_type == PrimitiveType::TYPE_DATE ||
537
44
                          primitive_type == PrimitiveType::TYPE_DATEV2) {
538
44
                return value;
539
44
            } else {
540
44
                return (int128_t)value;
541
44
            }
542
44
        };
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
44
        int128_t step_size_may_overflow = (cast(max_value) - min_value) / max_scan_key_num;
547
548
44
        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
44
        if (step_size_may_overflow > MAX_STEP_SIZE) {
551
0
            return no_split();
552
0
        }
553
44
        int step_size = cast_set<int>(step_size_may_overflow);
554
44
        int real_step_size = 0;
555
556
        // Add null key if contain null, must do after no_split check
557
44
        if (contain_null()) {
558
22
            begin_scan_keys.emplace_back();
559
22
            begin_scan_keys.back().add_null();
560
22
            end_scan_keys.emplace_back();
561
22
            end_scan_keys.back().add_null();
562
22
        }
563
2.11k
        while (true) {
564
2.11k
            begin_scan_keys.emplace_back();
565
2.11k
            begin_scan_keys.back().add_value(
566
2.11k
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
567
568
2.11k
            if (cast(max_value) - min_value < step_size) {
569
44
                min_value = max_value;
570
2.06k
            } else {
571
2.06k
                min_value += step_size;
572
2.06k
            }
573
574
2.11k
            end_scan_keys.emplace_back();
575
2.11k
            end_scan_keys.back().add_value(
576
2.11k
                    cast_to_string<primitive_type, CppType>(min_value, scale()));
577
578
2.11k
            if (Compare::equal(min_value, max_value)) {
579
44
                break;
580
44
            }
581
2.06k
            ++min_value;
582
2.06k
            ++real_step_size;
583
2.06k
            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
2.06k
        }
592
593
44
        return step_size != 0;
594
44
    }
595
0
    return false;
596
44
}
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
0
void ColumnValueRange<primitive_type>::convert_to_range_value() {
600
0
    if (!is_range_value_convertible()) {
601
0
        return;
602
0
    }
603
604
0
    if (!_fixed_values.empty()) {
605
0
        _low_value = *_fixed_values.begin();
606
0
        _low_op = FILTER_LARGER_OR_EQUAL;
607
0
        _high_value = *_fixed_values.rbegin();
608
0
        _high_op = FILTER_LESS_OR_EQUAL;
609
0
        _fixed_values.clear();
610
0
    }
611
0
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE22convert_to_range_valueEv
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
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE22convert_to_range_valueEv
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE22convert_to_range_valueEv
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
9.33k
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
9.33k
    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.33k
    _contain_null = false;
621
622
9.33k
    if (is_fixed_value_range()) {
623
8
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
8
        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
7
        case FILTER_LARGER_OR_EQUAL: {
632
7
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
7
            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
8
        }
655
656
8
        _high_value = TYPE_MIN;
657
8
        _low_value = TYPE_MAX;
658
9.32k
    } else {
659
9.32k
        if (Compare::greater(_high_value, _low_value)) {
660
9.30k
            switch (op) {
661
1.27k
            case FILTER_LARGER: {
662
1.27k
                if (Compare::greater_equal(value, _low_value)) {
663
1.27k
                    _low_value = value;
664
1.27k
                    _low_op = op;
665
1.27k
                }
666
667
1.27k
                break;
668
0
            }
669
670
3.79k
            case FILTER_LARGER_OR_EQUAL: {
671
3.79k
                if (Compare::greater(value, _low_value)) {
672
1.14k
                    _low_value = value;
673
1.14k
                    _low_op = op;
674
1.14k
                }
675
676
3.79k
                break;
677
0
            }
678
679
659
            case FILTER_LESS: {
680
659
                if (Compare::less_equal(value, _high_value)) {
681
657
                    _high_value = value;
682
657
                    _high_op = op;
683
657
                }
684
685
659
                break;
686
0
            }
687
688
3.60k
            case FILTER_LESS_OR_EQUAL: {
689
3.60k
                if (Compare::less(value, _high_value)) {
690
908
                    _high_value = value;
691
908
                    _high_op = op;
692
908
                }
693
694
3.60k
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
9.30k
            }
701
9.30k
        }
702
703
9.30k
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
9.30k
            Compare::equal(_high_value, _low_value)) {
705
285
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
285
            _high_value = TYPE_MIN;
707
285
            _low_value = TYPE_MAX;
708
285
        }
709
9.30k
    }
710
711
9.31k
    return Status::OK();
712
9.33k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE9add_rangeENS_11SQLFilterOpEa
Line
Count
Source
614
32
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
32
    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
32
    _contain_null = false;
621
622
32
    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
32
    } else {
659
32
        if (Compare::greater(_high_value, _low_value)) {
660
32
            switch (op) {
661
6
            case FILTER_LARGER: {
662
6
                if (Compare::greater_equal(value, _low_value)) {
663
6
                    _low_value = value;
664
6
                    _low_op = op;
665
6
                }
666
667
6
                break;
668
0
            }
669
670
6
            case FILTER_LARGER_OR_EQUAL: {
671
6
                if (Compare::greater(value, _low_value)) {
672
2
                    _low_value = value;
673
2
                    _low_op = op;
674
2
                }
675
676
6
                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
6
            case FILTER_LESS_OR_EQUAL: {
689
6
                if (Compare::less(value, _high_value)) {
690
2
                    _high_value = value;
691
2
                    _high_op = op;
692
2
                }
693
694
6
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
32
            }
701
32
        }
702
703
32
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
32
            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
32
    }
710
711
32
    return Status::OK();
712
32
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE9add_rangeENS_11SQLFilterOpEs
Line
Count
Source
614
16
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
16
    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
16
    _contain_null = false;
621
622
16
    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
16
    } else {
659
16
        if (Compare::greater(_high_value, _low_value)) {
660
16
            switch (op) {
661
4
            case FILTER_LARGER: {
662
4
                if (Compare::greater_equal(value, _low_value)) {
663
4
                    _low_value = value;
664
4
                    _low_op = op;
665
4
                }
666
667
4
                break;
668
0
            }
669
670
2
            case FILTER_LARGER_OR_EQUAL: {
671
2
                if (Compare::greater(value, _low_value)) {
672
0
                    _low_value = value;
673
0
                    _low_op = op;
674
0
                }
675
676
2
                break;
677
0
            }
678
679
8
            case FILTER_LESS: {
680
8
                if (Compare::less_equal(value, _high_value)) {
681
8
                    _high_value = value;
682
8
                    _high_op = op;
683
8
                }
684
685
8
                break;
686
0
            }
687
688
2
            case FILTER_LESS_OR_EQUAL: {
689
2
                if (Compare::less(value, _high_value)) {
690
0
                    _high_value = value;
691
0
                    _high_op = op;
692
0
                }
693
694
2
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
16
            }
701
16
        }
702
703
16
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
16
            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
16
    }
710
711
16
    return Status::OK();
712
16
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE9add_rangeENS_11SQLFilterOpEi
Line
Count
Source
614
2.75k
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
2.75k
    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.75k
    _contain_null = false;
621
622
2.75k
    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
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
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
2
        }
655
656
2
        _high_value = TYPE_MIN;
657
2
        _low_value = TYPE_MAX;
658
2.75k
    } else {
659
2.75k
        if (Compare::greater(_high_value, _low_value)) {
660
2.75k
            switch (op) {
661
800
            case FILTER_LARGER: {
662
800
                if (Compare::greater_equal(value, _low_value)) {
663
796
                    _low_value = value;
664
796
                    _low_op = op;
665
796
                }
666
667
800
                break;
668
0
            }
669
670
864
            case FILTER_LARGER_OR_EQUAL: {
671
864
                if (Compare::greater(value, _low_value)) {
672
586
                    _low_value = value;
673
586
                    _low_op = op;
674
586
                }
675
676
864
                break;
677
0
            }
678
679
348
            case FILTER_LESS: {
680
348
                if (Compare::less_equal(value, _high_value)) {
681
346
                    _high_value = value;
682
346
                    _high_op = op;
683
346
                }
684
685
348
                break;
686
0
            }
687
688
740
            case FILTER_LESS_OR_EQUAL: {
689
740
                if (Compare::less(value, _high_value)) {
690
462
                    _high_value = value;
691
462
                    _high_op = op;
692
462
                }
693
694
740
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
2.75k
            }
701
2.75k
        }
702
703
2.74k
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
2.74k
            Compare::equal(_high_value, _low_value)) {
705
58
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
58
            _high_value = TYPE_MIN;
707
58
            _low_value = TYPE_MAX;
708
58
        }
709
2.74k
    }
710
711
2.74k
    return Status::OK();
712
2.75k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE9add_rangeENS_11SQLFilterOpEl
Line
Count
Source
614
312
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
312
    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
312
    _contain_null = false;
621
622
312
    if (is_fixed_value_range()) {
623
6
        std::pair<IteratorType, IteratorType> bound_pair = _fixed_values.equal_range(value);
624
625
6
        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
5
        case FILTER_LARGER_OR_EQUAL: {
632
5
            _fixed_values.erase(_fixed_values.begin(), bound_pair.first);
633
5
            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
6
        }
655
656
6
        _high_value = TYPE_MIN;
657
6
        _low_value = TYPE_MAX;
658
306
    } else {
659
306
        if (Compare::greater(_high_value, _low_value)) {
660
296
            switch (op) {
661
120
            case FILTER_LARGER: {
662
120
                if (Compare::greater_equal(value, _low_value)) {
663
120
                    _low_value = value;
664
120
                    _low_op = op;
665
120
                }
666
667
120
                break;
668
0
            }
669
670
50
            case FILTER_LARGER_OR_EQUAL: {
671
50
                if (Compare::greater(value, _low_value)) {
672
48
                    _low_value = value;
673
48
                    _low_op = op;
674
48
                }
675
676
50
                break;
677
0
            }
678
679
80
            case FILTER_LESS: {
680
80
                if (Compare::less_equal(value, _high_value)) {
681
80
                    _high_value = value;
682
80
                    _high_op = op;
683
80
                }
684
685
80
                break;
686
0
            }
687
688
46
            case FILTER_LESS_OR_EQUAL: {
689
46
                if (Compare::less(value, _high_value)) {
690
36
                    _high_value = value;
691
36
                    _high_op = op;
692
36
                }
693
694
46
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
296
            }
701
296
        }
702
703
306
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
306
            Compare::equal(_high_value, _low_value)) {
705
24
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
24
            _high_value = TYPE_MIN;
707
24
            _low_value = TYPE_MAX;
708
24
        }
709
306
    }
710
711
312
    return Status::OK();
712
312
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE9add_rangeENS_11SQLFilterOpEn
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE9add_rangeENS_11SQLFilterOpEf
Line
Count
Source
614
78
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
78
    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
78
    _contain_null = false;
621
622
78
    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
78
    } else {
659
78
        if (Compare::greater(_high_value, _low_value)) {
660
78
            switch (op) {
661
2
            case FILTER_LARGER: {
662
2
                if (Compare::greater_equal(value, _low_value)) {
663
2
                    _low_value = value;
664
2
                    _low_op = op;
665
2
                }
666
667
2
                break;
668
0
            }
669
670
30
            case FILTER_LARGER_OR_EQUAL: {
671
30
                if (Compare::greater(value, _low_value)) {
672
24
                    _low_value = value;
673
24
                    _low_op = op;
674
24
                }
675
676
30
                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
30
            case FILTER_LESS_OR_EQUAL: {
689
30
                if (Compare::less(value, _high_value)) {
690
24
                    _high_value = value;
691
24
                    _high_op = op;
692
24
                }
693
694
30
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
78
            }
701
78
        }
702
703
78
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
78
            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
78
    }
710
711
78
    return Status::OK();
712
78
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE9add_rangeENS_11SQLFilterOpEd
Line
Count
Source
614
190
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
190
    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
190
    _contain_null = false;
621
622
190
    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
190
    } else {
659
190
        if (Compare::greater(_high_value, _low_value)) {
660
190
            switch (op) {
661
124
            case FILTER_LARGER: {
662
124
                if (Compare::greater_equal(value, _low_value)) {
663
124
                    _low_value = value;
664
124
                    _low_op = op;
665
124
                }
666
667
124
                break;
668
0
            }
669
670
25
            case FILTER_LARGER_OR_EQUAL: {
671
25
                if (Compare::greater(value, _low_value)) {
672
9
                    _low_value = value;
673
9
                    _low_op = op;
674
9
                }
675
676
25
                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
25
            case FILTER_LESS_OR_EQUAL: {
689
25
                if (Compare::less(value, _high_value)) {
690
9
                    _high_value = value;
691
9
                    _high_op = op;
692
9
                }
693
694
25
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
190
            }
701
190
        }
702
703
190
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
190
            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
190
    }
710
711
190
    return Status::OK();
712
190
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE9add_rangeENS_11SQLFilterOpEj
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE9add_rangeENS_11SQLFilterOpEo
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE9add_rangeENS_11SQLFilterOpENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE9add_rangeENS_11SQLFilterOpENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
614
56
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
56
    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
56
    _contain_null = false;
621
622
56
    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
56
    } else {
659
56
        if (Compare::greater(_high_value, _low_value)) {
660
56
            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
28
            case FILTER_LARGER_OR_EQUAL: {
671
28
                if (Compare::greater(value, _low_value)) {
672
16
                    _low_value = value;
673
16
                    _low_op = op;
674
16
                }
675
676
28
                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
28
            case FILTER_LESS_OR_EQUAL: {
689
28
                if (Compare::less(value, _high_value)) {
690
16
                    _high_value = value;
691
16
                    _high_op = op;
692
16
                }
693
694
28
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
56
            }
701
56
        }
702
703
56
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
56
            Compare::equal(_high_value, _low_value)) {
705
8
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
8
            _high_value = TYPE_MIN;
707
8
            _low_value = TYPE_MAX;
708
8
        }
709
56
    }
710
711
56
    return Status::OK();
712
56
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE9add_rangeENS_11SQLFilterOpENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
614
4.23k
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
4.23k
    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.23k
    _contain_null = false;
621
622
4.23k
    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.23k
    } else {
659
4.23k
        if (Compare::greater(_high_value, _low_value)) {
660
4.22k
            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
2.11k
            case FILTER_LARGER_OR_EQUAL: {
671
2.11k
                if (Compare::greater(value, _low_value)) {
672
72
                    _low_value = value;
673
72
                    _low_op = op;
674
72
                }
675
676
2.11k
                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
2.12k
            case FILTER_LESS_OR_EQUAL: {
689
2.12k
                if (Compare::less(value, _high_value)) {
690
68
                    _high_value = value;
691
68
                    _high_op = op;
692
68
                }
693
694
2.12k
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
4.22k
            }
701
4.22k
        }
702
703
4.22k
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
4.22k
            Compare::equal(_high_value, _low_value)) {
705
40
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
40
            _high_value = TYPE_MIN;
707
40
            _low_value = TYPE_MAX;
708
40
        }
709
4.22k
    }
710
711
4.22k
    return Status::OK();
712
4.23k
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE9add_rangeENS_11SQLFilterOpENS_16VecDateTimeValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE9add_rangeENS_11SQLFilterOpENS_11DateV2ValueINS_15DateV2ValueTypeEEE
Line
Count
Source
614
288
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
288
    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
288
    _contain_null = false;
621
622
288
    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
288
    } else {
659
288
        if (Compare::greater(_high_value, _low_value)) {
660
288
            switch (op) {
661
32
            case FILTER_LARGER: {
662
32
                if (Compare::greater_equal(value, _low_value)) {
663
32
                    _low_value = value;
664
32
                    _low_op = op;
665
32
                }
666
667
32
                break;
668
0
            }
669
670
110
            case FILTER_LARGER_OR_EQUAL: {
671
110
                if (Compare::greater(value, _low_value)) {
672
110
                    _low_value = value;
673
110
                    _low_op = op;
674
110
                }
675
676
110
                break;
677
0
            }
678
679
52
            case FILTER_LESS: {
680
52
                if (Compare::less_equal(value, _high_value)) {
681
52
                    _high_value = value;
682
52
                    _high_op = op;
683
52
                }
684
685
52
                break;
686
0
            }
687
688
94
            case FILTER_LESS_OR_EQUAL: {
689
94
                if (Compare::less(value, _high_value)) {
690
94
                    _high_value = value;
691
94
                    _high_op = op;
692
94
                }
693
694
94
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
288
            }
701
288
        }
702
703
288
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
288
            Compare::equal(_high_value, _low_value)) {
705
20
            RETURN_IF_ERROR(add_fixed_value(_high_value));
706
20
            _high_value = TYPE_MIN;
707
20
            _low_value = TYPE_MAX;
708
20
        }
709
288
    }
710
711
288
    return Status::OK();
712
288
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE9add_rangeENS_11SQLFilterOpENS_16VecDateTimeValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE9add_rangeENS_11SQLFilterOpENS_11DateV2ValueINS_19DateTimeV2ValueTypeEEE
Line
Count
Source
614
402
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
402
    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
402
    _contain_null = false;
621
622
402
    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
402
    } else {
659
402
        if (Compare::greater(_high_value, _low_value)) {
660
402
            switch (op) {
661
24
            case FILTER_LARGER: {
662
24
                if (Compare::greater_equal(value, _low_value)) {
663
24
                    _low_value = value;
664
24
                    _low_op = op;
665
24
                }
666
667
24
                break;
668
0
            }
669
670
176
            case FILTER_LARGER_OR_EQUAL: {
671
176
                if (Compare::greater(value, _low_value)) {
672
162
                    _low_value = value;
673
162
                    _low_op = op;
674
162
                }
675
676
176
                break;
677
0
            }
678
679
88
            case FILTER_LESS: {
680
88
                if (Compare::less_equal(value, _high_value)) {
681
88
                    _high_value = value;
682
88
                    _high_op = op;
683
88
                }
684
685
88
                break;
686
0
            }
687
688
114
            case FILTER_LESS_OR_EQUAL: {
689
114
                if (Compare::less(value, _high_value)) {
690
100
                    _high_value = value;
691
100
                    _high_op = op;
692
100
                }
693
694
114
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
402
            }
701
402
        }
702
703
402
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
402
            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
402
    }
710
711
402
    return Status::OK();
712
402
}
_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
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
2
            case FILTER_LARGER: {
662
2
                if (Compare::greater_equal(value, _low_value)) {
663
2
                    _low_value = value;
664
2
                    _low_op = op;
665
2
                }
666
667
2
                break;
668
0
            }
669
670
2
            case FILTER_LARGER_OR_EQUAL: {
671
2
                if (Compare::greater(value, _low_value)) {
672
2
                    _low_value = value;
673
2
                    _low_op = op;
674
2
                }
675
676
2
                break;
677
0
            }
678
679
2
            case FILTER_LESS: {
680
2
                if (Compare::less_equal(value, _high_value)) {
681
2
                    _high_value = value;
682
2
                    _high_op = op;
683
2
                }
684
685
2
                break;
686
0
            }
687
688
0
            case FILTER_LESS_OR_EQUAL: {
689
0
                if (Compare::less(value, _high_value)) {
690
0
                    _high_value = value;
691
0
                    _high_op = op;
692
0
                }
693
694
0
                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_13PrimitiveTypeE29EE9add_rangeENS_11SQLFilterOpENS_7DecimalIlEE
Line
Count
Source
614
828
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
828
    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
828
    _contain_null = false;
621
622
828
    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
828
    } else {
659
828
        if (Compare::greater(_high_value, _low_value)) {
660
828
            switch (op) {
661
136
            case FILTER_LARGER: {
662
136
                if (Compare::greater_equal(value, _low_value)) {
663
132
                    _low_value = value;
664
132
                    _low_op = op;
665
132
                }
666
667
136
                break;
668
0
            }
669
670
346
            case FILTER_LARGER_OR_EQUAL: {
671
346
                if (Compare::greater(value, _low_value)) {
672
96
                    _low_value = value;
673
96
                    _low_op = op;
674
96
                }
675
676
346
                break;
677
0
            }
678
679
8
            case FILTER_LESS: {
680
8
                if (Compare::less_equal(value, _high_value)) {
681
8
                    _high_value = value;
682
8
                    _high_op = op;
683
8
                }
684
685
8
                break;
686
0
            }
687
688
344
            case FILTER_LESS_OR_EQUAL: {
689
344
                if (Compare::less(value, _high_value)) {
690
94
                    _high_value = value;
691
94
                    _high_op = op;
692
94
                }
693
694
344
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
828
            }
701
828
        }
702
703
828
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
828
            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
828
    }
710
711
828
    return Status::OK();
712
828
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE9add_rangeENS_11SQLFilterOpENS_12Decimal128V3E
Line
Count
Source
614
52
Status ColumnValueRange<primitive_type>::add_range(SQLFilterOp op, const CppType value) {
615
52
    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
52
    _contain_null = false;
621
622
52
    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
52
    } else {
659
52
        if (Compare::greater(_high_value, _low_value)) {
660
52
            switch (op) {
661
26
            case FILTER_LARGER: {
662
26
                if (Compare::greater_equal(value, _low_value)) {
663
26
                    _low_value = value;
664
26
                    _low_op = op;
665
26
                }
666
667
26
                break;
668
0
            }
669
670
10
            case FILTER_LARGER_OR_EQUAL: {
671
10
                if (Compare::greater(value, _low_value)) {
672
2
                    _low_value = value;
673
2
                    _low_op = op;
674
2
                }
675
676
10
                break;
677
0
            }
678
679
8
            case FILTER_LESS: {
680
8
                if (Compare::less_equal(value, _high_value)) {
681
8
                    _high_value = value;
682
8
                    _high_op = op;
683
8
                }
684
685
8
                break;
686
0
            }
687
688
8
            case FILTER_LESS_OR_EQUAL: {
689
8
                if (Compare::less(value, _high_value)) {
690
0
                    _high_value = value;
691
0
                    _high_op = op;
692
0
                }
693
694
8
                break;
695
0
            }
696
697
0
            default: {
698
0
                return Status::InternalError("Add Range fail! Unsupported SQLFilterOp.");
699
0
            }
700
52
            }
701
52
        }
702
703
52
        if (FILTER_LARGER_OR_EQUAL == _low_op && FILTER_LESS_OR_EQUAL == _high_op &&
704
52
            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
52
    }
710
711
52
    return Status::OK();
712
52
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE9add_rangeENS_11SQLFilterOpENS_7DecimalIN4wide7integerILm256EiEEEE
713
714
template <PrimitiveType primitive_type>
715
175k
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
175k
    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
175k
    case FILTER_LESS_OR_EQUAL: {
736
175k
        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
175k
        case FILTER_LARGER_OR_EQUAL: {
742
175k
            return Compare::less_equal(value, _high_value) &&
743
175k
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
175k
        }
750
175k
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
175k
    }
756
757
0
    return false;
758
175k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE11is_in_rangeERKa
Line
Count
Source
715
42.7k
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
42.7k
    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
42.7k
    case FILTER_LESS_OR_EQUAL: {
736
42.7k
        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
42.7k
        case FILTER_LARGER_OR_EQUAL: {
742
42.7k
            return Compare::less_equal(value, _high_value) &&
743
42.7k
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
42.7k
        }
750
42.7k
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
42.7k
    }
756
757
0
    return false;
758
42.7k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE11is_in_rangeERKs
Line
Count
Source
715
42
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
42
    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
42
    case FILTER_LESS_OR_EQUAL: {
736
42
        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
42
        case FILTER_LARGER_OR_EQUAL: {
742
42
            return Compare::less_equal(value, _high_value) &&
743
42
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
42
        }
750
42
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
42
    }
756
757
0
    return false;
758
42
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE11is_in_rangeERKi
Line
Count
Source
715
4.54k
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
4.54k
    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
4.48k
    case FILTER_LESS_OR_EQUAL: {
736
4.48k
        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.48k
        case FILTER_LARGER_OR_EQUAL: {
742
4.48k
            return Compare::less_equal(value, _high_value) &&
743
4.48k
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
4.48k
        }
750
4.48k
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
4.54k
    }
756
757
0
    return false;
758
4.54k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE11is_in_rangeERKl
Line
Count
Source
715
1.10k
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
1.10k
    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.10k
    case FILTER_LESS_OR_EQUAL: {
736
1.10k
        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.10k
        case FILTER_LARGER_OR_EQUAL: {
742
1.10k
            return Compare::less_equal(value, _high_value) &&
743
1.10k
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
1.10k
        }
750
1.10k
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
1.10k
    }
756
757
0
    return false;
758
1.10k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE11is_in_rangeERKn
Line
Count
Source
715
14
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
14
    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
14
    case FILTER_LESS_OR_EQUAL: {
736
14
        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
14
        case FILTER_LARGER_OR_EQUAL: {
742
14
            return Compare::less_equal(value, _high_value) &&
743
14
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
14
        }
750
14
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
14
    }
756
757
0
    return false;
758
14
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE11is_in_rangeERKf
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_13PrimitiveTypeE9EE11is_in_rangeERKd
Line
Count
Source
715
44
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
44
    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
44
    case FILTER_LESS_OR_EQUAL: {
736
44
        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
44
        case FILTER_LARGER_OR_EQUAL: {
742
44
            return Compare::less_equal(value, _high_value) &&
743
44
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
44
        }
750
44
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
44
    }
756
757
0
    return false;
758
44
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE11is_in_rangeERKj
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE11is_in_rangeERKo
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE11is_in_rangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
715
34
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
34
    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
34
    case FILTER_LESS_OR_EQUAL: {
736
34
        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
34
        case FILTER_LARGER_OR_EQUAL: {
742
34
            return Compare::less_equal(value, _high_value) &&
743
34
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
34
        }
750
34
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
34
    }
756
757
0
    return false;
758
34
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE11is_in_rangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
715
125k
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
125k
    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
125k
    case FILTER_LESS_OR_EQUAL: {
736
125k
        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
125k
        case FILTER_LARGER_OR_EQUAL: {
742
125k
            return Compare::less_equal(value, _high_value) &&
743
125k
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
125k
        }
750
125k
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
125k
    }
756
757
0
    return false;
758
125k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE11is_in_rangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
Line
Count
Source
715
1.17k
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
1.17k
    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.17k
    case FILTER_LESS_OR_EQUAL: {
736
1.17k
        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.17k
        case FILTER_LARGER_OR_EQUAL: {
742
1.17k
            return Compare::less_equal(value, _high_value) &&
743
1.17k
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
1.17k
        }
750
1.17k
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
1.17k
    }
756
757
0
    return false;
758
1.17k
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE11is_in_rangeERKNS_16VecDateTimeValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE11is_in_rangeERKNS_11DateV2ValueINS_15DateV2ValueTypeEEE
Line
Count
Source
715
258
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
258
    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
258
    case FILTER_LESS_OR_EQUAL: {
736
258
        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
258
        case FILTER_LARGER_OR_EQUAL: {
742
258
            return Compare::less_equal(value, _high_value) &&
743
258
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
258
        }
750
258
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
258
    }
756
757
0
    return false;
758
258
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE11is_in_rangeERKNS_16VecDateTimeValueE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE11is_in_rangeERKNS_11DateV2ValueINS_19DateTimeV2ValueTypeEEE
Line
Count
Source
715
190
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
190
    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
190
    case FILTER_LESS_OR_EQUAL: {
736
190
        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
190
        case FILTER_LARGER_OR_EQUAL: {
742
190
            return Compare::less_equal(value, _high_value) &&
743
190
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
190
        }
750
190
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
190
    }
756
757
0
    return false;
758
190
}
_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
186
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
186
    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
186
    case FILTER_LESS_OR_EQUAL: {
736
186
        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
186
        case FILTER_LARGER_OR_EQUAL: {
742
186
            return Compare::less_equal(value, _high_value) &&
743
186
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
186
        }
750
186
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
186
    }
756
757
0
    return false;
758
186
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE11is_in_rangeERKNS_9StringRefE
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE11is_in_rangeERKNS_7DecimalIiEE
Line
Count
Source
715
12
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
12
    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
12
    case FILTER_LESS_OR_EQUAL: {
736
12
        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
12
        case FILTER_LARGER_OR_EQUAL: {
742
12
            return Compare::less_equal(value, _high_value) &&
743
12
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
12
        }
750
12
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
12
    }
756
757
0
    return false;
758
12
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE11is_in_rangeERKNS_7DecimalIlEE
Line
Count
Source
715
136
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
136
    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
136
    case FILTER_LESS_OR_EQUAL: {
736
136
        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
136
        case FILTER_LARGER_OR_EQUAL: {
742
136
            return Compare::less_equal(value, _high_value) &&
743
136
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
136
        }
750
136
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
136
    }
756
757
0
    return false;
758
136
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE11is_in_rangeERKNS_12Decimal128V3E
Line
Count
Source
715
12
bool ColumnValueRange<primitive_type>::is_in_range(const CppType& value) {
716
12
    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
12
    case FILTER_LESS_OR_EQUAL: {
736
12
        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
12
        case FILTER_LARGER_OR_EQUAL: {
742
12
            return Compare::less_equal(value, _high_value) &&
743
12
                   Compare::greater_equal(value, _low_value);
744
0
        }
745
746
0
        default: {
747
0
            DCHECK(false);
748
0
        }
749
12
        }
750
12
    }
751
752
0
    default: {
753
0
        DCHECK(false);
754
0
    }
755
12
    }
756
757
0
    return false;
758
12
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE35EE11is_in_rangeERKNS_7DecimalIN4wide7integerILm256EiEEEE
759
760
template <PrimitiveType primitive_type>
761
175k
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
175k
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
175k
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
7
        set_empty_value_range();
770
7
    }
771
772
175k
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
175k
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
171k
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
277
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
277
                             range._fixed_values.begin(), range._fixed_values.end(),
778
277
                             std::inserter(result_values, result_values.begin()));
779
171k
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
1
            IteratorType iter = _fixed_values.begin();
781
782
4
            while (iter != _fixed_values.end()) {
783
3
                if (range.is_in_range(*iter)) {
784
3
                    result_values.insert(*iter);
785
3
                }
786
3
                ++iter;
787
3
            }
788
171k
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
171k
            IteratorType iter = range._fixed_values.begin();
790
347k
            while (iter != range._fixed_values.end()) {
791
175k
                if (this->is_in_range(*iter)) {
792
175k
                    result_values.insert(*iter);
793
175k
                }
794
175k
                ++iter;
795
175k
            }
796
171k
        }
797
798
172k
        if (!result_values.empty()) {
799
172k
            _fixed_values = std::move(result_values);
800
172k
            _contain_null = false;
801
172k
            _high_value = TYPE_MIN;
802
172k
            _low_value = TYPE_MAX;
803
18.4E
        } else {
804
18.4E
            set_empty_value_range();
805
18.4E
        }
806
171k
    } else {
807
3.60k
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
676
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
670
                set_contain_null(true);
811
670
            }
812
2.94k
        } else {
813
2.94k
            static_cast<void>(add_range(range._high_op, range._high_value));
814
2.94k
            static_cast<void>(add_range(range._low_op, range._low_value));
815
2.94k
        }
816
3.60k
    }
817
175k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE3EE12intersectionERS2_
Line
Count
Source
761
42.8k
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
42.8k
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
42.8k
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
42.8k
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
42.8k
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
42.6k
        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
42.6k
        } 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
42.7k
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
42.7k
            IteratorType iter = range._fixed_values.begin();
790
85.4k
            while (iter != range._fixed_values.end()) {
791
42.7k
                if (this->is_in_range(*iter)) {
792
42.7k
                    result_values.insert(*iter);
793
42.7k
                }
794
42.7k
                ++iter;
795
42.7k
            }
796
42.7k
        }
797
798
42.7k
        if (!result_values.empty()) {
799
42.7k
            _fixed_values = std::move(result_values);
800
42.7k
            _contain_null = false;
801
42.7k
            _high_value = TYPE_MIN;
802
42.7k
            _low_value = TYPE_MAX;
803
18.4E
        } else {
804
18.4E
            set_empty_value_range();
805
18.4E
        }
806
42.6k
    } else {
807
130
        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
98
        } else {
813
98
            static_cast<void>(add_range(range._high_op, range._high_value));
814
98
            static_cast<void>(add_range(range._low_op, range._low_value));
815
98
        }
816
130
    }
817
42.8k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE4EE12intersectionERS2_
Line
Count
Source
761
76
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
76
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
76
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
76
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
76
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
42
        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
42
        } 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
42
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
42
            IteratorType iter = range._fixed_values.begin();
790
84
            while (iter != range._fixed_values.end()) {
791
42
                if (this->is_in_range(*iter)) {
792
42
                    result_values.insert(*iter);
793
42
                }
794
42
                ++iter;
795
42
            }
796
42
        }
797
798
42
        if (!result_values.empty()) {
799
42
            _fixed_values = std::move(result_values);
800
42
            _contain_null = false;
801
42
            _high_value = TYPE_MIN;
802
42
            _low_value = TYPE_MAX;
803
42
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
42
    } else {
807
34
        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
30
                set_contain_null(true);
811
30
            }
812
32
        } else {
813
2
            static_cast<void>(add_range(range._high_op, range._high_value));
814
2
            static_cast<void>(add_range(range._low_op, range._low_value));
815
2
        }
816
34
    }
817
76
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE5EE12intersectionERS2_
Line
Count
Source
761
2.20k
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
2.20k
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
2.20k
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
2
        set_empty_value_range();
770
2
    }
771
772
2.20k
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
2.20k
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
1.76k
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
56
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
56
                             range._fixed_values.begin(), range._fixed_values.end(),
778
56
                             std::inserter(result_values, result_values.begin()));
779
1.71k
        } 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.71k
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
1.71k
            IteratorType iter = range._fixed_values.begin();
790
6.25k
            while (iter != range._fixed_values.end()) {
791
4.54k
                if (this->is_in_range(*iter)) {
792
4.54k
                    result_values.insert(*iter);
793
4.54k
                }
794
4.54k
                ++iter;
795
4.54k
            }
796
1.71k
        }
797
798
1.76k
        if (!result_values.empty()) {
799
1.76k
            _fixed_values = std::move(result_values);
800
1.76k
            _contain_null = false;
801
1.76k
            _high_value = TYPE_MIN;
802
1.76k
            _low_value = TYPE_MAX;
803
1.76k
        } else {
804
2
            set_empty_value_range();
805
2
        }
806
1.76k
    } else {
807
440
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
160
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
160
                set_contain_null(true);
811
160
            }
812
280
        } else {
813
280
            static_cast<void>(add_range(range._high_op, range._high_value));
814
280
            static_cast<void>(add_range(range._low_op, range._low_value));
815
280
        }
816
440
    }
817
2.20k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE6EE12intersectionERS2_
Line
Count
Source
761
693
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
693
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
693
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
5
        set_empty_value_range();
770
5
    }
771
772
693
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
693
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
652
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
21
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
21
                             range._fixed_values.begin(), range._fixed_values.end(),
778
21
                             std::inserter(result_values, result_values.begin()));
779
631
        } else if (is_fixed_value_range() && !range.is_fixed_value_range()) {
780
1
            IteratorType iter = _fixed_values.begin();
781
782
4
            while (iter != _fixed_values.end()) {
783
3
                if (range.is_in_range(*iter)) {
784
3
                    result_values.insert(*iter);
785
3
                }
786
3
                ++iter;
787
3
            }
788
630
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
630
            IteratorType iter = range._fixed_values.begin();
790
1.73k
            while (iter != range._fixed_values.end()) {
791
1.10k
                if (this->is_in_range(*iter)) {
792
1.10k
                    result_values.insert(*iter);
793
1.10k
                }
794
1.10k
                ++iter;
795
1.10k
            }
796
630
        }
797
798
652
        if (!result_values.empty()) {
799
651
            _fixed_values = std::move(result_values);
800
651
            _contain_null = false;
801
651
            _high_value = TYPE_MIN;
802
651
            _low_value = TYPE_MAX;
803
651
        } else {
804
1
            set_empty_value_range();
805
1
        }
806
652
    } else {
807
41
        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
32
        } else {
813
9
            static_cast<void>(add_range(range._high_op, range._high_value));
814
9
            static_cast<void>(add_range(range._low_op, range._low_value));
815
9
        }
816
41
    }
817
693
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE7EE12intersectionERS2_
Line
Count
Source
761
12
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
12
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
12
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
12
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
12
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
12
        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
12
        } 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
12
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
12
            IteratorType iter = range._fixed_values.begin();
790
26
            while (iter != range._fixed_values.end()) {
791
14
                if (this->is_in_range(*iter)) {
792
14
                    result_values.insert(*iter);
793
14
                }
794
14
                ++iter;
795
14
            }
796
12
        }
797
798
12
        if (!result_values.empty()) {
799
12
            _fixed_values = std::move(result_values);
800
12
            _contain_null = false;
801
12
            _high_value = TYPE_MIN;
802
12
            _low_value = TYPE_MAX;
803
12
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
12
    } 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
12
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE8EE12intersectionERS2_
Line
Count
Source
761
64
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
64
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
64
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
64
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
64
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
28
        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
16
        } 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
12
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
12
            IteratorType iter = range._fixed_values.begin();
790
32
            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
12
        }
797
798
28
        if (!result_values.empty()) {
799
28
            _fixed_values = std::move(result_values);
800
28
            _contain_null = false;
801
28
            _high_value = TYPE_MIN;
802
28
            _low_value = TYPE_MAX;
803
28
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
36
    } else {
807
36
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
30
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
28
                set_contain_null(true);
811
28
            }
812
28
        } 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
36
    }
817
64
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE9EE12intersectionERS2_
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
82
    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
35
        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
35
        } 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
35
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
35
            IteratorType iter = range._fixed_values.begin();
790
79
            while (iter != range._fixed_values.end()) {
791
44
                if (this->is_in_range(*iter)) {
792
44
                    result_values.insert(*iter);
793
44
                }
794
44
                ++iter;
795
44
            }
796
35
        }
797
798
35
        if (!result_values.empty()) {
799
35
            _fixed_values = std::move(result_values);
800
35
            _contain_null = false;
801
35
            _high_value = TYPE_MIN;
802
35
            _low_value = TYPE_MAX;
803
35
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
47
    } else {
807
47
        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
15
            static_cast<void>(add_range(range._high_op, range._high_value));
814
15
            static_cast<void>(add_range(range._low_op, range._low_value));
815
15
        }
816
47
    }
817
82
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE36EE12intersectionERS2_
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE37EE12intersectionERS2_
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE15EE12intersectionERS2_
Line
Count
Source
761
66
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
66
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
66
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
66
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
66
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
34
        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
34
        } 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
34
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
34
            IteratorType iter = range._fixed_values.begin();
790
68
            while (iter != range._fixed_values.end()) {
791
34
                if (this->is_in_range(*iter)) {
792
34
                    result_values.insert(*iter);
793
34
                }
794
34
                ++iter;
795
34
            }
796
34
        }
797
798
34
        if (!result_values.empty()) {
799
34
            _fixed_values = std::move(result_values);
800
34
            _contain_null = false;
801
34
            _high_value = TYPE_MIN;
802
34
            _low_value = TYPE_MAX;
803
34
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
34
    } else {
807
32
        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
30
        } else {
813
2
            static_cast<void>(add_range(range._high_op, range._high_value));
814
2
            static_cast<void>(add_range(range._low_op, range._low_value));
815
2
        }
816
32
    }
817
66
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE10EE12intersectionERS2_
Line
Count
Source
761
125k
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
125k
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
125k
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
125k
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
125k
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
124k
        if (is_fixed_value_range() && range.is_fixed_value_range()) {
776
8
            set_intersection(_fixed_values.begin(), _fixed_values.end(),
777
8
                             range._fixed_values.begin(), range._fixed_values.end(),
778
8
                             std::inserter(result_values, result_values.begin()));
779
124k
        } 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
124k
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
124k
            IteratorType iter = range._fixed_values.begin();
790
249k
            while (iter != range._fixed_values.end()) {
791
125k
                if (this->is_in_range(*iter)) {
792
125k
                    result_values.insert(*iter);
793
125k
                }
794
124k
                ++iter;
795
124k
            }
796
124k
        }
797
798
124k
        if (!result_values.empty()) {
799
124k
            _fixed_values = std::move(result_values);
800
124k
            _contain_null = false;
801
124k
            _high_value = TYPE_MIN;
802
124k
            _low_value = TYPE_MAX;
803
18.4E
        } else {
804
18.4E
            set_empty_value_range();
805
18.4E
        }
806
124k
    } else {
807
232
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
56
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
56
                set_contain_null(true);
811
56
            }
812
178
        } else {
813
178
            static_cast<void>(add_range(range._high_op, range._high_value));
814
178
            static_cast<void>(add_range(range._low_op, range._low_value));
815
178
        }
816
232
    }
817
125k
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE23EE12intersectionERS2_
Line
Count
Source
761
3.21k
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
3.21k
    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.21k
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
3.21k
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
3.21k
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
1.05k
        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.01k
        } 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.01k
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
1.01k
            IteratorType iter = range._fixed_values.begin();
790
2.18k
            while (iter != range._fixed_values.end()) {
791
1.17k
                if (this->is_in_range(*iter)) {
792
1.17k
                    result_values.insert(*iter);
793
1.17k
                }
794
1.17k
                ++iter;
795
1.17k
            }
796
1.01k
        }
797
798
1.06k
        if (!result_values.empty()) {
799
1.06k
            _fixed_values = std::move(result_values);
800
1.06k
            _contain_null = false;
801
1.06k
            _high_value = TYPE_MIN;
802
1.06k
            _low_value = TYPE_MAX;
803
18.4E
        } else {
804
18.4E
            set_empty_value_range();
805
18.4E
        }
806
2.16k
    } else {
807
2.16k
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
106
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
106
                set_contain_null(true);
811
106
            }
812
2.06k
        } else {
813
2.06k
            static_cast<void>(add_range(range._high_op, range._high_value));
814
2.06k
            static_cast<void>(add_range(range._low_op, range._low_value));
815
2.06k
        }
816
2.16k
    }
817
3.21k
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE11EE12intersectionERS2_
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE25EE12intersectionERS2_
Line
Count
Source
761
280
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
280
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
280
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
280
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
280
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
250
        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
230
        } 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
230
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
230
            IteratorType iter = range._fixed_values.begin();
790
488
            while (iter != range._fixed_values.end()) {
791
258
                if (this->is_in_range(*iter)) {
792
258
                    result_values.insert(*iter);
793
258
                }
794
258
                ++iter;
795
258
            }
796
230
        }
797
798
250
        if (!result_values.empty()) {
799
250
            _fixed_values = std::move(result_values);
800
250
            _contain_null = false;
801
250
            _high_value = TYPE_MIN;
802
250
            _low_value = TYPE_MAX;
803
250
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
250
    } else {
807
30
        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
30
                set_contain_null(true);
811
30
            }
812
28
        } else {
813
2
            static_cast<void>(add_range(range._high_op, range._high_value));
814
2
            static_cast<void>(add_range(range._low_op, range._low_value));
815
2
        }
816
30
    }
817
280
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE12EE12intersectionERS2_
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE26EE12intersectionERS2_
Line
Count
Source
761
238
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
238
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
238
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
238
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
238
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
192
        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
144
        } 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
144
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
144
            IteratorType iter = range._fixed_values.begin();
790
334
            while (iter != range._fixed_values.end()) {
791
190
                if (this->is_in_range(*iter)) {
792
190
                    result_values.insert(*iter);
793
190
                }
794
190
                ++iter;
795
190
            }
796
144
        }
797
798
192
        if (!result_values.empty()) {
799
192
            _fixed_values = std::move(result_values);
800
192
            _contain_null = false;
801
192
            _high_value = TYPE_MIN;
802
192
            _low_value = TYPE_MAX;
803
192
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
192
    } else {
807
46
        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
14
            static_cast<void>(add_range(range._high_op, range._high_value));
814
14
            static_cast<void>(add_range(range._low_op, range._low_value));
815
14
        }
816
46
    }
817
238
}
_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
236
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
236
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
236
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
236
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
236
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
194
        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
178
        } 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
178
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
178
            IteratorType iter = range._fixed_values.begin();
790
364
            while (iter != range._fixed_values.end()) {
791
186
                if (this->is_in_range(*iter)) {
792
186
                    result_values.insert(*iter);
793
186
                }
794
186
                ++iter;
795
186
            }
796
178
        }
797
798
194
        if (!result_values.empty()) {
799
194
            _fixed_values = std::move(result_values);
800
194
            _contain_null = false;
801
194
            _high_value = TYPE_MIN;
802
194
            _low_value = TYPE_MAX;
803
194
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
194
    } else {
807
42
        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
10
            static_cast<void>(add_range(range._high_op, range._high_value));
814
10
            static_cast<void>(add_range(range._low_op, range._low_value));
815
10
        }
816
42
    }
817
236
}
Unexecuted instantiation: _ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE19EE12intersectionERS2_
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE28EE12intersectionERS2_
Line
Count
Source
761
16
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
16
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
16
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
16
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
16
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
12
        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
12
        } 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
12
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
12
            IteratorType iter = range._fixed_values.begin();
790
24
            while (iter != range._fixed_values.end()) {
791
12
                if (this->is_in_range(*iter)) {
792
12
                    result_values.insert(*iter);
793
12
                }
794
12
                ++iter;
795
12
            }
796
12
        }
797
798
12
        if (!result_values.empty()) {
799
12
            _fixed_values = std::move(result_values);
800
12
            _contain_null = false;
801
12
            _high_value = TYPE_MIN;
802
12
            _low_value = TYPE_MAX;
803
12
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
12
    } else {
807
4
        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
4
        } 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
4
    }
817
16
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE29EE12intersectionERS2_
Line
Count
Source
761
458
void ColumnValueRange<primitive_type>::intersection(ColumnValueRange<primitive_type>& range) {
762
    // 1. clear if column type not match
763
458
    if (_column_type != range._column_type) {
764
0
        set_empty_value_range();
765
0
    }
766
767
    // 2. clear if any range is empty
768
458
    if (is_empty_value_range() || range.is_empty_value_range()) {
769
0
        set_empty_value_range();
770
0
    }
771
772
458
    SetType result_values;
773
    // 3. fixed_value intersection, fixed value range do not contain null
774
458
    if (is_fixed_value_range() || range.is_fixed_value_range()) {
775
140
        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
88
        } 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
88
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
88
            IteratorType iter = range._fixed_values.begin();
790
224
            while (iter != range._fixed_values.end()) {
791
136
                if (this->is_in_range(*iter)) {
792
136
                    result_values.insert(*iter);
793
136
                }
794
136
                ++iter;
795
136
            }
796
88
        }
797
798
140
        if (!result_values.empty()) {
799
138
            _fixed_values = std::move(result_values);
800
138
            _contain_null = false;
801
138
            _high_value = TYPE_MIN;
802
138
            _low_value = TYPE_MAX;
803
138
        } else {
804
2
            set_empty_value_range();
805
2
        }
806
318
    } else {
807
318
        if (contain_null() && range.contain_null()) {
808
            // if both is_whole_range to keep the same, else set_contain_null
809
64
            if (!is_whole_value_range() || !range.is_whole_value_range()) {
810
64
                set_contain_null(true);
811
64
            }
812
254
        } else {
813
254
            static_cast<void>(add_range(range._high_op, range._high_value));
814
254
            static_cast<void>(add_range(range._low_op, range._low_value));
815
254
        }
816
318
    }
817
458
}
_ZN5doris16ColumnValueRangeILNS_13PrimitiveTypeE30EE12intersectionERS2_
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
12
        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
12
        } 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
12
        } else if (!is_fixed_value_range() && range.is_fixed_value_range()) {
789
12
            IteratorType iter = range._fixed_values.begin();
790
24
            while (iter != range._fixed_values.end()) {
791
12
                if (this->is_in_range(*iter)) {
792
12
                    result_values.insert(*iter);
793
12
                }
794
12
                ++iter;
795
12
            }
796
12
        }
797
798
12
        if (!result_values.empty()) {
799
12
            _fixed_values = std::move(result_values);
800
12
            _contain_null = false;
801
12
            _high_value = TYPE_MIN;
802
12
            _low_value = TYPE_MAX;
803
12
        } else {
804
0
            set_empty_value_range();
805
0
        }
806
12
    } 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
20
}
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
170k
                                     bool* should_break) {
823
170k
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
170k
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
170k
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
170k
    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
170k
    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
170k
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
170k
    if (range.is_fixed_value_range()) {
842
124k
        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
124k
    } else {
852
46.0k
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
46.0k
            !range.is_reject_split_type()) {
854
3.49k
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
3.49k
                                                 _end_include);
856
857
3.49k
            if (!(*eos) &&
858
3.50k
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
3.50k
                                                 _end_include, max_scan_key_num)) {
860
3.50k
                _has_range_value = true;
861
3.50k
            }
862
3.49k
            return Status::OK();
863
3.49k
        }
864
46.0k
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
166k
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
124k
        if (_begin_scan_keys.empty()) {
870
41.4k
            auto fixed_value_set = range.get_fixed_value_set();
871
41.4k
            ConstIterator iter = fixed_value_set.begin();
872
873
83.0k
            for (; iter != fixed_value_set.end(); ++iter) {
874
41.5k
                _begin_scan_keys.emplace_back();
875
41.5k
                _begin_scan_keys.back().add_value(
876
41.5k
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
877
41.5k
                _end_scan_keys.emplace_back();
878
41.5k
                _end_scan_keys.back().add_value(
879
41.5k
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
880
41.5k
            }
881
882
41.4k
            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
41.4k
        } // 3.1.2 produces the Cartesian product of ScanKey and fixed_value
889
82.7k
        else {
890
82.7k
            auto fixed_value_set = range.get_fixed_value_set();
891
82.7k
            size_t original_key_range_size = _begin_scan_keys.size();
892
893
165k
            for (int i = 0; i < original_key_range_size; ++i) {
894
82.7k
                OlapTuple start_base_key_range = _begin_scan_keys[i];
895
82.7k
                OlapTuple end_base_key_range = _end_scan_keys[i];
896
897
82.7k
                ConstIterator iter = fixed_value_set.begin();
898
899
165k
                for (; iter != fixed_value_set.end(); ++iter) {
900
                    // alter the first ScanKey in original place
901
82.7k
                    if (iter == fixed_value_set.begin()) {
902
82.7k
                        _begin_scan_keys[i].add_value(
903
82.7k
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
904
82.7k
                        _end_scan_keys[i].add_value(
905
82.7k
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
906
82.7k
                    } // append follow ScanKey
907
30
                    else {
908
30
                        _begin_scan_keys.push_back(start_base_key_range);
909
30
                        _begin_scan_keys.back().add_value(
910
30
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
911
30
                        _end_scan_keys.push_back(end_base_key_range);
912
30
                        _end_scan_keys.back().add_value(
913
30
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
914
30
                    }
915
82.7k
                }
916
917
82.7k
                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
82.7k
            }
924
82.7k
        }
925
926
124k
        _begin_include = true;
927
124k
        _end_include = true;
928
124k
    } // Extend ScanKey with range value
929
42.6k
    else {
930
42.6k
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
42.6k
        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
42.6k
        } else if (_begin_scan_keys.empty()) {
947
1.12k
            _begin_scan_keys.emplace_back();
948
1.12k
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
1.12k
                                                      range.get_range_min_value(), range.scale()),
950
1.12k
                                              range.contain_null());
951
1.12k
            _end_scan_keys.emplace_back();
952
1.12k
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
1.12k
                    range.get_range_max_value(), range.scale()));
954
41.5k
        } else {
955
82.9k
            for (int i = 0; i < _begin_scan_keys.size(); ++i) {
956
41.4k
                _begin_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
957
41.4k
                                                      range.get_range_min_value(), range.scale()),
958
41.4k
                                              range.contain_null());
959
41.4k
            }
960
961
82.9k
            for (int i = 0; i < _end_scan_keys.size(); ++i) {
962
41.4k
                _end_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
963
41.4k
                        range.get_range_max_value(), range.scale()));
964
41.4k
            }
965
41.5k
        }
966
42.6k
        _begin_include = range.is_begin_include();
967
42.6k
        _end_include = range.is_end_include();
968
42.6k
    }
969
970
166k
    return Status::OK();
971
170k
}
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE3EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
90
                                     bool* should_break) {
823
90
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
90
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
90
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
90
    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
90
    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
90
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
90
    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
90
    } else {
852
90
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
90
            !range.is_reject_split_type()) {
854
90
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
90
                                                 _end_include);
856
857
90
            if (!(*eos) &&
858
90
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
90
                                                 _end_include, max_scan_key_num)) {
860
90
                _has_range_value = true;
861
90
            }
862
90
            return Status::OK();
863
90
        }
864
90
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
0
    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
0
    else {
930
0
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
0
        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
0
        } 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
0
        } 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
0
        _begin_include = range.is_begin_include();
967
0
        _end_include = range.is_end_include();
968
0
    }
969
970
0
    return Status::OK();
971
90
}
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE4EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
150
                                     bool* should_break) {
823
150
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
150
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
150
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
150
    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
150
    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
150
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
150
    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
150
    } else {
852
150
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
150
            !range.is_reject_split_type()) {
854
150
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
150
                                                 _end_include);
856
857
150
            if (!(*eos) &&
858
150
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
150
                                                 _end_include, max_scan_key_num)) {
860
150
                _has_range_value = true;
861
150
            }
862
150
            return Status::OK();
863
150
        }
864
150
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
0
    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
0
    else {
930
0
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
0
        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
0
        } 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
0
        } 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
0
        _begin_include = range.is_begin_include();
967
0
        _end_include = range.is_end_include();
968
0
    }
969
970
0
    return Status::OK();
971
150
}
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE5EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
3.01k
                                     bool* should_break) {
823
3.01k
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
3.01k
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
3.01k
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
3.01k
    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.01k
    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.01k
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
3.01k
    if (range.is_fixed_value_range()) {
842
32
        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
2.98k
    } else {
852
2.98k
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
2.98k
            !range.is_reject_split_type()) {
854
2.96k
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
2.96k
                                                 _end_include);
856
857
2.96k
            if (!(*eos) &&
858
2.96k
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
2.96k
                                                 _end_include, max_scan_key_num)) {
860
2.96k
                _has_range_value = true;
861
2.96k
            }
862
2.96k
            return Status::OK();
863
2.96k
        }
864
2.98k
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
54
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
32
        if (_begin_scan_keys.empty()) {
870
32
            auto fixed_value_set = range.get_fixed_value_set();
871
32
            ConstIterator iter = fixed_value_set.begin();
872
873
64
            for (; iter != fixed_value_set.end(); ++iter) {
874
32
                _begin_scan_keys.emplace_back();
875
32
                _begin_scan_keys.back().add_value(
876
32
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
877
32
                _end_scan_keys.emplace_back();
878
32
                _end_scan_keys.back().add_value(
879
32
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
880
32
            }
881
882
32
            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
32
        } // 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
32
        _begin_include = true;
927
32
        _end_include = true;
928
32
    } // Extend ScanKey with range value
929
22
    else {
930
22
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
22
        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
22
        } else if (_begin_scan_keys.empty()) {
947
4
            _begin_scan_keys.emplace_back();
948
4
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
4
                                                      range.get_range_min_value(), range.scale()),
950
4
                                              range.contain_null());
951
4
            _end_scan_keys.emplace_back();
952
4
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
4
                    range.get_range_max_value(), range.scale()));
954
18
        } else {
955
42
            for (int i = 0; i < _begin_scan_keys.size(); ++i) {
956
24
                _begin_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
957
24
                                                      range.get_range_min_value(), range.scale()),
958
24
                                              range.contain_null());
959
24
            }
960
961
42
            for (int i = 0; i < _end_scan_keys.size(); ++i) {
962
24
                _end_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
963
24
                        range.get_range_max_value(), range.scale()));
964
24
            }
965
18
        }
966
22
        _begin_include = range.is_begin_include();
967
22
        _end_include = range.is_end_include();
968
22
    }
969
970
54
    return Status::OK();
971
3.01k
}
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE6EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
248
                                     bool* should_break) {
823
248
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
248
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
248
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
248
    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
248
    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
248
    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
248
    } else {
852
250
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
250
            !range.is_reject_split_type()) {
854
250
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
250
                                                 _end_include);
856
857
250
            if (!(*eos) &&
858
250
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
250
                                                 _end_include, max_scan_key_num)) {
860
250
                _has_range_value = true;
861
250
            }
862
250
            return Status::OK();
863
250
        }
864
248
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
18.4E
    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
18.4E
    else {
930
18.4E
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
18.4E
        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
18.4E
        } 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
18.4E
        } else {
955
18.4E
            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
18.4E
            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
18.4E
        }
966
18.4E
        _begin_include = range.is_begin_include();
967
18.4E
        _end_include = range.is_end_include();
968
18.4E
    }
969
970
18.4E
    return Status::OK();
971
248
}
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE7EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
130
                                     bool* should_break) {
823
130
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
130
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
130
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
130
    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
130
    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
130
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
130
    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
130
    } else {
852
130
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
130
            !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
130
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
130
    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
130
    else {
930
130
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
130
        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
130
        } else if (_begin_scan_keys.empty()) {
947
130
            _begin_scan_keys.emplace_back();
948
130
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
130
                                                      range.get_range_min_value(), range.scale()),
950
130
                                              range.contain_null());
951
130
            _end_scan_keys.emplace_back();
952
130
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
130
                    range.get_range_max_value(), range.scale()));
954
130
        } 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
130
        _begin_include = range.is_begin_include();
967
130
        _end_include = range.is_end_include();
968
130
    }
969
970
130
    return Status::OK();
971
130
}
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_
Unexecuted instantiation: _ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE37EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Unexecuted instantiation: _ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE15EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE10EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
166k
                                     bool* should_break) {
823
166k
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
166k
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
166k
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
166k
    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
166k
    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
166k
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
166k
    if (range.is_fixed_value_range()) {
842
124k
        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
124k
    } else {
852
42.0k
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
42.0k
            !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
42.0k
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
166k
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
124k
        if (_begin_scan_keys.empty()) {
870
41.4k
            auto fixed_value_set = range.get_fixed_value_set();
871
41.4k
            ConstIterator iter = fixed_value_set.begin();
872
873
82.9k
            for (; iter != fixed_value_set.end(); ++iter) {
874
41.4k
                _begin_scan_keys.emplace_back();
875
41.4k
                _begin_scan_keys.back().add_value(
876
41.4k
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
877
41.4k
                _end_scan_keys.emplace_back();
878
41.4k
                _end_scan_keys.back().add_value(
879
41.4k
                        cast_to_string<primitive_type, CppType>(*iter, range.scale()));
880
41.4k
            }
881
882
41.4k
            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
41.4k
        } // 3.1.2 produces the Cartesian product of ScanKey and fixed_value
889
82.7k
        else {
890
82.7k
            auto fixed_value_set = range.get_fixed_value_set();
891
82.7k
            size_t original_key_range_size = _begin_scan_keys.size();
892
893
165k
            for (int i = 0; i < original_key_range_size; ++i) {
894
82.7k
                OlapTuple start_base_key_range = _begin_scan_keys[i];
895
82.7k
                OlapTuple end_base_key_range = _end_scan_keys[i];
896
897
82.7k
                ConstIterator iter = fixed_value_set.begin();
898
899
165k
                for (; iter != fixed_value_set.end(); ++iter) {
900
                    // alter the first ScanKey in original place
901
82.7k
                    if (iter == fixed_value_set.begin()) {
902
82.7k
                        _begin_scan_keys[i].add_value(
903
82.7k
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
904
82.7k
                        _end_scan_keys[i].add_value(
905
82.7k
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
906
82.7k
                    } // append follow ScanKey
907
30
                    else {
908
30
                        _begin_scan_keys.push_back(start_base_key_range);
909
30
                        _begin_scan_keys.back().add_value(
910
30
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
911
30
                        _end_scan_keys.push_back(end_base_key_range);
912
30
                        _end_scan_keys.back().add_value(
913
30
                                cast_to_string<primitive_type, CppType>(*iter, range.scale()));
914
30
                    }
915
82.7k
                }
916
917
82.7k
                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
82.7k
            }
924
82.7k
        }
925
926
124k
        _begin_include = true;
927
124k
        _end_include = true;
928
124k
    } // Extend ScanKey with range value
929
42.1k
    else {
930
42.1k
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
42.1k
        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
42.1k
        } else if (_begin_scan_keys.empty()) {
947
670
            _begin_scan_keys.emplace_back();
948
670
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
670
                                                      range.get_range_min_value(), range.scale()),
950
670
                                              range.contain_null());
951
670
            _end_scan_keys.emplace_back();
952
670
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
670
                    range.get_range_max_value(), range.scale()));
954
41.4k
        } else {
955
82.8k
            for (int i = 0; i < _begin_scan_keys.size(); ++i) {
956
41.4k
                _begin_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
957
41.4k
                                                      range.get_range_min_value(), range.scale()),
958
41.4k
                                              range.contain_null());
959
41.4k
            }
960
961
82.8k
            for (int i = 0; i < _end_scan_keys.size(); ++i) {
962
41.4k
                _end_scan_keys[i].add_value(cast_to_string<primitive_type, CppType>(
963
41.4k
                        range.get_range_max_value(), range.scale()));
964
41.4k
            }
965
41.4k
        }
966
42.1k
        _begin_include = range.is_begin_include();
967
42.1k
        _end_include = range.is_end_include();
968
42.1k
    }
969
970
166k
    return Status::OK();
971
166k
}
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
48
                                     bool* should_break) {
823
48
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
48
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
48
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
48
    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
48
    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
48
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
48
    if (range.is_fixed_value_range()) {
842
4
        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
44
    } else {
852
44
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
44
            !range.is_reject_split_type()) {
854
44
            *eos |= range.convert_to_close_range(_begin_scan_keys, _end_scan_keys, _begin_include,
855
44
                                                 _end_include);
856
857
44
            if (!(*eos) &&
858
44
                range.convert_to_avg_range_value(_begin_scan_keys, _end_scan_keys, _begin_include,
859
44
                                                 _end_include, max_scan_key_num)) {
860
44
                _has_range_value = true;
861
44
            }
862
44
            return Status::OK();
863
44
        }
864
44
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
4
    if (range.is_fixed_value_range()) {
868
        // 3.1.1 construct num of fixed value ScanKey (begin_key == end_key)
869
4
        if (_begin_scan_keys.empty()) {
870
4
            auto fixed_value_set = range.get_fixed_value_set();
871
4
            ConstIterator iter = fixed_value_set.begin();
872
873
8
            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
4
            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
4
        } // 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
4
        _begin_include = true;
927
4
        _end_include = true;
928
4
    } // Extend ScanKey with range value
929
0
    else {
930
0
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
0
        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
0
        } 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
0
        } 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
0
        _begin_include = range.is_begin_include();
967
0
        _end_include = range.is_end_include();
968
0
    }
969
970
4
    return Status::OK();
971
48
}
Unexecuted instantiation: _ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE12EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
_ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE26EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Line
Count
Source
822
144
                                     bool* should_break) {
823
144
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
144
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
144
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
144
    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
144
    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
144
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
144
    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
144
    } else {
852
144
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
144
            !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
144
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
144
    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
144
    else {
930
144
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
144
        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
144
        } else if (_begin_scan_keys.empty()) {
947
144
            _begin_scan_keys.emplace_back();
948
144
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
144
                                                      range.get_range_min_value(), range.scale()),
950
144
                                              range.contain_null());
951
144
            _end_scan_keys.emplace_back();
952
144
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
144
                    range.get_range_max_value(), range.scale()));
954
144
        } 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
144
        _begin_include = range.is_begin_include();
967
144
        _end_include = range.is_end_include();
968
144
    }
969
970
144
    return Status::OK();
971
144
}
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
172
                                     bool* should_break) {
823
172
    using CppType = std::conditional_t<primitive_type == TYPE_HLL, StringRef,
824
172
                                       typename PrimitiveTypeTraits<primitive_type>::CppType>;
825
172
    using ConstIterator = typename ColumnValueRange<primitive_type>::SetType::const_iterator;
826
827
    // 1. clear ScanKey if some column range is empty
828
172
    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
172
    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
172
    auto scan_keys_size = _begin_scan_keys.empty() ? 1 : _begin_scan_keys.size();
841
172
    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
172
    } else {
852
172
        if (_begin_scan_keys.empty() && range.is_fixed_value_convertible() && _is_convertible &&
853
172
            !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
172
    }
865
866
    // 3.1 extend ScanKey with FixedValueRange
867
172
    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
172
    else {
930
172
        _has_range_value = true;
931
932
        /// if max < min, this range should only contains a null value.
933
172
        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
172
        } else if (_begin_scan_keys.empty()) {
947
172
            _begin_scan_keys.emplace_back();
948
172
            _begin_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
949
172
                                                      range.get_range_min_value(), range.scale()),
950
172
                                              range.contain_null());
951
172
            _end_scan_keys.emplace_back();
952
172
            _end_scan_keys.back().add_value(cast_to_string<primitive_type, CppType>(
953
172
                    range.get_range_max_value(), range.scale()));
954
172
        } 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
172
        _begin_include = range.is_begin_include();
967
172
        _end_include = range.is_end_include();
968
172
    }
969
970
172
    return Status::OK();
971
172
}
Unexecuted instantiation: _ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE19EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Unexecuted instantiation: _ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE28EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Unexecuted instantiation: _ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE29EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Unexecuted instantiation: _ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE30EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
Unexecuted instantiation: _ZN5doris12OlapScanKeys15extend_scan_keyILNS_13PrimitiveTypeE35EEENS_6StatusERNS_16ColumnValueRangeIXT_EEEiPbS7_S7_
972
973
#include "common/compile_check_end.h"
974
} // namespace doris