Coverage Report

Created: 2026-06-08 06:13

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/functions_comparison.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
// This file is copied from
18
// https://github.com/ClickHouse/ClickHouse/blob/master/src/Functions/FunctionsComparison.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include <compare>
24
#include <limits>
25
#include <string_view>
26
#include <type_traits>
27
28
#include "common/logging.h"
29
#include "core/accurate_comparison.h"
30
#include "core/assert_cast.h"
31
#include "core/column/column_const.h"
32
#include "core/column/column_decimal.h"
33
#include "core/column/column_nullable.h"
34
#include "core/column/column_string.h"
35
#include "core/data_type/data_type_nullable.h"
36
#include "core/data_type/data_type_number.h"
37
#include "core/data_type/data_type_string.h"
38
#include "core/data_type/define_primitive_type.h"
39
#include "core/decimal_comparison.h"
40
#include "core/field.h"
41
#include "core/memcmp_small.h"
42
#include "core/value/vdatetime_value.h"
43
#include "exprs/expr_zonemap_filter.h"
44
#include "exprs/function/function.h"
45
#include "exprs/function/function_helpers.h"
46
#include "exprs/function/functions_logical.h"
47
#include "exprs/vexpr.h"
48
#include "storage/index/index_reader_helper.h"
49
50
namespace doris {
51
52
namespace comparison_zonemap_detail {
53
54
enum class Op {
55
    EQ,
56
    NE,
57
    LT,
58
    LE,
59
    GT,
60
    GE,
61
};
62
63
6.19k
inline ZoneMapFilterResult unsupported(ZoneMapEvalContext const& ctx) {
64
6.19k
    ++ctx.stats.unsupported_expr_count;
65
6.19k
    return ZoneMapFilterResult::kUnsupported;
66
6.19k
}
67
68
4
inline Op symmetric_op(Op op) {
69
4
    switch (op) {
70
0
    case Op::EQ:
71
0
    case Op::NE:
72
0
        return op;
73
2
    case Op::LT:
74
2
        return Op::GT;
75
0
    case Op::LE:
76
0
        return Op::GE;
77
0
    case Op::GT:
78
0
        return Op::LT;
79
2
    case Op::GE:
80
2
        return Op::LE;
81
4
    }
82
0
    __builtin_unreachable();
83
4
}
84
85
1.54k
inline bool field_less(const Field& lhs, const Field& rhs) {
86
1.54k
    return (lhs <=> rhs) == std::strong_ordering::less;
87
1.54k
}
88
89
145
inline bool field_less_equal(const Field& lhs, const Field& rhs) {
90
145
    const auto cmp = lhs <=> rhs;
91
145
    return cmp == std::strong_ordering::less || cmp == std::strong_ordering::equal;
92
145
}
93
94
1.39k
inline bool field_greater(const Field& lhs, const Field& rhs) {
95
1.39k
    return (lhs <=> rhs) == std::strong_ordering::greater;
96
1.39k
}
97
98
153
inline bool field_greater_equal(const Field& lhs, const Field& rhs) {
99
153
    const auto cmp = lhs <=> rhs;
100
153
    return cmp == std::strong_ordering::greater || cmp == std::strong_ordering::equal;
101
153
}
102
103
5.11k
inline bool data_types_compatible(const DataTypePtr& lhs, const DataTypePtr& rhs) {
104
5.11k
    return lhs != nullptr && rhs != nullptr && remove_nullable(lhs)->equals(*remove_nullable(rhs));
105
5.11k
}
106
107
inline bool check_type_compatible(const ZoneMapEvalContext& ctx, int slot_index,
108
2.54k
                                  const DataTypePtr& literal_type) {
109
2.54k
    const auto* slot_type = ctx.data_type(slot_index);
110
2.54k
    if (slot_type == nullptr || *slot_type == nullptr || literal_type == nullptr) {
111
296
        return false;
112
296
    }
113
2.25k
    if (!data_types_compatible(*slot_type, literal_type)) {
114
1
        ++ctx.stats.type_mismatch_count;
115
1
        return false;
116
1
    }
117
2.24k
    return true;
118
2.25k
}
119
120
3.07k
inline bool data_type_supports_range_zonemap(const DataTypePtr& data_type) {
121
3.07k
    return data_type != nullptr && remove_nullable(data_type)->get_primitive_type() != TYPE_CHAR;
122
3.07k
}
123
124
inline ZoneMapFilterResult evaluate(const ZoneMapEvalContext& ctx, const VExprSPtrs& arguments,
125
8.25k
                                    Op op) {
126
8.25k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
127
8.25k
    if (!slot_literal.has_value()) {
128
5.80k
        return unsupported(ctx);
129
5.80k
    }
130
2.44k
    if (slot_literal->literal.is_null()) {
131
2
        return ZoneMapFilterResult::kNoMatch;
132
2
    }
133
2.44k
    if (!check_type_compatible(ctx, slot_literal->slot_index, slot_literal->literal_type)) {
134
297
        return unsupported(ctx);
135
297
    }
136
2.14k
    auto zone_map_ref = expr_zonemap::fetch_zone_map(ctx, slot_literal->slot_index);
137
2.14k
    if (zone_map_ref == nullptr) {
138
30
        return ZoneMapFilterResult::kUnsupported;
139
30
    }
140
2.11k
    const auto& zone_map = *zone_map_ref;
141
2.11k
    if (!zone_map.has_not_null) {
142
59
        return ZoneMapFilterResult::kNoMatch;
143
59
    }
144
2.05k
    const auto* slot_type = ctx.data_type(slot_literal->slot_index);
145
2.05k
    if (!expr_zonemap::range_stats_usable_for_zonemap(zone_map, *slot_type)) {
146
89
        return unsupported(ctx);
147
89
    }
148
149
1.96k
    const auto effective_op = slot_literal->literal_on_left ? symmetric_op(op) : op;
150
1.96k
    const auto& literal = slot_literal->literal;
151
1.96k
    switch (effective_op) {
152
1.38k
    case Op::EQ:
153
1.38k
        return field_less(literal, zone_map.min_value) || field_greater(literal, zone_map.max_value)
154
1.38k
                       ? ZoneMapFilterResult::kNoMatch
155
1.38k
                       : ZoneMapFilterResult::kMayMatch;
156
96
    case Op::NE:
157
96
        return zone_map.min_value == literal && zone_map.max_value == literal
158
96
                       ? ZoneMapFilterResult::kNoMatch
159
96
                       : ZoneMapFilterResult::kMayMatch;
160
153
    case Op::LT:
161
153
        return field_greater_equal(zone_map.min_value, literal) ? ZoneMapFilterResult::kNoMatch
162
153
                                                                : ZoneMapFilterResult::kMayMatch;
163
129
    case Op::LE:
164
129
        return field_greater(zone_map.min_value, literal) ? ZoneMapFilterResult::kNoMatch
165
129
                                                          : ZoneMapFilterResult::kMayMatch;
166
145
    case Op::GT:
167
145
        return field_less_equal(zone_map.max_value, literal) ? ZoneMapFilterResult::kNoMatch
168
145
                                                             : ZoneMapFilterResult::kMayMatch;
169
161
    case Op::GE:
170
161
        return field_less(zone_map.max_value, literal) ? ZoneMapFilterResult::kNoMatch
171
161
                                                       : ZoneMapFilterResult::kMayMatch;
172
1.96k
    }
173
0
    __builtin_unreachable();
174
1.96k
}
175
176
13.2k
inline bool can_evaluate(const VExprSPtrs& arguments) {
177
13.2k
    auto slot_literal = expr_zonemap::extract_slot_and_literal(arguments);
178
13.2k
    if (!slot_literal.has_value()) {
179
10.2k
        return false;
180
10.2k
    }
181
3.05k
    return data_type_supports_range_zonemap(slot_literal->slot_type) &&
182
3.05k
           data_types_compatible(slot_literal->slot_type, slot_literal->literal_type);
183
13.2k
}
184
185
} // namespace comparison_zonemap_detail
186
187
/** Comparison functions: ==, !=, <, >, <=, >=.
188
  * The comparison functions always return 0 or 1 (UInt8).
189
  *
190
  * You can compare the following types:
191
  * - numbers and decimals;
192
  * - strings and fixed strings;
193
  * - dates;
194
  * - datetimes;
195
  *   within each group, but not from different groups;
196
  * - tuples (lexicographic comparison).
197
  *
198
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
199
  */
200
201
template <typename A, typename B, typename Op>
202
struct NumComparisonImpl {
203
    /// If you don't specify NO_INLINE, the compiler will inline this function, but we don't need this as this function contains tight loop inside.
204
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
205
7.78k
                                        PaddedPODArray<UInt8>& c) {
206
7.78k
        size_t size = a.size();
207
7.78k
        const A* __restrict a_pos = a.data();
208
7.78k
        const B* __restrict b_pos = b.data();
209
7.78k
        UInt8* __restrict c_pos = c.data();
210
7.78k
        const A* __restrict a_end = a_pos + size;
211
212
4.57M
        while (a_pos < a_end) {
213
4.57M
            *c_pos = Op::apply(*a_pos, *b_pos);
214
4.57M
            ++a_pos;
215
4.57M
            ++b_pos;
216
4.57M
            ++c_pos;
217
4.57M
        }
218
7.78k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
205
62
                                        PaddedPODArray<UInt8>& c) {
206
62
        size_t size = a.size();
207
62
        const A* __restrict a_pos = a.data();
208
62
        const B* __restrict b_pos = b.data();
209
62
        UInt8* __restrict c_pos = c.data();
210
62
        const A* __restrict a_end = a_pos + size;
211
212
124
        while (a_pos < a_end) {
213
62
            *c_pos = Op::apply(*a_pos, *b_pos);
214
62
            ++a_pos;
215
62
            ++b_pos;
216
62
            ++c_pos;
217
62
        }
218
62
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
205
360
                                        PaddedPODArray<UInt8>& c) {
206
360
        size_t size = a.size();
207
360
        const A* __restrict a_pos = a.data();
208
360
        const B* __restrict b_pos = b.data();
209
360
        UInt8* __restrict c_pos = c.data();
210
360
        const A* __restrict a_end = a_pos + size;
211
212
1.57k
        while (a_pos < a_end) {
213
1.21k
            *c_pos = Op::apply(*a_pos, *b_pos);
214
1.21k
            ++a_pos;
215
1.21k
            ++b_pos;
216
1.21k
            ++c_pos;
217
1.21k
        }
218
360
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
205
295
                                        PaddedPODArray<UInt8>& c) {
206
295
        size_t size = a.size();
207
295
        const A* __restrict a_pos = a.data();
208
295
        const B* __restrict b_pos = b.data();
209
295
        UInt8* __restrict c_pos = c.data();
210
295
        const A* __restrict a_end = a_pos + size;
211
212
608
        while (a_pos < a_end) {
213
313
            *c_pos = Op::apply(*a_pos, *b_pos);
214
313
            ++a_pos;
215
313
            ++b_pos;
216
313
            ++c_pos;
217
313
        }
218
295
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
205
2
                                        PaddedPODArray<UInt8>& c) {
206
2
        size_t size = a.size();
207
2
        const A* __restrict a_pos = a.data();
208
2
        const B* __restrict b_pos = b.data();
209
2
        UInt8* __restrict c_pos = c.data();
210
2
        const A* __restrict a_end = a_pos + size;
211
212
12
        while (a_pos < a_end) {
213
10
            *c_pos = Op::apply(*a_pos, *b_pos);
214
10
            ++a_pos;
215
10
            ++b_pos;
216
10
            ++c_pos;
217
10
        }
218
2
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
168
                                        PaddedPODArray<UInt8>& c) {
206
168
        size_t size = a.size();
207
168
        const A* __restrict a_pos = a.data();
208
168
        const B* __restrict b_pos = b.data();
209
168
        UInt8* __restrict c_pos = c.data();
210
168
        const A* __restrict a_end = a_pos + size;
211
212
478
        while (a_pos < a_end) {
213
310
            *c_pos = Op::apply(*a_pos, *b_pos);
214
310
            ++a_pos;
215
310
            ++b_pos;
216
310
            ++c_pos;
217
310
        }
218
168
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
95
                                        PaddedPODArray<UInt8>& c) {
206
95
        size_t size = a.size();
207
95
        const A* __restrict a_pos = a.data();
208
95
        const B* __restrict b_pos = b.data();
209
95
        UInt8* __restrict c_pos = c.data();
210
95
        const A* __restrict a_end = a_pos + size;
211
212
190
        while (a_pos < a_end) {
213
95
            *c_pos = Op::apply(*a_pos, *b_pos);
214
95
            ++a_pos;
215
95
            ++b_pos;
216
95
            ++c_pos;
217
95
        }
218
95
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
294
                                        PaddedPODArray<UInt8>& c) {
206
294
        size_t size = a.size();
207
294
        const A* __restrict a_pos = a.data();
208
294
        const B* __restrict b_pos = b.data();
209
294
        UInt8* __restrict c_pos = c.data();
210
294
        const A* __restrict a_end = a_pos + size;
211
212
1.83k
        while (a_pos < a_end) {
213
1.54k
            *c_pos = Op::apply(*a_pos, *b_pos);
214
1.54k
            ++a_pos;
215
1.54k
            ++b_pos;
216
1.54k
            ++c_pos;
217
1.54k
        }
218
294
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
146
                                        PaddedPODArray<UInt8>& c) {
206
146
        size_t size = a.size();
207
146
        const A* __restrict a_pos = a.data();
208
146
        const B* __restrict b_pos = b.data();
209
146
        UInt8* __restrict c_pos = c.data();
210
146
        const A* __restrict a_end = a_pos + size;
211
212
1.35k
        while (a_pos < a_end) {
213
1.21k
            *c_pos = Op::apply(*a_pos, *b_pos);
214
1.21k
            ++a_pos;
215
1.21k
            ++b_pos;
216
1.21k
            ++c_pos;
217
1.21k
        }
218
146
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
98
                                        PaddedPODArray<UInt8>& c) {
206
98
        size_t size = a.size();
207
98
        const A* __restrict a_pos = a.data();
208
98
        const B* __restrict b_pos = b.data();
209
98
        UInt8* __restrict c_pos = c.data();
210
98
        const A* __restrict a_end = a_pos + size;
211
212
196
        while (a_pos < a_end) {
213
98
            *c_pos = Op::apply(*a_pos, *b_pos);
214
98
            ++a_pos;
215
98
            ++b_pos;
216
98
            ++c_pos;
217
98
        }
218
98
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
16
                                        PaddedPODArray<UInt8>& c) {
206
16
        size_t size = a.size();
207
16
        const A* __restrict a_pos = a.data();
208
16
        const B* __restrict b_pos = b.data();
209
16
        UInt8* __restrict c_pos = c.data();
210
16
        const A* __restrict a_end = a_pos + size;
211
212
32
        while (a_pos < a_end) {
213
16
            *c_pos = Op::apply(*a_pos, *b_pos);
214
16
            ++a_pos;
215
16
            ++b_pos;
216
16
            ++c_pos;
217
16
        }
218
16
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
24
                                        PaddedPODArray<UInt8>& c) {
206
24
        size_t size = a.size();
207
24
        const A* __restrict a_pos = a.data();
208
24
        const B* __restrict b_pos = b.data();
209
24
        UInt8* __restrict c_pos = c.data();
210
24
        const A* __restrict a_end = a_pos + size;
211
212
48
        while (a_pos < a_end) {
213
24
            *c_pos = Op::apply(*a_pos, *b_pos);
214
24
            ++a_pos;
215
24
            ++b_pos;
216
24
            ++c_pos;
217
24
        }
218
24
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
109
                                        PaddedPODArray<UInt8>& c) {
206
109
        size_t size = a.size();
207
109
        const A* __restrict a_pos = a.data();
208
109
        const B* __restrict b_pos = b.data();
209
109
        UInt8* __restrict c_pos = c.data();
210
109
        const A* __restrict a_end = a_pos + size;
211
212
237
        while (a_pos < a_end) {
213
128
            *c_pos = Op::apply(*a_pos, *b_pos);
214
128
            ++a_pos;
215
128
            ++b_pos;
216
128
            ++c_pos;
217
128
        }
218
109
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
114
                                        PaddedPODArray<UInt8>& c) {
206
114
        size_t size = a.size();
207
114
        const A* __restrict a_pos = a.data();
208
114
        const B* __restrict b_pos = b.data();
209
114
        UInt8* __restrict c_pos = c.data();
210
114
        const A* __restrict a_end = a_pos + size;
211
212
249
        while (a_pos < a_end) {
213
135
            *c_pos = Op::apply(*a_pos, *b_pos);
214
135
            ++a_pos;
215
135
            ++b_pos;
216
135
            ++c_pos;
217
135
        }
218
114
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
4
                                        PaddedPODArray<UInt8>& c) {
206
4
        size_t size = a.size();
207
4
        const A* __restrict a_pos = a.data();
208
4
        const B* __restrict b_pos = b.data();
209
4
        UInt8* __restrict c_pos = c.data();
210
4
        const A* __restrict a_end = a_pos + size;
211
212
8
        while (a_pos < a_end) {
213
4
            *c_pos = Op::apply(*a_pos, *b_pos);
214
4
            ++a_pos;
215
4
            ++b_pos;
216
4
            ++c_pos;
217
4
        }
218
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
205
39
                                        PaddedPODArray<UInt8>& c) {
206
39
        size_t size = a.size();
207
39
        const A* __restrict a_pos = a.data();
208
39
        const B* __restrict b_pos = b.data();
209
39
        UInt8* __restrict c_pos = c.data();
210
39
        const A* __restrict a_end = a_pos + size;
211
212
108
        while (a_pos < a_end) {
213
69
            *c_pos = Op::apply(*a_pos, *b_pos);
214
69
            ++a_pos;
215
69
            ++b_pos;
216
69
            ++c_pos;
217
69
        }
218
39
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
56
                                        PaddedPODArray<UInt8>& c) {
206
56
        size_t size = a.size();
207
56
        const A* __restrict a_pos = a.data();
208
56
        const B* __restrict b_pos = b.data();
209
56
        UInt8* __restrict c_pos = c.data();
210
56
        const A* __restrict a_end = a_pos + size;
211
212
252
        while (a_pos < a_end) {
213
196
            *c_pos = Op::apply(*a_pos, *b_pos);
214
196
            ++a_pos;
215
196
            ++b_pos;
216
196
            ++c_pos;
217
196
        }
218
56
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
316
                                        PaddedPODArray<UInt8>& c) {
206
316
        size_t size = a.size();
207
316
        const A* __restrict a_pos = a.data();
208
316
        const B* __restrict b_pos = b.data();
209
316
        UInt8* __restrict c_pos = c.data();
210
316
        const A* __restrict a_end = a_pos + size;
211
212
297k
        while (a_pos < a_end) {
213
297k
            *c_pos = Op::apply(*a_pos, *b_pos);
214
297k
            ++a_pos;
215
297k
            ++b_pos;
216
297k
            ++c_pos;
217
297k
        }
218
316
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
349
                                        PaddedPODArray<UInt8>& c) {
206
349
        size_t size = a.size();
207
349
        const A* __restrict a_pos = a.data();
208
349
        const B* __restrict b_pos = b.data();
209
349
        UInt8* __restrict c_pos = c.data();
210
349
        const A* __restrict a_end = a_pos + size;
211
212
6.28k
        while (a_pos < a_end) {
213
5.93k
            *c_pos = Op::apply(*a_pos, *b_pos);
214
5.93k
            ++a_pos;
215
5.93k
            ++b_pos;
216
5.93k
            ++c_pos;
217
5.93k
        }
218
349
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
20
                                        PaddedPODArray<UInt8>& c) {
206
20
        size_t size = a.size();
207
20
        const A* __restrict a_pos = a.data();
208
20
        const B* __restrict b_pos = b.data();
209
20
        UInt8* __restrict c_pos = c.data();
210
20
        const A* __restrict a_end = a_pos + size;
211
212
59
        while (a_pos < a_end) {
213
39
            *c_pos = Op::apply(*a_pos, *b_pos);
214
39
            ++a_pos;
215
39
            ++b_pos;
216
39
            ++c_pos;
217
39
        }
218
20
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
20
                                        PaddedPODArray<UInt8>& c) {
206
20
        size_t size = a.size();
207
20
        const A* __restrict a_pos = a.data();
208
20
        const B* __restrict b_pos = b.data();
209
20
        UInt8* __restrict c_pos = c.data();
210
20
        const A* __restrict a_end = a_pos + size;
211
212
59
        while (a_pos < a_end) {
213
39
            *c_pos = Op::apply(*a_pos, *b_pos);
214
39
            ++a_pos;
215
39
            ++b_pos;
216
39
            ++c_pos;
217
39
        }
218
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
205
1.04k
                                        PaddedPODArray<UInt8>& c) {
206
1.04k
        size_t size = a.size();
207
1.04k
        const A* __restrict a_pos = a.data();
208
1.04k
        const B* __restrict b_pos = b.data();
209
1.04k
        UInt8* __restrict c_pos = c.data();
210
1.04k
        const A* __restrict a_end = a_pos + size;
211
212
1.58M
        while (a_pos < a_end) {
213
1.58M
            *c_pos = Op::apply(*a_pos, *b_pos);
214
1.58M
            ++a_pos;
215
1.58M
            ++b_pos;
216
1.58M
            ++c_pos;
217
1.58M
        }
218
1.04k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
205
1
                                        PaddedPODArray<UInt8>& c) {
206
1
        size_t size = a.size();
207
1
        const A* __restrict a_pos = a.data();
208
1
        const B* __restrict b_pos = b.data();
209
1
        UInt8* __restrict c_pos = c.data();
210
1
        const A* __restrict a_end = a_pos + size;
211
212
10
        while (a_pos < a_end) {
213
9
            *c_pos = Op::apply(*a_pos, *b_pos);
214
9
            ++a_pos;
215
9
            ++b_pos;
216
9
            ++c_pos;
217
9
        }
218
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
38
                                        PaddedPODArray<UInt8>& c) {
206
38
        size_t size = a.size();
207
38
        const A* __restrict a_pos = a.data();
208
38
        const B* __restrict b_pos = b.data();
209
38
        UInt8* __restrict c_pos = c.data();
210
38
        const A* __restrict a_end = a_pos + size;
211
212
322
        while (a_pos < a_end) {
213
284
            *c_pos = Op::apply(*a_pos, *b_pos);
214
284
            ++a_pos;
215
284
            ++b_pos;
216
284
            ++c_pos;
217
284
        }
218
38
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
112
                                        PaddedPODArray<UInt8>& c) {
206
112
        size_t size = a.size();
207
112
        const A* __restrict a_pos = a.data();
208
112
        const B* __restrict b_pos = b.data();
209
112
        UInt8* __restrict c_pos = c.data();
210
112
        const A* __restrict a_end = a_pos + size;
211
212
376
        while (a_pos < a_end) {
213
264
            *c_pos = Op::apply(*a_pos, *b_pos);
214
264
            ++a_pos;
215
264
            ++b_pos;
216
264
            ++c_pos;
217
264
        }
218
112
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
44
                                        PaddedPODArray<UInt8>& c) {
206
44
        size_t size = a.size();
207
44
        const A* __restrict a_pos = a.data();
208
44
        const B* __restrict b_pos = b.data();
209
44
        UInt8* __restrict c_pos = c.data();
210
44
        const A* __restrict a_end = a_pos + size;
211
212
251
        while (a_pos < a_end) {
213
207
            *c_pos = Op::apply(*a_pos, *b_pos);
214
207
            ++a_pos;
215
207
            ++b_pos;
216
207
            ++c_pos;
217
207
        }
218
44
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
64
                                        PaddedPODArray<UInt8>& c) {
206
64
        size_t size = a.size();
207
64
        const A* __restrict a_pos = a.data();
208
64
        const B* __restrict b_pos = b.data();
209
64
        UInt8* __restrict c_pos = c.data();
210
64
        const A* __restrict a_end = a_pos + size;
211
212
571
        while (a_pos < a_end) {
213
507
            *c_pos = Op::apply(*a_pos, *b_pos);
214
507
            ++a_pos;
215
507
            ++b_pos;
216
507
            ++c_pos;
217
507
        }
218
64
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
2
                                        PaddedPODArray<UInt8>& c) {
206
2
        size_t size = a.size();
207
2
        const A* __restrict a_pos = a.data();
208
2
        const B* __restrict b_pos = b.data();
209
2
        UInt8* __restrict c_pos = c.data();
210
2
        const A* __restrict a_end = a_pos + size;
211
212
6
        while (a_pos < a_end) {
213
4
            *c_pos = Op::apply(*a_pos, *b_pos);
214
4
            ++a_pos;
215
4
            ++b_pos;
216
4
            ++c_pos;
217
4
        }
218
2
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
1
                                        PaddedPODArray<UInt8>& c) {
206
1
        size_t size = a.size();
207
1
        const A* __restrict a_pos = a.data();
208
1
        const B* __restrict b_pos = b.data();
209
1
        UInt8* __restrict c_pos = c.data();
210
1
        const A* __restrict a_end = a_pos + size;
211
212
2
        while (a_pos < a_end) {
213
1
            *c_pos = Op::apply(*a_pos, *b_pos);
214
1
            ++a_pos;
215
1
            ++b_pos;
216
1
            ++c_pos;
217
1
        }
218
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
1
                                        PaddedPODArray<UInt8>& c) {
206
1
        size_t size = a.size();
207
1
        const A* __restrict a_pos = a.data();
208
1
        const B* __restrict b_pos = b.data();
209
1
        UInt8* __restrict c_pos = c.data();
210
1
        const A* __restrict a_end = a_pos + size;
211
212
2
        while (a_pos < a_end) {
213
1
            *c_pos = Op::apply(*a_pos, *b_pos);
214
1
            ++a_pos;
215
1
            ++b_pos;
216
1
            ++c_pos;
217
1
        }
218
1
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
20
                                        PaddedPODArray<UInt8>& c) {
206
20
        size_t size = a.size();
207
20
        const A* __restrict a_pos = a.data();
208
20
        const B* __restrict b_pos = b.data();
209
20
        UInt8* __restrict c_pos = c.data();
210
20
        const A* __restrict a_end = a_pos + size;
211
212
59
        while (a_pos < a_end) {
213
39
            *c_pos = Op::apply(*a_pos, *b_pos);
214
39
            ++a_pos;
215
39
            ++b_pos;
216
39
            ++c_pos;
217
39
        }
218
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
25
                                        PaddedPODArray<UInt8>& c) {
206
25
        size_t size = a.size();
207
25
        const A* __restrict a_pos = a.data();
208
25
        const B* __restrict b_pos = b.data();
209
25
        UInt8* __restrict c_pos = c.data();
210
25
        const A* __restrict a_end = a_pos + size;
211
212
98
        while (a_pos < a_end) {
213
73
            *c_pos = Op::apply(*a_pos, *b_pos);
214
73
            ++a_pos;
215
73
            ++b_pos;
216
73
            ++c_pos;
217
73
        }
218
25
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
205
1
                                        PaddedPODArray<UInt8>& c) {
206
1
        size_t size = a.size();
207
1
        const A* __restrict a_pos = a.data();
208
1
        const B* __restrict b_pos = b.data();
209
1
        UInt8* __restrict c_pos = c.data();
210
1
        const A* __restrict a_end = a_pos + size;
211
212
2
        while (a_pos < a_end) {
213
1
            *c_pos = Op::apply(*a_pos, *b_pos);
214
1
            ++a_pos;
215
1
            ++b_pos;
216
1
            ++c_pos;
217
1
        }
218
1
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
205
6
                                        PaddedPODArray<UInt8>& c) {
206
6
        size_t size = a.size();
207
6
        const A* __restrict a_pos = a.data();
208
6
        const B* __restrict b_pos = b.data();
209
6
        UInt8* __restrict c_pos = c.data();
210
6
        const A* __restrict a_end = a_pos + size;
211
212
70
        while (a_pos < a_end) {
213
64
            *c_pos = Op::apply(*a_pos, *b_pos);
214
64
            ++a_pos;
215
64
            ++b_pos;
216
64
            ++c_pos;
217
64
        }
218
6
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
205
1
                                        PaddedPODArray<UInt8>& c) {
206
1
        size_t size = a.size();
207
1
        const A* __restrict a_pos = a.data();
208
1
        const B* __restrict b_pos = b.data();
209
1
        UInt8* __restrict c_pos = c.data();
210
1
        const A* __restrict a_end = a_pos + size;
211
212
10
        while (a_pos < a_end) {
213
9
            *c_pos = Op::apply(*a_pos, *b_pos);
214
9
            ++a_pos;
215
9
            ++b_pos;
216
9
            ++c_pos;
217
9
        }
218
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
3
                                        PaddedPODArray<UInt8>& c) {
206
3
        size_t size = a.size();
207
3
        const A* __restrict a_pos = a.data();
208
3
        const B* __restrict b_pos = b.data();
209
3
        UInt8* __restrict c_pos = c.data();
210
3
        const A* __restrict a_end = a_pos + size;
211
212
7
        while (a_pos < a_end) {
213
4
            *c_pos = Op::apply(*a_pos, *b_pos);
214
4
            ++a_pos;
215
4
            ++b_pos;
216
4
            ++c_pos;
217
4
        }
218
3
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
8
                                        PaddedPODArray<UInt8>& c) {
206
8
        size_t size = a.size();
207
8
        const A* __restrict a_pos = a.data();
208
8
        const B* __restrict b_pos = b.data();
209
8
        UInt8* __restrict c_pos = c.data();
210
8
        const A* __restrict a_end = a_pos + size;
211
212
62
        while (a_pos < a_end) {
213
54
            *c_pos = Op::apply(*a_pos, *b_pos);
214
54
            ++a_pos;
215
54
            ++b_pos;
216
54
            ++c_pos;
217
54
        }
218
8
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
1
                                        PaddedPODArray<UInt8>& c) {
206
1
        size_t size = a.size();
207
1
        const A* __restrict a_pos = a.data();
208
1
        const B* __restrict b_pos = b.data();
209
1
        UInt8* __restrict c_pos = c.data();
210
1
        const A* __restrict a_end = a_pos + size;
211
212
2
        while (a_pos < a_end) {
213
1
            *c_pos = Op::apply(*a_pos, *b_pos);
214
1
            ++a_pos;
215
1
            ++b_pos;
216
1
            ++c_pos;
217
1
        }
218
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
1
                                        PaddedPODArray<UInt8>& c) {
206
1
        size_t size = a.size();
207
1
        const A* __restrict a_pos = a.data();
208
1
        const B* __restrict b_pos = b.data();
209
1
        UInt8* __restrict c_pos = c.data();
210
1
        const A* __restrict a_end = a_pos + size;
211
212
2
        while (a_pos < a_end) {
213
1
            *c_pos = Op::apply(*a_pos, *b_pos);
214
1
            ++a_pos;
215
1
            ++b_pos;
216
1
            ++c_pos;
217
1
        }
218
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
20
                                        PaddedPODArray<UInt8>& c) {
206
20
        size_t size = a.size();
207
20
        const A* __restrict a_pos = a.data();
208
20
        const B* __restrict b_pos = b.data();
209
20
        UInt8* __restrict c_pos = c.data();
210
20
        const A* __restrict a_end = a_pos + size;
211
212
59
        while (a_pos < a_end) {
213
39
            *c_pos = Op::apply(*a_pos, *b_pos);
214
39
            ++a_pos;
215
39
            ++b_pos;
216
39
            ++c_pos;
217
39
        }
218
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
24
                                        PaddedPODArray<UInt8>& c) {
206
24
        size_t size = a.size();
207
24
        const A* __restrict a_pos = a.data();
208
24
        const B* __restrict b_pos = b.data();
209
24
        UInt8* __restrict c_pos = c.data();
210
24
        const A* __restrict a_end = a_pos + size;
211
212
67
        while (a_pos < a_end) {
213
43
            *c_pos = Op::apply(*a_pos, *b_pos);
214
43
            ++a_pos;
215
43
            ++b_pos;
216
43
            ++c_pos;
217
43
        }
218
24
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
205
68
                                        PaddedPODArray<UInt8>& c) {
206
68
        size_t size = a.size();
207
68
        const A* __restrict a_pos = a.data();
208
68
        const B* __restrict b_pos = b.data();
209
68
        UInt8* __restrict c_pos = c.data();
210
68
        const A* __restrict a_end = a_pos + size;
211
212
136
        while (a_pos < a_end) {
213
68
            *c_pos = Op::apply(*a_pos, *b_pos);
214
68
            ++a_pos;
215
68
            ++b_pos;
216
68
            ++c_pos;
217
68
        }
218
68
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
205
1.78k
                                        PaddedPODArray<UInt8>& c) {
206
1.78k
        size_t size = a.size();
207
1.78k
        const A* __restrict a_pos = a.data();
208
1.78k
        const B* __restrict b_pos = b.data();
209
1.78k
        UInt8* __restrict c_pos = c.data();
210
1.78k
        const A* __restrict a_end = a_pos + size;
211
212
2.66M
        while (a_pos < a_end) {
213
2.65M
            *c_pos = Op::apply(*a_pos, *b_pos);
214
2.65M
            ++a_pos;
215
2.65M
            ++b_pos;
216
2.65M
            ++c_pos;
217
2.65M
        }
218
1.78k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
205
241
                                        PaddedPODArray<UInt8>& c) {
206
241
        size_t size = a.size();
207
241
        const A* __restrict a_pos = a.data();
208
241
        const B* __restrict b_pos = b.data();
209
241
        UInt8* __restrict c_pos = c.data();
210
241
        const A* __restrict a_end = a_pos + size;
211
212
482
        while (a_pos < a_end) {
213
241
            *c_pos = Op::apply(*a_pos, *b_pos);
214
241
            ++a_pos;
215
241
            ++b_pos;
216
241
            ++c_pos;
217
241
        }
218
241
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
205
1
                                        PaddedPODArray<UInt8>& c) {
206
1
        size_t size = a.size();
207
1
        const A* __restrict a_pos = a.data();
208
1
        const B* __restrict b_pos = b.data();
209
1
        UInt8* __restrict c_pos = c.data();
210
1
        const A* __restrict a_end = a_pos + size;
211
212
10
        while (a_pos < a_end) {
213
9
            *c_pos = Op::apply(*a_pos, *b_pos);
214
9
            ++a_pos;
215
9
            ++b_pos;
216
9
            ++c_pos;
217
9
        }
218
1
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
129
                                        PaddedPODArray<UInt8>& c) {
206
129
        size_t size = a.size();
207
129
        const A* __restrict a_pos = a.data();
208
129
        const B* __restrict b_pos = b.data();
209
129
        UInt8* __restrict c_pos = c.data();
210
129
        const A* __restrict a_end = a_pos + size;
211
212
258
        while (a_pos < a_end) {
213
129
            *c_pos = Op::apply(*a_pos, *b_pos);
214
129
            ++a_pos;
215
129
            ++b_pos;
216
129
            ++c_pos;
217
129
        }
218
129
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
115
                                        PaddedPODArray<UInt8>& c) {
206
115
        size_t size = a.size();
207
115
        const A* __restrict a_pos = a.data();
208
115
        const B* __restrict b_pos = b.data();
209
115
        UInt8* __restrict c_pos = c.data();
210
115
        const A* __restrict a_end = a_pos + size;
211
212
232
        while (a_pos < a_end) {
213
117
            *c_pos = Op::apply(*a_pos, *b_pos);
214
117
            ++a_pos;
215
117
            ++b_pos;
216
117
            ++c_pos;
217
117
        }
218
115
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
291
                                        PaddedPODArray<UInt8>& c) {
206
291
        size_t size = a.size();
207
291
        const A* __restrict a_pos = a.data();
208
291
        const B* __restrict b_pos = b.data();
209
291
        UInt8* __restrict c_pos = c.data();
210
291
        const A* __restrict a_end = a_pos + size;
211
212
949
        while (a_pos < a_end) {
213
658
            *c_pos = Op::apply(*a_pos, *b_pos);
214
658
            ++a_pos;
215
658
            ++b_pos;
216
658
            ++c_pos;
217
658
        }
218
291
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
201
                                        PaddedPODArray<UInt8>& c) {
206
201
        size_t size = a.size();
207
201
        const A* __restrict a_pos = a.data();
208
201
        const B* __restrict b_pos = b.data();
209
201
        UInt8* __restrict c_pos = c.data();
210
201
        const A* __restrict a_end = a_pos + size;
211
212
5.21k
        while (a_pos < a_end) {
213
5.01k
            *c_pos = Op::apply(*a_pos, *b_pos);
214
5.01k
            ++a_pos;
215
5.01k
            ++b_pos;
216
5.01k
            ++c_pos;
217
5.01k
        }
218
201
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
138
                                        PaddedPODArray<UInt8>& c) {
206
138
        size_t size = a.size();
207
138
        const A* __restrict a_pos = a.data();
208
138
        const B* __restrict b_pos = b.data();
209
138
        UInt8* __restrict c_pos = c.data();
210
138
        const A* __restrict a_end = a_pos + size;
211
212
276
        while (a_pos < a_end) {
213
138
            *c_pos = Op::apply(*a_pos, *b_pos);
214
138
            ++a_pos;
215
138
            ++b_pos;
216
138
            ++c_pos;
217
138
        }
218
138
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
16
                                        PaddedPODArray<UInt8>& c) {
206
16
        size_t size = a.size();
207
16
        const A* __restrict a_pos = a.data();
208
16
        const B* __restrict b_pos = b.data();
209
16
        UInt8* __restrict c_pos = c.data();
210
16
        const A* __restrict a_end = a_pos + size;
211
212
32
        while (a_pos < a_end) {
213
16
            *c_pos = Op::apply(*a_pos, *b_pos);
214
16
            ++a_pos;
215
16
            ++b_pos;
216
16
            ++c_pos;
217
16
        }
218
16
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
16
                                        PaddedPODArray<UInt8>& c) {
206
16
        size_t size = a.size();
207
16
        const A* __restrict a_pos = a.data();
208
16
        const B* __restrict b_pos = b.data();
209
16
        UInt8* __restrict c_pos = c.data();
210
16
        const A* __restrict a_end = a_pos + size;
211
212
32
        while (a_pos < a_end) {
213
16
            *c_pos = Op::apply(*a_pos, *b_pos);
214
16
            ++a_pos;
215
16
            ++b_pos;
216
16
            ++c_pos;
217
16
        }
218
16
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
123
                                        PaddedPODArray<UInt8>& c) {
206
123
        size_t size = a.size();
207
123
        const A* __restrict a_pos = a.data();
208
123
        const B* __restrict b_pos = b.data();
209
123
        UInt8* __restrict c_pos = c.data();
210
123
        const A* __restrict a_end = a_pos + size;
211
212
265
        while (a_pos < a_end) {
213
142
            *c_pos = Op::apply(*a_pos, *b_pos);
214
142
            ++a_pos;
215
142
            ++b_pos;
216
142
            ++c_pos;
217
142
        }
218
123
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
130
                                        PaddedPODArray<UInt8>& c) {
206
130
        size_t size = a.size();
207
130
        const A* __restrict a_pos = a.data();
208
130
        const B* __restrict b_pos = b.data();
209
130
        UInt8* __restrict c_pos = c.data();
210
130
        const A* __restrict a_end = a_pos + size;
211
212
288
        while (a_pos < a_end) {
213
158
            *c_pos = Op::apply(*a_pos, *b_pos);
214
158
            ++a_pos;
215
158
            ++b_pos;
216
158
            ++c_pos;
217
158
        }
218
130
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
205
395
                                        PaddedPODArray<UInt8>& c) {
206
395
        size_t size = a.size();
207
395
        const A* __restrict a_pos = a.data();
208
395
        const B* __restrict b_pos = b.data();
209
395
        UInt8* __restrict c_pos = c.data();
210
395
        const A* __restrict a_end = a_pos + size;
211
212
6.51k
        while (a_pos < a_end) {
213
6.12k
            *c_pos = Op::apply(*a_pos, *b_pos);
214
6.12k
            ++a_pos;
215
6.12k
            ++b_pos;
216
6.12k
            ++c_pos;
217
6.12k
        }
218
395
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
205
1
                                        PaddedPODArray<UInt8>& c) {
206
1
        size_t size = a.size();
207
1
        const A* __restrict a_pos = a.data();
208
1
        const B* __restrict b_pos = b.data();
209
1
        UInt8* __restrict c_pos = c.data();
210
1
        const A* __restrict a_end = a_pos + size;
211
212
10
        while (a_pos < a_end) {
213
9
            *c_pos = Op::apply(*a_pos, *b_pos);
214
9
            ++a_pos;
215
9
            ++b_pos;
216
9
            ++c_pos;
217
9
        }
218
1
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
1
                                        PaddedPODArray<UInt8>& c) {
206
1
        size_t size = a.size();
207
1
        const A* __restrict a_pos = a.data();
208
1
        const B* __restrict b_pos = b.data();
209
1
        UInt8* __restrict c_pos = c.data();
210
1
        const A* __restrict a_end = a_pos + size;
211
212
5
        while (a_pos < a_end) {
213
4
            *c_pos = Op::apply(*a_pos, *b_pos);
214
4
            ++a_pos;
215
4
            ++b_pos;
216
4
            ++c_pos;
217
4
        }
218
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
23
                                        PaddedPODArray<UInt8>& c) {
206
23
        size_t size = a.size();
207
23
        const A* __restrict a_pos = a.data();
208
23
        const B* __restrict b_pos = b.data();
209
23
        UInt8* __restrict c_pos = c.data();
210
23
        const A* __restrict a_end = a_pos + size;
211
212
105
        while (a_pos < a_end) {
213
82
            *c_pos = Op::apply(*a_pos, *b_pos);
214
82
            ++a_pos;
215
82
            ++b_pos;
216
82
            ++c_pos;
217
82
        }
218
23
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
68
                                        PaddedPODArray<UInt8>& c) {
206
68
        size_t size = a.size();
207
68
        const A* __restrict a_pos = a.data();
208
68
        const B* __restrict b_pos = b.data();
209
68
        UInt8* __restrict c_pos = c.data();
210
68
        const A* __restrict a_end = a_pos + size;
211
212
184
        while (a_pos < a_end) {
213
116
            *c_pos = Op::apply(*a_pos, *b_pos);
214
116
            ++a_pos;
215
116
            ++b_pos;
216
116
            ++c_pos;
217
116
        }
218
68
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
20
                                        PaddedPODArray<UInt8>& c) {
206
20
        size_t size = a.size();
207
20
        const A* __restrict a_pos = a.data();
208
20
        const B* __restrict b_pos = b.data();
209
20
        UInt8* __restrict c_pos = c.data();
210
20
        const A* __restrict a_end = a_pos + size;
211
212
59
        while (a_pos < a_end) {
213
39
            *c_pos = Op::apply(*a_pos, *b_pos);
214
39
            ++a_pos;
215
39
            ++b_pos;
216
39
            ++c_pos;
217
39
        }
218
20
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
205
20
                                        PaddedPODArray<UInt8>& c) {
206
20
        size_t size = a.size();
207
20
        const A* __restrict a_pos = a.data();
208
20
        const B* __restrict b_pos = b.data();
209
20
        UInt8* __restrict c_pos = c.data();
210
20
        const A* __restrict a_end = a_pos + size;
211
212
59
        while (a_pos < a_end) {
213
39
            *c_pos = Op::apply(*a_pos, *b_pos);
214
39
            ++a_pos;
215
39
            ++b_pos;
216
39
            ++c_pos;
217
39
        }
218
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
219
220
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
221
100k
                                          PaddedPODArray<UInt8>& c) {
222
100k
        size_t size = a.size();
223
100k
        const A* __restrict a_pos = a.data();
224
100k
        UInt8* __restrict c_pos = c.data();
225
100k
        const A* __restrict a_end = a_pos + size;
226
227
34.1M
        while (a_pos < a_end) {
228
34.0M
            *c_pos = Op::apply(*a_pos, b);
229
34.0M
            ++a_pos;
230
34.0M
            ++c_pos;
231
34.0M
        }
232
100k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
221
24
                                          PaddedPODArray<UInt8>& c) {
222
24
        size_t size = a.size();
223
24
        const A* __restrict a_pos = a.data();
224
24
        UInt8* __restrict c_pos = c.data();
225
24
        const A* __restrict a_end = a_pos + size;
226
227
164
        while (a_pos < a_end) {
228
140
            *c_pos = Op::apply(*a_pos, b);
229
140
            ++a_pos;
230
140
            ++c_pos;
231
140
        }
232
24
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
221
707
                                          PaddedPODArray<UInt8>& c) {
222
707
        size_t size = a.size();
223
707
        const A* __restrict a_pos = a.data();
224
707
        UInt8* __restrict c_pos = c.data();
225
707
        const A* __restrict a_end = a_pos + size;
226
227
206k
        while (a_pos < a_end) {
228
205k
            *c_pos = Op::apply(*a_pos, b);
229
205k
            ++a_pos;
230
205k
            ++c_pos;
231
205k
        }
232
707
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
221
171
                                          PaddedPODArray<UInt8>& c) {
222
171
        size_t size = a.size();
223
171
        const A* __restrict a_pos = a.data();
224
171
        UInt8* __restrict c_pos = c.data();
225
171
        const A* __restrict a_end = a_pos + size;
226
227
100k
        while (a_pos < a_end) {
228
100k
            *c_pos = Op::apply(*a_pos, b);
229
100k
            ++a_pos;
230
100k
            ++c_pos;
231
100k
        }
232
171
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
4.77k
                                          PaddedPODArray<UInt8>& c) {
222
4.77k
        size_t size = a.size();
223
4.77k
        const A* __restrict a_pos = a.data();
224
4.77k
        UInt8* __restrict c_pos = c.data();
225
4.77k
        const A* __restrict a_end = a_pos + size;
226
227
9.02M
        while (a_pos < a_end) {
228
9.02M
            *c_pos = Op::apply(*a_pos, b);
229
9.02M
            ++a_pos;
230
9.02M
            ++c_pos;
231
9.02M
        }
232
4.77k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
297
                                          PaddedPODArray<UInt8>& c) {
222
297
        size_t size = a.size();
223
297
        const A* __restrict a_pos = a.data();
224
297
        UInt8* __restrict c_pos = c.data();
225
297
        const A* __restrict a_end = a_pos + size;
226
227
101k
        while (a_pos < a_end) {
228
100k
            *c_pos = Op::apply(*a_pos, b);
229
100k
            ++a_pos;
230
100k
            ++c_pos;
231
100k
        }
232
297
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
7.32k
                                          PaddedPODArray<UInt8>& c) {
222
7.32k
        size_t size = a.size();
223
7.32k
        const A* __restrict a_pos = a.data();
224
7.32k
        UInt8* __restrict c_pos = c.data();
225
7.32k
        const A* __restrict a_end = a_pos + size;
226
227
206k
        while (a_pos < a_end) {
228
199k
            *c_pos = Op::apply(*a_pos, b);
229
199k
            ++a_pos;
230
199k
            ++c_pos;
231
199k
        }
232
7.32k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
1.18k
                                          PaddedPODArray<UInt8>& c) {
222
1.18k
        size_t size = a.size();
223
1.18k
        const A* __restrict a_pos = a.data();
224
1.18k
        UInt8* __restrict c_pos = c.data();
225
1.18k
        const A* __restrict a_end = a_pos + size;
226
227
622k
        while (a_pos < a_end) {
228
621k
            *c_pos = Op::apply(*a_pos, b);
229
621k
            ++a_pos;
230
621k
            ++c_pos;
231
621k
        }
232
1.18k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
43
                                          PaddedPODArray<UInt8>& c) {
222
43
        size_t size = a.size();
223
43
        const A* __restrict a_pos = a.data();
224
43
        UInt8* __restrict c_pos = c.data();
225
43
        const A* __restrict a_end = a_pos + size;
226
227
100k
        while (a_pos < a_end) {
228
100k
            *c_pos = Op::apply(*a_pos, b);
229
100k
            ++a_pos;
230
100k
            ++c_pos;
231
100k
        }
232
43
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
15
                                          PaddedPODArray<UInt8>& c) {
222
15
        size_t size = a.size();
223
15
        const A* __restrict a_pos = a.data();
224
15
        UInt8* __restrict c_pos = c.data();
225
15
        const A* __restrict a_end = a_pos + size;
226
227
129
        while (a_pos < a_end) {
228
114
            *c_pos = Op::apply(*a_pos, b);
229
114
            ++a_pos;
230
114
            ++c_pos;
231
114
        }
232
15
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
6
                                          PaddedPODArray<UInt8>& c) {
222
6
        size_t size = a.size();
223
6
        const A* __restrict a_pos = a.data();
224
6
        UInt8* __restrict c_pos = c.data();
225
6
        const A* __restrict a_end = a_pos + size;
226
227
12
        while (a_pos < a_end) {
228
6
            *c_pos = Op::apply(*a_pos, b);
229
6
            ++a_pos;
230
6
            ++c_pos;
231
6
        }
232
6
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
217
                                          PaddedPODArray<UInt8>& c) {
222
217
        size_t size = a.size();
223
217
        const A* __restrict a_pos = a.data();
224
217
        UInt8* __restrict c_pos = c.data();
225
217
        const A* __restrict a_end = a_pos + size;
226
227
700k
        while (a_pos < a_end) {
228
700k
            *c_pos = Op::apply(*a_pos, b);
229
700k
            ++a_pos;
230
700k
            ++c_pos;
231
700k
        }
232
217
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
221
31
                                          PaddedPODArray<UInt8>& c) {
222
31
        size_t size = a.size();
223
31
        const A* __restrict a_pos = a.data();
224
31
        UInt8* __restrict c_pos = c.data();
225
31
        const A* __restrict a_end = a_pos + size;
226
227
82
        while (a_pos < a_end) {
228
51
            *c_pos = Op::apply(*a_pos, b);
229
51
            ++a_pos;
230
51
            ++c_pos;
231
51
        }
232
31
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
28
                                          PaddedPODArray<UInt8>& c) {
222
28
        size_t size = a.size();
223
28
        const A* __restrict a_pos = a.data();
224
28
        UInt8* __restrict c_pos = c.data();
225
28
        const A* __restrict a_end = a_pos + size;
226
227
78
        while (a_pos < a_end) {
228
50
            *c_pos = Op::apply(*a_pos, b);
229
50
            ++a_pos;
230
50
            ++c_pos;
231
50
        }
232
28
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
268
                                          PaddedPODArray<UInt8>& c) {
222
268
        size_t size = a.size();
223
268
        const A* __restrict a_pos = a.data();
224
268
        UInt8* __restrict c_pos = c.data();
225
268
        const A* __restrict a_end = a_pos + size;
226
227
1.88k
        while (a_pos < a_end) {
228
1.61k
            *c_pos = Op::apply(*a_pos, b);
229
1.61k
            ++a_pos;
230
1.61k
            ++c_pos;
231
1.61k
        }
232
268
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
804
                                          PaddedPODArray<UInt8>& c) {
222
804
        size_t size = a.size();
223
804
        const A* __restrict a_pos = a.data();
224
804
        UInt8* __restrict c_pos = c.data();
225
804
        const A* __restrict a_end = a_pos + size;
226
227
3.94k
        while (a_pos < a_end) {
228
3.13k
            *c_pos = Op::apply(*a_pos, b);
229
3.13k
            ++a_pos;
230
3.13k
            ++c_pos;
231
3.13k
        }
232
804
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
28
                                          PaddedPODArray<UInt8>& c) {
222
28
        size_t size = a.size();
223
28
        const A* __restrict a_pos = a.data();
224
28
        UInt8* __restrict c_pos = c.data();
225
28
        const A* __restrict a_end = a_pos + size;
226
227
70
        while (a_pos < a_end) {
228
42
            *c_pos = Op::apply(*a_pos, b);
229
42
            ++a_pos;
230
42
            ++c_pos;
231
42
        }
232
28
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
40
                                          PaddedPODArray<UInt8>& c) {
222
40
        size_t size = a.size();
223
40
        const A* __restrict a_pos = a.data();
224
40
        UInt8* __restrict c_pos = c.data();
225
40
        const A* __restrict a_end = a_pos + size;
226
227
282
        while (a_pos < a_end) {
228
242
            *c_pos = Op::apply(*a_pos, b);
229
242
            ++a_pos;
230
242
            ++c_pos;
231
242
        }
232
40
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
221
41
                                          PaddedPODArray<UInt8>& c) {
222
41
        size_t size = a.size();
223
41
        const A* __restrict a_pos = a.data();
224
41
        UInt8* __restrict c_pos = c.data();
225
41
        const A* __restrict a_end = a_pos + size;
226
227
149
        while (a_pos < a_end) {
228
108
            *c_pos = Op::apply(*a_pos, b);
229
108
            ++a_pos;
230
108
            ++c_pos;
231
108
        }
232
41
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
221
366
                                          PaddedPODArray<UInt8>& c) {
222
366
        size_t size = a.size();
223
366
        const A* __restrict a_pos = a.data();
224
366
        UInt8* __restrict c_pos = c.data();
225
366
        const A* __restrict a_end = a_pos + size;
226
227
2.10M
        while (a_pos < a_end) {
228
2.10M
            *c_pos = Op::apply(*a_pos, b);
229
2.10M
            ++a_pos;
230
2.10M
            ++c_pos;
231
2.10M
        }
232
366
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
221
2
                                          PaddedPODArray<UInt8>& c) {
222
2
        size_t size = a.size();
223
2
        const A* __restrict a_pos = a.data();
224
2
        UInt8* __restrict c_pos = c.data();
225
2
        const A* __restrict a_end = a_pos + size;
226
227
6
        while (a_pos < a_end) {
228
4
            *c_pos = Op::apply(*a_pos, b);
229
4
            ++a_pos;
230
4
            ++c_pos;
231
4
        }
232
2
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
221
59
                                          PaddedPODArray<UInt8>& c) {
222
59
        size_t size = a.size();
223
59
        const A* __restrict a_pos = a.data();
224
59
        UInt8* __restrict c_pos = c.data();
225
59
        const A* __restrict a_end = a_pos + size;
226
227
269
        while (a_pos < a_end) {
228
210
            *c_pos = Op::apply(*a_pos, b);
229
210
            ++a_pos;
230
210
            ++c_pos;
231
210
        }
232
59
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
221
1
                                          PaddedPODArray<UInt8>& c) {
222
1
        size_t size = a.size();
223
1
        const A* __restrict a_pos = a.data();
224
1
        UInt8* __restrict c_pos = c.data();
225
1
        const A* __restrict a_end = a_pos + size;
226
227
8
        while (a_pos < a_end) {
228
7
            *c_pos = Op::apply(*a_pos, b);
229
7
            ++a_pos;
230
7
            ++c_pos;
231
7
        }
232
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
1.22k
                                          PaddedPODArray<UInt8>& c) {
222
1.22k
        size_t size = a.size();
223
1.22k
        const A* __restrict a_pos = a.data();
224
1.22k
        UInt8* __restrict c_pos = c.data();
225
1.22k
        const A* __restrict a_end = a_pos + size;
226
227
6.96k
        while (a_pos < a_end) {
228
5.74k
            *c_pos = Op::apply(*a_pos, b);
229
5.74k
            ++a_pos;
230
5.74k
            ++c_pos;
231
5.74k
        }
232
1.22k
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
1.94k
                                          PaddedPODArray<UInt8>& c) {
222
1.94k
        size_t size = a.size();
223
1.94k
        const A* __restrict a_pos = a.data();
224
1.94k
        UInt8* __restrict c_pos = c.data();
225
1.94k
        const A* __restrict a_end = a_pos + size;
226
227
5.49k
        while (a_pos < a_end) {
228
3.54k
            *c_pos = Op::apply(*a_pos, b);
229
3.54k
            ++a_pos;
230
3.54k
            ++c_pos;
231
3.54k
        }
232
1.94k
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
1.45k
                                          PaddedPODArray<UInt8>& c) {
222
1.45k
        size_t size = a.size();
223
1.45k
        const A* __restrict a_pos = a.data();
224
1.45k
        UInt8* __restrict c_pos = c.data();
225
1.45k
        const A* __restrict a_end = a_pos + size;
226
227
6.25k
        while (a_pos < a_end) {
228
4.80k
            *c_pos = Op::apply(*a_pos, b);
229
4.80k
            ++a_pos;
230
4.80k
            ++c_pos;
231
4.80k
        }
232
1.45k
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
212
                                          PaddedPODArray<UInt8>& c) {
222
212
        size_t size = a.size();
223
212
        const A* __restrict a_pos = a.data();
224
212
        UInt8* __restrict c_pos = c.data();
225
212
        const A* __restrict a_end = a_pos + size;
226
227
1.21k
        while (a_pos < a_end) {
228
998
            *c_pos = Op::apply(*a_pos, b);
229
998
            ++a_pos;
230
998
            ++c_pos;
231
998
        }
232
212
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
4.67k
                                          PaddedPODArray<UInt8>& c) {
222
4.67k
        size_t size = a.size();
223
4.67k
        const A* __restrict a_pos = a.data();
224
4.67k
        UInt8* __restrict c_pos = c.data();
225
4.67k
        const A* __restrict a_end = a_pos + size;
226
227
958k
        while (a_pos < a_end) {
228
954k
            *c_pos = Op::apply(*a_pos, b);
229
954k
            ++a_pos;
230
954k
            ++c_pos;
231
954k
        }
232
4.67k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
62.3k
                                          PaddedPODArray<UInt8>& c) {
222
62.3k
        size_t size = a.size();
223
62.3k
        const A* __restrict a_pos = a.data();
224
62.3k
        UInt8* __restrict c_pos = c.data();
225
62.3k
        const A* __restrict a_end = a_pos + size;
226
227
5.31M
        while (a_pos < a_end) {
228
5.25M
            *c_pos = Op::apply(*a_pos, b);
229
5.25M
            ++a_pos;
230
5.25M
            ++c_pos;
231
5.25M
        }
232
62.3k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
1.17k
                                          PaddedPODArray<UInt8>& c) {
222
1.17k
        size_t size = a.size();
223
1.17k
        const A* __restrict a_pos = a.data();
224
1.17k
        UInt8* __restrict c_pos = c.data();
225
1.17k
        const A* __restrict a_end = a_pos + size;
226
227
95.9k
        while (a_pos < a_end) {
228
94.7k
            *c_pos = Op::apply(*a_pos, b);
229
94.7k
            ++a_pos;
230
94.7k
            ++c_pos;
231
94.7k
        }
232
1.17k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
594
                                          PaddedPODArray<UInt8>& c) {
222
594
        size_t size = a.size();
223
594
        const A* __restrict a_pos = a.data();
224
594
        UInt8* __restrict c_pos = c.data();
225
594
        const A* __restrict a_end = a_pos + size;
226
227
10.4k
        while (a_pos < a_end) {
228
9.89k
            *c_pos = Op::apply(*a_pos, b);
229
9.89k
            ++a_pos;
230
9.89k
            ++c_pos;
231
9.89k
        }
232
594
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
297
                                          PaddedPODArray<UInt8>& c) {
222
297
        size_t size = a.size();
223
297
        const A* __restrict a_pos = a.data();
224
297
        UInt8* __restrict c_pos = c.data();
225
297
        const A* __restrict a_end = a_pos + size;
226
227
1.93k
        while (a_pos < a_end) {
228
1.64k
            *c_pos = Op::apply(*a_pos, b);
229
1.64k
            ++a_pos;
230
1.64k
            ++c_pos;
231
1.64k
        }
232
297
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
99
                                          PaddedPODArray<UInt8>& c) {
222
99
        size_t size = a.size();
223
99
        const A* __restrict a_pos = a.data();
224
99
        UInt8* __restrict c_pos = c.data();
225
99
        const A* __restrict a_end = a_pos + size;
226
227
86.2k
        while (a_pos < a_end) {
228
86.1k
            *c_pos = Op::apply(*a_pos, b);
229
86.1k
            ++a_pos;
230
86.1k
            ++c_pos;
231
86.1k
        }
232
99
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
3
                                          PaddedPODArray<UInt8>& c) {
222
3
        size_t size = a.size();
223
3
        const A* __restrict a_pos = a.data();
224
3
        UInt8* __restrict c_pos = c.data();
225
3
        const A* __restrict a_end = a_pos + size;
226
227
31
        while (a_pos < a_end) {
228
28
            *c_pos = Op::apply(*a_pos, b);
229
28
            ++a_pos;
230
28
            ++c_pos;
231
28
        }
232
3
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
2
                                          PaddedPODArray<UInt8>& c) {
222
2
        size_t size = a.size();
223
2
        const A* __restrict a_pos = a.data();
224
2
        UInt8* __restrict c_pos = c.data();
225
2
        const A* __restrict a_end = a_pos + size;
226
227
22
        while (a_pos < a_end) {
228
20
            *c_pos = Op::apply(*a_pos, b);
229
20
            ++a_pos;
230
20
            ++c_pos;
231
20
        }
232
2
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
200
                                          PaddedPODArray<UInt8>& c) {
222
200
        size_t size = a.size();
223
200
        const A* __restrict a_pos = a.data();
224
200
        UInt8* __restrict c_pos = c.data();
225
200
        const A* __restrict a_end = a_pos + size;
226
227
2.61k
        while (a_pos < a_end) {
228
2.41k
            *c_pos = Op::apply(*a_pos, b);
229
2.41k
            ++a_pos;
230
2.41k
            ++c_pos;
231
2.41k
        }
232
200
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
511
                                          PaddedPODArray<UInt8>& c) {
222
511
        size_t size = a.size();
223
511
        const A* __restrict a_pos = a.data();
224
511
        UInt8* __restrict c_pos = c.data();
225
511
        const A* __restrict a_end = a_pos + size;
226
227
7.45k
        while (a_pos < a_end) {
228
6.93k
            *c_pos = Op::apply(*a_pos, b);
229
6.93k
            ++a_pos;
230
6.93k
            ++c_pos;
231
6.93k
        }
232
511
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
197
                                          PaddedPODArray<UInt8>& c) {
222
197
        size_t size = a.size();
223
197
        const A* __restrict a_pos = a.data();
224
197
        UInt8* __restrict c_pos = c.data();
225
197
        const A* __restrict a_end = a_pos + size;
226
227
607k
        while (a_pos < a_end) {
228
607k
            *c_pos = Op::apply(*a_pos, b);
229
607k
            ++a_pos;
230
607k
            ++c_pos;
231
607k
        }
232
197
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
221
28
                                          PaddedPODArray<UInt8>& c) {
222
28
        size_t size = a.size();
223
28
        const A* __restrict a_pos = a.data();
224
28
        UInt8* __restrict c_pos = c.data();
225
28
        const A* __restrict a_end = a_pos + size;
226
227
140k
        while (a_pos < a_end) {
228
140k
            *c_pos = Op::apply(*a_pos, b);
229
140k
            ++a_pos;
230
140k
            ++c_pos;
231
140k
        }
232
28
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
221
22
                                          PaddedPODArray<UInt8>& c) {
222
22
        size_t size = a.size();
223
22
        const A* __restrict a_pos = a.data();
224
22
        UInt8* __restrict c_pos = c.data();
225
22
        const A* __restrict a_end = a_pos + size;
226
227
110k
        while (a_pos < a_end) {
228
110k
            *c_pos = Op::apply(*a_pos, b);
229
110k
            ++a_pos;
230
110k
            ++c_pos;
231
110k
        }
232
22
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
221
481
                                          PaddedPODArray<UInt8>& c) {
222
481
        size_t size = a.size();
223
481
        const A* __restrict a_pos = a.data();
224
481
        UInt8* __restrict c_pos = c.data();
225
481
        const A* __restrict a_end = a_pos + size;
226
227
2.25M
        while (a_pos < a_end) {
228
2.25M
            *c_pos = Op::apply(*a_pos, b);
229
2.25M
            ++a_pos;
230
2.25M
            ++c_pos;
231
2.25M
        }
232
481
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
221
134
                                          PaddedPODArray<UInt8>& c) {
222
134
        size_t size = a.size();
223
134
        const A* __restrict a_pos = a.data();
224
134
        UInt8* __restrict c_pos = c.data();
225
134
        const A* __restrict a_end = a_pos + size;
226
227
695k
        while (a_pos < a_end) {
228
695k
            *c_pos = Op::apply(*a_pos, b);
229
695k
            ++a_pos;
230
695k
            ++c_pos;
231
695k
        }
232
134
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
221
138
                                          PaddedPODArray<UInt8>& c) {
222
138
        size_t size = a.size();
223
138
        const A* __restrict a_pos = a.data();
224
138
        UInt8* __restrict c_pos = c.data();
225
138
        const A* __restrict a_end = a_pos + size;
226
227
519
        while (a_pos < a_end) {
228
381
            *c_pos = Op::apply(*a_pos, b);
229
381
            ++a_pos;
230
381
            ++c_pos;
231
381
        }
232
138
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
221
44
                                          PaddedPODArray<UInt8>& c) {
222
44
        size_t size = a.size();
223
44
        const A* __restrict a_pos = a.data();
224
44
        UInt8* __restrict c_pos = c.data();
225
44
        const A* __restrict a_end = a_pos + size;
226
227
96
        while (a_pos < a_end) {
228
52
            *c_pos = Op::apply(*a_pos, b);
229
52
            ++a_pos;
230
52
            ++c_pos;
231
52
        }
232
44
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
36
                                          PaddedPODArray<UInt8>& c) {
222
36
        size_t size = a.size();
223
36
        const A* __restrict a_pos = a.data();
224
36
        UInt8* __restrict c_pos = c.data();
225
36
        const A* __restrict a_end = a_pos + size;
226
227
43.1k
        while (a_pos < a_end) {
228
43.1k
            *c_pos = Op::apply(*a_pos, b);
229
43.1k
            ++a_pos;
230
43.1k
            ++c_pos;
231
43.1k
        }
232
36
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
39
                                          PaddedPODArray<UInt8>& c) {
222
39
        size_t size = a.size();
223
39
        const A* __restrict a_pos = a.data();
224
39
        UInt8* __restrict c_pos = c.data();
225
39
        const A* __restrict a_end = a_pos + size;
226
227
80.5k
        while (a_pos < a_end) {
228
80.5k
            *c_pos = Op::apply(*a_pos, b);
229
80.5k
            ++a_pos;
230
80.5k
            ++c_pos;
231
80.5k
        }
232
39
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
63
                                          PaddedPODArray<UInt8>& c) {
222
63
        size_t size = a.size();
223
63
        const A* __restrict a_pos = a.data();
224
63
        UInt8* __restrict c_pos = c.data();
225
63
        const A* __restrict a_end = a_pos + size;
226
227
160k
        while (a_pos < a_end) {
228
160k
            *c_pos = Op::apply(*a_pos, b);
229
160k
            ++a_pos;
230
160k
            ++c_pos;
231
160k
        }
232
63
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
57
                                          PaddedPODArray<UInt8>& c) {
222
57
        size_t size = a.size();
223
57
        const A* __restrict a_pos = a.data();
224
57
        UInt8* __restrict c_pos = c.data();
225
57
        const A* __restrict a_end = a_pos + size;
226
227
110k
        while (a_pos < a_end) {
228
110k
            *c_pos = Op::apply(*a_pos, b);
229
110k
            ++a_pos;
230
110k
            ++c_pos;
231
110k
        }
232
57
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
1.19k
                                          PaddedPODArray<UInt8>& c) {
222
1.19k
        size_t size = a.size();
223
1.19k
        const A* __restrict a_pos = a.data();
224
1.19k
        UInt8* __restrict c_pos = c.data();
225
1.19k
        const A* __restrict a_end = a_pos + size;
226
227
2.48M
        while (a_pos < a_end) {
228
2.48M
            *c_pos = Op::apply(*a_pos, b);
229
2.48M
            ++a_pos;
230
2.48M
            ++c_pos;
231
2.48M
        }
232
1.19k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
5.82k
                                          PaddedPODArray<UInt8>& c) {
222
5.82k
        size_t size = a.size();
223
5.82k
        const A* __restrict a_pos = a.data();
224
5.82k
        UInt8* __restrict c_pos = c.data();
225
5.82k
        const A* __restrict a_end = a_pos + size;
226
227
6.38M
        while (a_pos < a_end) {
228
6.38M
            *c_pos = Op::apply(*a_pos, b);
229
6.38M
            ++a_pos;
230
6.38M
            ++c_pos;
231
6.38M
        }
232
5.82k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
217
                                          PaddedPODArray<UInt8>& c) {
222
217
        size_t size = a.size();
223
217
        const A* __restrict a_pos = a.data();
224
217
        UInt8* __restrict c_pos = c.data();
225
217
        const A* __restrict a_end = a_pos + size;
226
227
809
        while (a_pos < a_end) {
228
592
            *c_pos = Op::apply(*a_pos, b);
229
592
            ++a_pos;
230
592
            ++c_pos;
231
592
        }
232
217
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
233
                                          PaddedPODArray<UInt8>& c) {
222
233
        size_t size = a.size();
223
233
        const A* __restrict a_pos = a.data();
224
233
        UInt8* __restrict c_pos = c.data();
225
233
        const A* __restrict a_end = a_pos + size;
226
227
2.33k
        while (a_pos < a_end) {
228
2.09k
            *c_pos = Op::apply(*a_pos, b);
229
2.09k
            ++a_pos;
230
2.09k
            ++c_pos;
231
2.09k
        }
232
233
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
25
                                          PaddedPODArray<UInt8>& c) {
222
25
        size_t size = a.size();
223
25
        const A* __restrict a_pos = a.data();
224
25
        UInt8* __restrict c_pos = c.data();
225
25
        const A* __restrict a_end = a_pos + size;
226
227
110k
        while (a_pos < a_end) {
228
110k
            *c_pos = Op::apply(*a_pos, b);
229
110k
            ++a_pos;
230
110k
            ++c_pos;
231
110k
        }
232
25
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
27
                                          PaddedPODArray<UInt8>& c) {
222
27
        size_t size = a.size();
223
27
        const A* __restrict a_pos = a.data();
224
27
        UInt8* __restrict c_pos = c.data();
225
27
        const A* __restrict a_end = a_pos + size;
226
227
114k
        while (a_pos < a_end) {
228
114k
            *c_pos = Op::apply(*a_pos, b);
229
114k
            ++a_pos;
230
114k
            ++c_pos;
231
114k
        }
232
27
    }
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
10
                                          PaddedPODArray<UInt8>& c) {
222
10
        size_t size = a.size();
223
10
        const A* __restrict a_pos = a.data();
224
10
        UInt8* __restrict c_pos = c.data();
225
10
        const A* __restrict a_end = a_pos + size;
226
227
110
        while (a_pos < a_end) {
228
100
            *c_pos = Op::apply(*a_pos, b);
229
100
            ++a_pos;
230
100
            ++c_pos;
231
100
        }
232
10
    }
_ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
10
                                          PaddedPODArray<UInt8>& c) {
222
10
        size_t size = a.size();
223
10
        const A* __restrict a_pos = a.data();
224
10
        UInt8* __restrict c_pos = c.data();
225
10
        const A* __restrict a_end = a_pos + size;
226
227
110
        while (a_pos < a_end) {
228
100
            *c_pos = Op::apply(*a_pos, b);
229
100
            ++a_pos;
230
100
            ++c_pos;
231
100
        }
232
10
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
4
                                          PaddedPODArray<UInt8>& c) {
222
4
        size_t size = a.size();
223
4
        const A* __restrict a_pos = a.data();
224
4
        UInt8* __restrict c_pos = c.data();
225
4
        const A* __restrict a_end = a_pos + size;
226
227
10
        while (a_pos < a_end) {
228
6
            *c_pos = Op::apply(*a_pos, b);
229
6
            ++a_pos;
230
6
            ++c_pos;
231
6
        }
232
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
99
                                          PaddedPODArray<UInt8>& c) {
222
99
        size_t size = a.size();
223
99
        const A* __restrict a_pos = a.data();
224
99
        UInt8* __restrict c_pos = c.data();
225
99
        const A* __restrict a_end = a_pos + size;
226
227
601k
        while (a_pos < a_end) {
228
600k
            *c_pos = Op::apply(*a_pos, b);
229
600k
            ++a_pos;
230
600k
            ++c_pos;
231
600k
        }
232
99
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
221
105
                                          PaddedPODArray<UInt8>& c) {
222
105
        size_t size = a.size();
223
105
        const A* __restrict a_pos = a.data();
224
105
        UInt8* __restrict c_pos = c.data();
225
105
        const A* __restrict a_end = a_pos + size;
226
227
600k
        while (a_pos < a_end) {
228
600k
            *c_pos = Op::apply(*a_pos, b);
229
600k
            ++a_pos;
230
600k
            ++c_pos;
231
600k
        }
232
105
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
233
234
67.3k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
67.3k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
67.3k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
234
210
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
210
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
210
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
234
30
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
30
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
30
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
234
2.76k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
2.76k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
2.76k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
234
402
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
402
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
402
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
234
16
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
16
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
16
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
234
782
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
782
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
782
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
234
186
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
186
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
186
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
234
198
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
198
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
198
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
234
61.6k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
61.6k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
61.6k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
234
94
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
94
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
94
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
234
53
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
53
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
53
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
234
6
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
6
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
6
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
234
180
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
180
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
180
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
234
25
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
25
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
25
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
234
75
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
75
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
75
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
234
96
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
96
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
96
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
234
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
5
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
234
476
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
476
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
476
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
234
48
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
48
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
48
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
234
1
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
235
1
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
236
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
237
};
238
239
/// Generic version, implemented for columns of same type.
240
template <typename Op>
241
struct GenericComparisonImpl {
242
9
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
243
20
        for (size_t i = 0, size = a.size(); i < size; ++i) {
244
11
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
245
11
        }
246
9
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
242
4
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
243
10
        for (size_t i = 0, size = a.size(); i < size; ++i) {
244
6
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
245
6
        }
246
4
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
242
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
243
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
244
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
245
1
        }
246
1
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
242
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
243
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
244
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
245
1
        }
246
1
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
242
3
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
243
6
        for (size_t i = 0, size = a.size(); i < size; ++i) {
244
3
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
245
3
        }
246
3
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
247
248
143
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
249
143
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
250
513k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
251
513k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
252
513k
        }
253
143
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
248
13
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
249
13
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
250
31
        for (size_t i = 0, size = a.size(); i < size; ++i) {
251
18
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
252
18
        }
253
13
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
248
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
249
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
250
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
251
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
252
8
        }
253
8
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
248
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
249
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
250
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
251
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
252
8
        }
253
8
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
248
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
249
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
250
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
251
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
252
8
        }
253
8
    }
_ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
248
50
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
249
50
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
250
250k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
251
250k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
252
250k
        }
253
50
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
248
56
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
249
56
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
250
263k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
251
263k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
252
263k
        }
253
56
    }
254
255
0
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
256
0
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
257
0
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
258
};
259
260
template <typename Op>
261
struct StringComparisonImpl {
262
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
263
                                                      const ColumnString::Offsets& a_offsets,
264
                                                      const ColumnString::Chars& b_data,
265
                                                      const ColumnString::Offsets& b_offsets,
266
435
                                                      PaddedPODArray<UInt8>& c) {
267
435
        size_t size = a_offsets.size();
268
435
        ColumnString::Offset prev_a_offset = 0;
269
435
        ColumnString::Offset prev_b_offset = 0;
270
435
        const auto* a_pos = a_data.data();
271
435
        const auto* b_pos = b_data.data();
272
273
1.07k
        for (size_t i = 0; i < size; ++i) {
274
638
            c[i] = Op::apply(memcmp_small_allow_overflow15(
275
638
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
276
638
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
277
638
                             0);
278
279
638
            prev_a_offset = a_offsets[i];
280
638
            prev_b_offset = b_offsets[i];
281
638
        }
282
435
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
266
2
                                                      PaddedPODArray<UInt8>& c) {
267
2
        size_t size = a_offsets.size();
268
2
        ColumnString::Offset prev_a_offset = 0;
269
2
        ColumnString::Offset prev_b_offset = 0;
270
2
        const auto* a_pos = a_data.data();
271
2
        const auto* b_pos = b_data.data();
272
273
49
        for (size_t i = 0; i < size; ++i) {
274
47
            c[i] = Op::apply(memcmp_small_allow_overflow15(
275
47
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
276
47
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
277
47
                             0);
278
279
47
            prev_a_offset = a_offsets[i];
280
47
            prev_b_offset = b_offsets[i];
281
47
        }
282
2
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
266
36
                                                      PaddedPODArray<UInt8>& c) {
267
36
        size_t size = a_offsets.size();
268
36
        ColumnString::Offset prev_a_offset = 0;
269
36
        ColumnString::Offset prev_b_offset = 0;
270
36
        const auto* a_pos = a_data.data();
271
36
        const auto* b_pos = b_data.data();
272
273
230
        for (size_t i = 0; i < size; ++i) {
274
194
            c[i] = Op::apply(memcmp_small_allow_overflow15(
275
194
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
276
194
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
277
194
                             0);
278
279
194
            prev_a_offset = a_offsets[i];
280
194
            prev_b_offset = b_offsets[i];
281
194
        }
282
36
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
266
397
                                                      PaddedPODArray<UInt8>& c) {
267
397
        size_t size = a_offsets.size();
268
397
        ColumnString::Offset prev_a_offset = 0;
269
397
        ColumnString::Offset prev_b_offset = 0;
270
397
        const auto* a_pos = a_data.data();
271
397
        const auto* b_pos = b_data.data();
272
273
794
        for (size_t i = 0; i < size; ++i) {
274
397
            c[i] = Op::apply(memcmp_small_allow_overflow15(
275
397
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
276
397
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
277
397
                             0);
278
279
397
            prev_a_offset = a_offsets[i];
280
397
            prev_b_offset = b_offsets[i];
281
397
        }
282
397
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
283
284
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
285
                                                 const ColumnString::Offsets& a_offsets,
286
                                                 const ColumnString::Chars& b_data,
287
                                                 ColumnString::Offset b_size,
288
724
                                                 PaddedPODArray<UInt8>& c) {
289
724
        size_t size = a_offsets.size();
290
724
        ColumnString::Offset prev_a_offset = 0;
291
724
        const auto* a_pos = a_data.data();
292
724
        const auto* b_pos = b_data.data();
293
294
1.57M
        for (size_t i = 0; i < size; ++i) {
295
1.57M
            c[i] = Op::apply(
296
1.57M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
297
1.57M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
298
1.57M
                    0);
299
300
1.57M
            prev_a_offset = a_offsets[i];
301
1.57M
        }
302
724
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
288
180
                                                 PaddedPODArray<UInt8>& c) {
289
180
        size_t size = a_offsets.size();
290
180
        ColumnString::Offset prev_a_offset = 0;
291
180
        const auto* a_pos = a_data.data();
292
180
        const auto* b_pos = b_data.data();
293
294
595k
        for (size_t i = 0; i < size; ++i) {
295
595k
            c[i] = Op::apply(
296
595k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
297
595k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
298
595k
                    0);
299
300
595k
            prev_a_offset = a_offsets[i];
301
595k
        }
302
180
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
288
94
                                                 PaddedPODArray<UInt8>& c) {
289
94
        size_t size = a_offsets.size();
290
94
        ColumnString::Offset prev_a_offset = 0;
291
94
        const auto* a_pos = a_data.data();
292
94
        const auto* b_pos = b_data.data();
293
294
72.8k
        for (size_t i = 0; i < size; ++i) {
295
72.7k
            c[i] = Op::apply(
296
72.7k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
297
72.7k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
298
72.7k
                    0);
299
300
72.7k
            prev_a_offset = a_offsets[i];
301
72.7k
        }
302
94
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
288
250
                                                 PaddedPODArray<UInt8>& c) {
289
250
        size_t size = a_offsets.size();
290
250
        ColumnString::Offset prev_a_offset = 0;
291
250
        const auto* a_pos = a_data.data();
292
250
        const auto* b_pos = b_data.data();
293
294
436k
        for (size_t i = 0; i < size; ++i) {
295
436k
            c[i] = Op::apply(
296
436k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
297
436k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
298
436k
                    0);
299
300
436k
            prev_a_offset = a_offsets[i];
301
436k
        }
302
250
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
288
200
                                                 PaddedPODArray<UInt8>& c) {
289
200
        size_t size = a_offsets.size();
290
200
        ColumnString::Offset prev_a_offset = 0;
291
200
        const auto* a_pos = a_data.data();
292
200
        const auto* b_pos = b_data.data();
293
294
470k
        for (size_t i = 0; i < size; ++i) {
295
470k
            c[i] = Op::apply(
296
470k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
297
470k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
298
470k
                    0);
299
300
470k
            prev_a_offset = a_offsets[i];
301
470k
        }
302
200
    }
303
304
    static void constant_string_vector(const ColumnString::Chars& a_data,
305
                                       ColumnString::Offset a_size,
306
                                       const ColumnString::Chars& b_data,
307
                                       const ColumnString::Offsets& b_offsets,
308
6
                                       PaddedPODArray<UInt8>& c) {
309
6
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
310
6
                                                                               a_data, a_size, c);
311
6
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Line
Count
Source
308
6
                                       PaddedPODArray<UInt8>& c) {
309
6
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
310
6
                                                                               a_data, a_size, c);
311
6
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
312
};
313
314
template <bool positive>
315
struct StringEqualsImpl {
316
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
317
                                                      const ColumnString::Offsets& a_offsets,
318
                                                      const ColumnString::Chars& b_data,
319
                                                      const ColumnString::Offsets& b_offsets,
320
514
                                                      PaddedPODArray<UInt8>& c) {
321
514
        size_t size = a_offsets.size();
322
514
        ColumnString::Offset prev_a_offset = 0;
323
514
        ColumnString::Offset prev_b_offset = 0;
324
514
        const auto* a_pos = a_data.data();
325
514
        const auto* b_pos = b_data.data();
326
327
1.47k
        for (size_t i = 0; i < size; ++i) {
328
959
            auto a_size = a_offsets[i] - prev_a_offset;
329
959
            auto b_size = b_offsets[i] - prev_b_offset;
330
331
959
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
332
959
                                                               b_pos + prev_b_offset, b_size);
333
334
959
            prev_a_offset = a_offsets[i];
335
959
            prev_b_offset = b_offsets[i];
336
959
        }
337
514
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
320
513
                                                      PaddedPODArray<UInt8>& c) {
321
513
        size_t size = a_offsets.size();
322
513
        ColumnString::Offset prev_a_offset = 0;
323
513
        ColumnString::Offset prev_b_offset = 0;
324
513
        const auto* a_pos = a_data.data();
325
513
        const auto* b_pos = b_data.data();
326
327
1.46k
        for (size_t i = 0; i < size; ++i) {
328
955
            auto a_size = a_offsets[i] - prev_a_offset;
329
955
            auto b_size = b_offsets[i] - prev_b_offset;
330
331
955
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
332
955
                                                               b_pos + prev_b_offset, b_size);
333
334
955
            prev_a_offset = a_offsets[i];
335
955
            prev_b_offset = b_offsets[i];
336
955
        }
337
513
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
320
1
                                                      PaddedPODArray<UInt8>& c) {
321
1
        size_t size = a_offsets.size();
322
1
        ColumnString::Offset prev_a_offset = 0;
323
1
        ColumnString::Offset prev_b_offset = 0;
324
1
        const auto* a_pos = a_data.data();
325
1
        const auto* b_pos = b_data.data();
326
327
5
        for (size_t i = 0; i < size; ++i) {
328
4
            auto a_size = a_offsets[i] - prev_a_offset;
329
4
            auto b_size = b_offsets[i] - prev_b_offset;
330
331
4
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
332
4
                                                               b_pos + prev_b_offset, b_size);
333
334
4
            prev_a_offset = a_offsets[i];
335
4
            prev_b_offset = b_offsets[i];
336
4
        }
337
1
    }
338
339
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
340
                                                 const ColumnString::Offsets& a_offsets,
341
                                                 const ColumnString::Chars& b_data,
342
                                                 ColumnString::Offset b_size,
343
9.56k
                                                 PaddedPODArray<UInt8>& c) {
344
9.56k
        size_t size = a_offsets.size();
345
9.56k
        if (b_size == 0) {
346
1
            auto* __restrict data = c.data();
347
1
            auto* __restrict offsets = a_offsets.data();
348
349
1
            ColumnString::Offset prev_a_offset = 0;
350
4
            for (size_t i = 0; i < size; ++i) {
351
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
352
3
                prev_a_offset = offsets[i];
353
3
            }
354
9.56k
        } else {
355
9.56k
            ColumnString::Offset prev_a_offset = 0;
356
9.56k
            const auto* a_pos = a_data.data();
357
9.56k
            const auto* b_pos = b_data.data();
358
1.32M
            for (size_t i = 0; i < size; ++i) {
359
1.31M
                auto a_size = a_offsets[i] - prev_a_offset;
360
1.31M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
361
1.31M
                                                                   b_pos, b_size);
362
1.31M
                prev_a_offset = a_offsets[i];
363
1.31M
            }
364
9.56k
        }
365
9.56k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
343
9.48k
                                                 PaddedPODArray<UInt8>& c) {
344
9.48k
        size_t size = a_offsets.size();
345
9.48k
        if (b_size == 0) {
346
0
            auto* __restrict data = c.data();
347
0
            auto* __restrict offsets = a_offsets.data();
348
349
0
            ColumnString::Offset prev_a_offset = 0;
350
0
            for (size_t i = 0; i < size; ++i) {
351
0
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
352
0
                prev_a_offset = offsets[i];
353
0
            }
354
9.48k
        } else {
355
9.48k
            ColumnString::Offset prev_a_offset = 0;
356
9.48k
            const auto* a_pos = a_data.data();
357
9.48k
            const auto* b_pos = b_data.data();
358
1.28M
            for (size_t i = 0; i < size; ++i) {
359
1.27M
                auto a_size = a_offsets[i] - prev_a_offset;
360
1.27M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
361
1.27M
                                                                   b_pos, b_size);
362
1.27M
                prev_a_offset = a_offsets[i];
363
1.27M
            }
364
9.48k
        }
365
9.48k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
343
86
                                                 PaddedPODArray<UInt8>& c) {
344
86
        size_t size = a_offsets.size();
345
86
        if (b_size == 0) {
346
1
            auto* __restrict data = c.data();
347
1
            auto* __restrict offsets = a_offsets.data();
348
349
1
            ColumnString::Offset prev_a_offset = 0;
350
4
            for (size_t i = 0; i < size; ++i) {
351
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
352
3
                prev_a_offset = offsets[i];
353
3
            }
354
85
        } else {
355
85
            ColumnString::Offset prev_a_offset = 0;
356
85
            const auto* a_pos = a_data.data();
357
85
            const auto* b_pos = b_data.data();
358
44.2k
            for (size_t i = 0; i < size; ++i) {
359
44.2k
                auto a_size = a_offsets[i] - prev_a_offset;
360
44.2k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
361
44.2k
                                                                   b_pos, b_size);
362
44.2k
                prev_a_offset = a_offsets[i];
363
44.2k
            }
364
85
        }
365
86
    }
366
367
    static void NO_INLINE constant_string_vector(const ColumnString::Chars& a_data,
368
                                                 ColumnString::Offset a_size,
369
                                                 const ColumnString::Chars& b_data,
370
                                                 const ColumnString::Offsets& b_offsets,
371
0
                                                 PaddedPODArray<UInt8>& c) {
372
0
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
373
0
    }
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
374
};
375
376
template <PrimitiveType PT>
377
struct StringComparisonImpl<EqualsOp<PT>> : StringEqualsImpl<true> {};
378
379
template <PrimitiveType PT>
380
struct StringComparisonImpl<NotEqualsOp<PT>> : StringEqualsImpl<false> {};
381
382
struct NameEquals {
383
    static constexpr auto name = "eq";
384
};
385
struct NameNotEquals {
386
    static constexpr auto name = "ne";
387
};
388
struct NameLess {
389
    static constexpr auto name = "lt";
390
};
391
struct NameGreater {
392
    static constexpr auto name = "gt";
393
};
394
struct NameLessOrEquals {
395
    static constexpr auto name = "le";
396
};
397
struct NameGreaterOrEquals {
398
    static constexpr auto name = "ge";
399
};
400
401
template <template <PrimitiveType> class Op, typename Name>
402
class FunctionComparison : public IFunction {
403
public:
404
    static constexpr auto name = Name::name;
405
260k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
405
237k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
405
1.14k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
405
4.79k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
405
6.02k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
405
2.65k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
405
7.92k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
406
407
260k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
407
238k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
407
1.14k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
407
4.79k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
407
6.02k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
407
2.65k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
407
7.90k
    FunctionComparison() = default;
408
409
650k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
409
640k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
409
681
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
409
3.33k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
409
2.84k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
409
1.69k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
409
1.35k
    double execute_cost() const override { return 0.5; }
410
411
private:
412
    template <PrimitiveType PT>
413
    Status execute_num_type(Block& block, uint32_t result, const ColumnPtr& col_left_ptr,
414
107k
                            const ColumnPtr& col_right_ptr) const {
415
107k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
107k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
107k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
107k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
107k
        DCHECK(!(left_is_const && right_is_const));
422
423
107k
        if (!left_is_const && !right_is_const) {
424
7.78k
            auto col_res = ColumnUInt8::create();
425
426
7.78k
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
7.78k
            vec_res.resize(col_left->get_data().size());
428
7.78k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
7.78k
                              typename PrimitiveTypeTraits<PT>::CppType,
430
7.78k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
7.78k
                                                     vec_res);
432
433
7.78k
            block.replace_by_position(result, std::move(col_res));
434
100k
        } else if (!left_is_const && right_is_const) {
435
32.7k
            auto col_res = ColumnUInt8::create();
436
437
32.7k
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
32.7k
            vec_res.resize(col_left->size());
439
32.7k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
32.7k
                              typename PrimitiveTypeTraits<PT>::CppType,
441
32.7k
                              Op<PT>>::vector_constant(col_left->get_data(),
442
32.7k
                                                       col_right->get_element(0), vec_res);
443
444
32.7k
            block.replace_by_position(result, std::move(col_res));
445
67.3k
        } else if (left_is_const && !right_is_const) {
446
67.3k
            auto col_res = ColumnUInt8::create();
447
448
67.3k
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
67.3k
            vec_res.resize(col_right->size());
450
67.3k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
67.3k
                              typename PrimitiveTypeTraits<PT>::CppType,
452
67.3k
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
67.3k
                                                       col_right->get_data(), vec_res);
454
455
67.3k
            block.replace_by_position(result, std::move(col_res));
456
67.3k
        }
457
107k
        return Status::OK();
458
107k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
86
                            const ColumnPtr& col_right_ptr) const {
415
86
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
86
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
86
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
86
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
86
        DCHECK(!(left_is_const && right_is_const));
422
423
86
        if (!left_is_const && !right_is_const) {
424
62
            auto col_res = ColumnUInt8::create();
425
426
62
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
62
            vec_res.resize(col_left->get_data().size());
428
62
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
62
                              typename PrimitiveTypeTraits<PT>::CppType,
430
62
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
62
                                                     vec_res);
432
433
62
            block.replace_by_position(result, std::move(col_res));
434
62
        } else if (!left_is_const && right_is_const) {
435
24
            auto col_res = ColumnUInt8::create();
436
437
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
24
            vec_res.resize(col_left->size());
439
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
24
                              typename PrimitiveTypeTraits<PT>::CppType,
441
24
                              Op<PT>>::vector_constant(col_left->get_data(),
442
24
                                                       col_right->get_element(0), vec_res);
443
444
24
            block.replace_by_position(result, std::move(col_res));
445
24
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
86
        return Status::OK();
458
86
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
1.06k
                            const ColumnPtr& col_right_ptr) const {
415
1.06k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
1.06k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
1.06k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
1.06k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
1.06k
        DCHECK(!(left_is_const && right_is_const));
422
423
1.06k
        if (!left_is_const && !right_is_const) {
424
360
            auto col_res = ColumnUInt8::create();
425
426
360
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
360
            vec_res.resize(col_left->get_data().size());
428
360
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
360
                              typename PrimitiveTypeTraits<PT>::CppType,
430
360
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
360
                                                     vec_res);
432
433
360
            block.replace_by_position(result, std::move(col_res));
434
707
        } else if (!left_is_const && right_is_const) {
435
707
            auto col_res = ColumnUInt8::create();
436
437
707
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
707
            vec_res.resize(col_left->size());
439
707
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
707
                              typename PrimitiveTypeTraits<PT>::CppType,
441
707
                              Op<PT>>::vector_constant(col_left->get_data(),
442
707
                                                       col_right->get_element(0), vec_res);
443
444
707
            block.replace_by_position(result, std::move(col_res));
445
707
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
1.06k
        return Status::OK();
458
1.06k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
466
                            const ColumnPtr& col_right_ptr) const {
415
466
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
466
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
466
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
466
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
466
        DCHECK(!(left_is_const && right_is_const));
422
423
466
        if (!left_is_const && !right_is_const) {
424
295
            auto col_res = ColumnUInt8::create();
425
426
295
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
295
            vec_res.resize(col_left->get_data().size());
428
295
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
295
                              typename PrimitiveTypeTraits<PT>::CppType,
430
295
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
295
                                                     vec_res);
432
433
295
            block.replace_by_position(result, std::move(col_res));
434
295
        } else if (!left_is_const && right_is_const) {
435
171
            auto col_res = ColumnUInt8::create();
436
437
171
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
171
            vec_res.resize(col_left->size());
439
171
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
171
                              typename PrimitiveTypeTraits<PT>::CppType,
441
171
                              Op<PT>>::vector_constant(col_left->get_data(),
442
171
                                                       col_right->get_element(0), vec_res);
443
444
171
            block.replace_by_position(result, std::move(col_res));
445
171
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
466
        return Status::OK();
458
466
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
2
                            const ColumnPtr& col_right_ptr) const {
415
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
2
        DCHECK(!(left_is_const && right_is_const));
422
423
2
        if (!left_is_const && !right_is_const) {
424
2
            auto col_res = ColumnUInt8::create();
425
426
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
2
            vec_res.resize(col_left->get_data().size());
428
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
2
                              typename PrimitiveTypeTraits<PT>::CppType,
430
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
2
                                                     vec_res);
432
433
2
            block.replace_by_position(result, std::move(col_res));
434
2
        } else if (!left_is_const && right_is_const) {
435
0
            auto col_res = ColumnUInt8::create();
436
437
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
0
            vec_res.resize(col_left->size());
439
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
0
                              typename PrimitiveTypeTraits<PT>::CppType,
441
0
                              Op<PT>>::vector_constant(col_left->get_data(),
442
0
                                                       col_right->get_element(0), vec_res);
443
444
0
            block.replace_by_position(result, std::move(col_res));
445
0
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
2
        return Status::OK();
458
2
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
4.94k
                            const ColumnPtr& col_right_ptr) const {
415
4.94k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
4.94k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
4.94k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
4.94k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
4.94k
        DCHECK(!(left_is_const && right_is_const));
422
423
4.94k
        if (!left_is_const && !right_is_const) {
424
168
            auto col_res = ColumnUInt8::create();
425
426
168
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
168
            vec_res.resize(col_left->get_data().size());
428
168
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
168
                              typename PrimitiveTypeTraits<PT>::CppType,
430
168
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
168
                                                     vec_res);
432
433
168
            block.replace_by_position(result, std::move(col_res));
434
4.77k
        } else if (!left_is_const && right_is_const) {
435
4.56k
            auto col_res = ColumnUInt8::create();
436
437
4.56k
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
4.56k
            vec_res.resize(col_left->size());
439
4.56k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
4.56k
                              typename PrimitiveTypeTraits<PT>::CppType,
441
4.56k
                              Op<PT>>::vector_constant(col_left->get_data(),
442
4.56k
                                                       col_right->get_element(0), vec_res);
443
444
4.56k
            block.replace_by_position(result, std::move(col_res));
445
4.56k
        } else if (left_is_const && !right_is_const) {
446
210
            auto col_res = ColumnUInt8::create();
447
448
210
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
210
            vec_res.resize(col_right->size());
450
210
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
210
                              typename PrimitiveTypeTraits<PT>::CppType,
452
210
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
210
                                                       col_right->get_data(), vec_res);
454
455
210
            block.replace_by_position(result, std::move(col_res));
456
210
        }
457
4.94k
        return Status::OK();
458
4.94k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
391
                            const ColumnPtr& col_right_ptr) const {
415
391
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
391
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
391
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
391
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
391
        DCHECK(!(left_is_const && right_is_const));
422
423
391
        if (!left_is_const && !right_is_const) {
424
95
            auto col_res = ColumnUInt8::create();
425
426
95
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
95
            vec_res.resize(col_left->get_data().size());
428
95
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
95
                              typename PrimitiveTypeTraits<PT>::CppType,
430
95
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
95
                                                     vec_res);
432
433
95
            block.replace_by_position(result, std::move(col_res));
434
296
        } else if (!left_is_const && right_is_const) {
435
267
            auto col_res = ColumnUInt8::create();
436
437
267
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
267
            vec_res.resize(col_left->size());
439
267
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
267
                              typename PrimitiveTypeTraits<PT>::CppType,
441
267
                              Op<PT>>::vector_constant(col_left->get_data(),
442
267
                                                       col_right->get_element(0), vec_res);
443
444
267
            block.replace_by_position(result, std::move(col_res));
445
267
        } else if (left_is_const && !right_is_const) {
446
30
            auto col_res = ColumnUInt8::create();
447
448
30
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
30
            vec_res.resize(col_right->size());
450
30
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
30
                              typename PrimitiveTypeTraits<PT>::CppType,
452
30
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
30
                                                       col_right->get_data(), vec_res);
454
455
30
            block.replace_by_position(result, std::move(col_res));
456
30
        }
457
391
        return Status::OK();
458
391
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
7.61k
                            const ColumnPtr& col_right_ptr) const {
415
7.61k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
7.61k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
7.61k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
7.61k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
7.61k
        DCHECK(!(left_is_const && right_is_const));
422
423
7.61k
        if (!left_is_const && !right_is_const) {
424
294
            auto col_res = ColumnUInt8::create();
425
426
294
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
294
            vec_res.resize(col_left->get_data().size());
428
294
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
294
                              typename PrimitiveTypeTraits<PT>::CppType,
430
294
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
294
                                                     vec_res);
432
433
294
            block.replace_by_position(result, std::move(col_res));
434
7.31k
        } else if (!left_is_const && right_is_const) {
435
4.56k
            auto col_res = ColumnUInt8::create();
436
437
4.56k
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
4.56k
            vec_res.resize(col_left->size());
439
4.56k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
4.56k
                              typename PrimitiveTypeTraits<PT>::CppType,
441
4.56k
                              Op<PT>>::vector_constant(col_left->get_data(),
442
4.56k
                                                       col_right->get_element(0), vec_res);
443
444
4.56k
            block.replace_by_position(result, std::move(col_res));
445
4.56k
        } else if (left_is_const && !right_is_const) {
446
2.76k
            auto col_res = ColumnUInt8::create();
447
448
2.76k
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
2.76k
            vec_res.resize(col_right->size());
450
2.76k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
2.76k
                              typename PrimitiveTypeTraits<PT>::CppType,
452
2.76k
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
2.76k
                                                       col_right->get_data(), vec_res);
454
455
2.76k
            block.replace_by_position(result, std::move(col_res));
456
2.76k
        }
457
7.61k
        return Status::OK();
458
7.61k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
1.33k
                            const ColumnPtr& col_right_ptr) const {
415
1.33k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
1.33k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
1.33k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
1.33k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
1.33k
        DCHECK(!(left_is_const && right_is_const));
422
423
1.33k
        if (!left_is_const && !right_is_const) {
424
146
            auto col_res = ColumnUInt8::create();
425
426
146
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
146
            vec_res.resize(col_left->get_data().size());
428
146
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
146
                              typename PrimitiveTypeTraits<PT>::CppType,
430
146
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
146
                                                     vec_res);
432
433
146
            block.replace_by_position(result, std::move(col_res));
434
1.18k
        } else if (!left_is_const && right_is_const) {
435
782
            auto col_res = ColumnUInt8::create();
436
437
782
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
782
            vec_res.resize(col_left->size());
439
782
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
782
                              typename PrimitiveTypeTraits<PT>::CppType,
441
782
                              Op<PT>>::vector_constant(col_left->get_data(),
442
782
                                                       col_right->get_element(0), vec_res);
443
444
782
            block.replace_by_position(result, std::move(col_res));
445
782
        } else if (left_is_const && !right_is_const) {
446
402
            auto col_res = ColumnUInt8::create();
447
448
402
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
402
            vec_res.resize(col_right->size());
450
402
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
402
                              typename PrimitiveTypeTraits<PT>::CppType,
452
402
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
402
                                                       col_right->get_data(), vec_res);
454
455
402
            block.replace_by_position(result, std::move(col_res));
456
402
        }
457
1.33k
        return Status::OK();
458
1.33k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
141
                            const ColumnPtr& col_right_ptr) const {
415
141
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
141
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
141
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
141
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
141
        DCHECK(!(left_is_const && right_is_const));
422
423
141
        if (!left_is_const && !right_is_const) {
424
98
            auto col_res = ColumnUInt8::create();
425
426
98
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
98
            vec_res.resize(col_left->get_data().size());
428
98
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
98
                              typename PrimitiveTypeTraits<PT>::CppType,
430
98
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
98
                                                     vec_res);
432
433
98
            block.replace_by_position(result, std::move(col_res));
434
98
        } else if (!left_is_const && right_is_const) {
435
27
            auto col_res = ColumnUInt8::create();
436
437
27
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
27
            vec_res.resize(col_left->size());
439
27
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
27
                              typename PrimitiveTypeTraits<PT>::CppType,
441
27
                              Op<PT>>::vector_constant(col_left->get_data(),
442
27
                                                       col_right->get_element(0), vec_res);
443
444
27
            block.replace_by_position(result, std::move(col_res));
445
27
        } else if (left_is_const && !right_is_const) {
446
16
            auto col_res = ColumnUInt8::create();
447
448
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
16
            vec_res.resize(col_right->size());
450
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
16
                              typename PrimitiveTypeTraits<PT>::CppType,
452
16
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
16
                                                       col_right->get_data(), vec_res);
454
455
16
            block.replace_by_position(result, std::move(col_res));
456
16
        }
457
141
        return Status::OK();
458
141
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
31
                            const ColumnPtr& col_right_ptr) const {
415
31
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
31
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
31
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
31
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
31
        DCHECK(!(left_is_const && right_is_const));
422
423
31
        if (!left_is_const && !right_is_const) {
424
16
            auto col_res = ColumnUInt8::create();
425
426
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
16
            vec_res.resize(col_left->get_data().size());
428
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
16
                              typename PrimitiveTypeTraits<PT>::CppType,
430
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
16
                                                     vec_res);
432
433
16
            block.replace_by_position(result, std::move(col_res));
434
16
        } else if (!left_is_const && right_is_const) {
435
15
            auto col_res = ColumnUInt8::create();
436
437
15
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
15
            vec_res.resize(col_left->size());
439
15
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
15
                              typename PrimitiveTypeTraits<PT>::CppType,
441
15
                              Op<PT>>::vector_constant(col_left->get_data(),
442
15
                                                       col_right->get_element(0), vec_res);
443
444
15
            block.replace_by_position(result, std::move(col_res));
445
15
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
31
        return Status::OK();
458
31
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
30
                            const ColumnPtr& col_right_ptr) const {
415
30
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
30
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
30
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
30
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
30
        DCHECK(!(left_is_const && right_is_const));
422
423
30
        if (!left_is_const && !right_is_const) {
424
24
            auto col_res = ColumnUInt8::create();
425
426
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
24
            vec_res.resize(col_left->get_data().size());
428
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
24
                              typename PrimitiveTypeTraits<PT>::CppType,
430
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
24
                                                     vec_res);
432
433
24
            block.replace_by_position(result, std::move(col_res));
434
24
        } else if (!left_is_const && right_is_const) {
435
6
            auto col_res = ColumnUInt8::create();
436
437
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
6
            vec_res.resize(col_left->size());
439
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
6
                              typename PrimitiveTypeTraits<PT>::CppType,
441
6
                              Op<PT>>::vector_constant(col_left->get_data(),
442
6
                                                       col_right->get_element(0), vec_res);
443
444
6
            block.replace_by_position(result, std::move(col_res));
445
6
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
30
        return Status::OK();
458
30
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
109
                            const ColumnPtr& col_right_ptr) const {
415
109
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
109
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
109
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
109
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
109
        DCHECK(!(left_is_const && right_is_const));
422
423
109
        if (!left_is_const && !right_is_const) {
424
109
            auto col_res = ColumnUInt8::create();
425
426
109
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
109
            vec_res.resize(col_left->get_data().size());
428
109
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
109
                              typename PrimitiveTypeTraits<PT>::CppType,
430
109
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
109
                                                     vec_res);
432
433
109
            block.replace_by_position(result, std::move(col_res));
434
109
        } else if (!left_is_const && right_is_const) {
435
0
            auto col_res = ColumnUInt8::create();
436
437
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
0
            vec_res.resize(col_left->size());
439
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
0
                              typename PrimitiveTypeTraits<PT>::CppType,
441
0
                              Op<PT>>::vector_constant(col_left->get_data(),
442
0
                                                       col_right->get_element(0), vec_res);
443
444
0
            block.replace_by_position(result, std::move(col_res));
445
0
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
109
        return Status::OK();
458
109
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
331
                            const ColumnPtr& col_right_ptr) const {
415
331
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
331
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
331
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
331
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
331
        DCHECK(!(left_is_const && right_is_const));
422
423
331
        if (!left_is_const && !right_is_const) {
424
114
            auto col_res = ColumnUInt8::create();
425
426
114
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
114
            vec_res.resize(col_left->get_data().size());
428
114
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
114
                              typename PrimitiveTypeTraits<PT>::CppType,
430
114
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
114
                                                     vec_res);
432
433
114
            block.replace_by_position(result, std::move(col_res));
434
217
        } else if (!left_is_const && right_is_const) {
435
217
            auto col_res = ColumnUInt8::create();
436
437
217
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
217
            vec_res.resize(col_left->size());
439
217
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
217
                              typename PrimitiveTypeTraits<PT>::CppType,
441
217
                              Op<PT>>::vector_constant(col_left->get_data(),
442
217
                                                       col_right->get_element(0), vec_res);
443
444
217
            block.replace_by_position(result, std::move(col_res));
445
217
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
331
        return Status::OK();
458
331
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
4
                            const ColumnPtr& col_right_ptr) const {
415
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
4
        DCHECK(!(left_is_const && right_is_const));
422
423
4
        if (!left_is_const && !right_is_const) {
424
4
            auto col_res = ColumnUInt8::create();
425
426
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
4
            vec_res.resize(col_left->get_data().size());
428
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
4
                              typename PrimitiveTypeTraits<PT>::CppType,
430
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
4
                                                     vec_res);
432
433
4
            block.replace_by_position(result, std::move(col_res));
434
4
        } else if (!left_is_const && right_is_const) {
435
0
            auto col_res = ColumnUInt8::create();
436
437
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
0
            vec_res.resize(col_left->size());
439
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
0
                              typename PrimitiveTypeTraits<PT>::CppType,
441
0
                              Op<PT>>::vector_constant(col_left->get_data(),
442
0
                                                       col_right->get_element(0), vec_res);
443
444
0
            block.replace_by_position(result, std::move(col_res));
445
0
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
4
        return Status::OK();
458
4
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
70
                            const ColumnPtr& col_right_ptr) const {
415
70
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
70
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
70
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
70
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
70
        DCHECK(!(left_is_const && right_is_const));
422
423
70
        if (!left_is_const && !right_is_const) {
424
39
            auto col_res = ColumnUInt8::create();
425
426
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
39
            vec_res.resize(col_left->get_data().size());
428
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
39
                              typename PrimitiveTypeTraits<PT>::CppType,
430
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
39
                                                     vec_res);
432
433
39
            block.replace_by_position(result, std::move(col_res));
434
39
        } else if (!left_is_const && right_is_const) {
435
31
            auto col_res = ColumnUInt8::create();
436
437
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
31
            vec_res.resize(col_left->size());
439
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
31
                              typename PrimitiveTypeTraits<PT>::CppType,
441
31
                              Op<PT>>::vector_constant(col_left->get_data(),
442
31
                                                       col_right->get_element(0), vec_res);
443
444
31
            block.replace_by_position(result, std::move(col_res));
445
31
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
70
        return Status::OK();
458
70
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
84
                            const ColumnPtr& col_right_ptr) const {
415
84
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
84
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
84
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
84
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
84
        DCHECK(!(left_is_const && right_is_const));
422
423
84
        if (!left_is_const && !right_is_const) {
424
56
            auto col_res = ColumnUInt8::create();
425
426
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
56
            vec_res.resize(col_left->get_data().size());
428
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
56
                              typename PrimitiveTypeTraits<PT>::CppType,
430
56
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
56
                                                     vec_res);
432
433
56
            block.replace_by_position(result, std::move(col_res));
434
56
        } else if (!left_is_const && right_is_const) {
435
28
            auto col_res = ColumnUInt8::create();
436
437
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
28
            vec_res.resize(col_left->size());
439
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
28
                              typename PrimitiveTypeTraits<PT>::CppType,
441
28
                              Op<PT>>::vector_constant(col_left->get_data(),
442
28
                                                       col_right->get_element(0), vec_res);
443
444
28
            block.replace_by_position(result, std::move(col_res));
445
28
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
84
        return Status::OK();
458
84
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
584
                            const ColumnPtr& col_right_ptr) const {
415
584
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
584
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
584
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
584
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
584
        DCHECK(!(left_is_const && right_is_const));
422
423
584
        if (!left_is_const && !right_is_const) {
424
316
            auto col_res = ColumnUInt8::create();
425
426
316
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
316
            vec_res.resize(col_left->get_data().size());
428
316
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
316
                              typename PrimitiveTypeTraits<PT>::CppType,
430
316
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
316
                                                     vec_res);
432
433
316
            block.replace_by_position(result, std::move(col_res));
434
316
        } else if (!left_is_const && right_is_const) {
435
268
            auto col_res = ColumnUInt8::create();
436
437
268
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
268
            vec_res.resize(col_left->size());
439
268
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
268
                              typename PrimitiveTypeTraits<PT>::CppType,
441
268
                              Op<PT>>::vector_constant(col_left->get_data(),
442
268
                                                       col_right->get_element(0), vec_res);
443
444
268
            block.replace_by_position(result, std::move(col_res));
445
268
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
584
        return Status::OK();
458
584
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
1.15k
                            const ColumnPtr& col_right_ptr) const {
415
1.15k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
1.15k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
1.15k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
1.15k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
1.15k
        DCHECK(!(left_is_const && right_is_const));
422
423
1.15k
        if (!left_is_const && !right_is_const) {
424
349
            auto col_res = ColumnUInt8::create();
425
426
349
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
349
            vec_res.resize(col_left->get_data().size());
428
349
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
349
                              typename PrimitiveTypeTraits<PT>::CppType,
430
349
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
349
                                                     vec_res);
432
433
349
            block.replace_by_position(result, std::move(col_res));
434
804
        } else if (!left_is_const && right_is_const) {
435
22
            auto col_res = ColumnUInt8::create();
436
437
22
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
22
            vec_res.resize(col_left->size());
439
22
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
22
                              typename PrimitiveTypeTraits<PT>::CppType,
441
22
                              Op<PT>>::vector_constant(col_left->get_data(),
442
22
                                                       col_right->get_element(0), vec_res);
443
444
22
            block.replace_by_position(result, std::move(col_res));
445
782
        } else if (left_is_const && !right_is_const) {
446
782
            auto col_res = ColumnUInt8::create();
447
448
782
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
782
            vec_res.resize(col_right->size());
450
782
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
782
                              typename PrimitiveTypeTraits<PT>::CppType,
452
782
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
782
                                                       col_right->get_data(), vec_res);
454
455
782
            block.replace_by_position(result, std::move(col_res));
456
782
        }
457
1.15k
        return Status::OK();
458
1.15k
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
48
                            const ColumnPtr& col_right_ptr) const {
415
48
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
48
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
48
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
48
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
48
        DCHECK(!(left_is_const && right_is_const));
422
423
48
        if (!left_is_const && !right_is_const) {
424
20
            auto col_res = ColumnUInt8::create();
425
426
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
20
            vec_res.resize(col_left->get_data().size());
428
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
20
                              typename PrimitiveTypeTraits<PT>::CppType,
430
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
20
                                                     vec_res);
432
433
20
            block.replace_by_position(result, std::move(col_res));
434
28
        } else if (!left_is_const && right_is_const) {
435
28
            auto col_res = ColumnUInt8::create();
436
437
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
28
            vec_res.resize(col_left->size());
439
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
28
                              typename PrimitiveTypeTraits<PT>::CppType,
441
28
                              Op<PT>>::vector_constant(col_left->get_data(),
442
28
                                                       col_right->get_element(0), vec_res);
443
444
28
            block.replace_by_position(result, std::move(col_res));
445
28
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
48
        return Status::OK();
458
48
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
60
                            const ColumnPtr& col_right_ptr) const {
415
60
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
60
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
60
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
60
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
60
        DCHECK(!(left_is_const && right_is_const));
422
423
60
        if (!left_is_const && !right_is_const) {
424
20
            auto col_res = ColumnUInt8::create();
425
426
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
20
            vec_res.resize(col_left->get_data().size());
428
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
20
                              typename PrimitiveTypeTraits<PT>::CppType,
430
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
20
                                                     vec_res);
432
433
20
            block.replace_by_position(result, std::move(col_res));
434
40
        } else if (!left_is_const && right_is_const) {
435
40
            auto col_res = ColumnUInt8::create();
436
437
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
40
            vec_res.resize(col_left->size());
439
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
40
                              typename PrimitiveTypeTraits<PT>::CppType,
441
40
                              Op<PT>>::vector_constant(col_left->get_data(),
442
40
                                                       col_right->get_element(0), vec_res);
443
444
40
            block.replace_by_position(result, std::move(col_res));
445
40
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
60
        return Status::OK();
458
60
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
1.08k
                            const ColumnPtr& col_right_ptr) const {
415
1.08k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
1.08k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
1.08k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
1.08k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
1.08k
        DCHECK(!(left_is_const && right_is_const));
422
423
1.08k
        if (!left_is_const && !right_is_const) {
424
1.04k
            auto col_res = ColumnUInt8::create();
425
426
1.04k
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
1.04k
            vec_res.resize(col_left->get_data().size());
428
1.04k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
1.04k
                              typename PrimitiveTypeTraits<PT>::CppType,
430
1.04k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
1.04k
                                                     vec_res);
432
433
1.04k
            block.replace_by_position(result, std::move(col_res));
434
1.04k
        } else if (!left_is_const && right_is_const) {
435
41
            auto col_res = ColumnUInt8::create();
436
437
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
41
            vec_res.resize(col_left->size());
439
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
41
                              typename PrimitiveTypeTraits<PT>::CppType,
441
41
                              Op<PT>>::vector_constant(col_left->get_data(),
442
41
                                                       col_right->get_element(0), vec_res);
443
444
41
            block.replace_by_position(result, std::move(col_res));
445
41
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
1.08k
        return Status::OK();
458
1.08k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
2
                            const ColumnPtr& col_right_ptr) const {
415
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
2
        DCHECK(!(left_is_const && right_is_const));
422
423
2
        if (!left_is_const && !right_is_const) {
424
0
            auto col_res = ColumnUInt8::create();
425
426
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
0
            vec_res.resize(col_left->get_data().size());
428
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
0
                              typename PrimitiveTypeTraits<PT>::CppType,
430
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
0
                                                     vec_res);
432
433
0
            block.replace_by_position(result, std::move(col_res));
434
2
        } else if (!left_is_const && right_is_const) {
435
2
            auto col_res = ColumnUInt8::create();
436
437
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
2
            vec_res.resize(col_left->size());
439
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
2
                              typename PrimitiveTypeTraits<PT>::CppType,
441
2
                              Op<PT>>::vector_constant(col_left->get_data(),
442
2
                                                       col_right->get_element(0), vec_res);
443
444
2
            block.replace_by_position(result, std::move(col_res));
445
2
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
2
        return Status::OK();
458
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
1
                            const ColumnPtr& col_right_ptr) const {
415
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
1
        DCHECK(!(left_is_const && right_is_const));
422
423
1
        if (!left_is_const && !right_is_const) {
424
1
            auto col_res = ColumnUInt8::create();
425
426
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
1
            vec_res.resize(col_left->get_data().size());
428
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
1
                              typename PrimitiveTypeTraits<PT>::CppType,
430
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
1
                                                     vec_res);
432
433
1
            block.replace_by_position(result, std::move(col_res));
434
1
        } else if (!left_is_const && right_is_const) {
435
0
            auto col_res = ColumnUInt8::create();
436
437
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
0
            vec_res.resize(col_left->size());
439
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
0
                              typename PrimitiveTypeTraits<PT>::CppType,
441
0
                              Op<PT>>::vector_constant(col_left->get_data(),
442
0
                                                       col_right->get_element(0), vec_res);
443
444
0
            block.replace_by_position(result, std::move(col_res));
445
0
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
1
        return Status::OK();
458
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
1.26k
                            const ColumnPtr& col_right_ptr) const {
415
1.26k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
1.26k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
1.26k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
1.26k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
1.26k
        DCHECK(!(left_is_const && right_is_const));
422
423
1.26k
        if (!left_is_const && !right_is_const) {
424
38
            auto col_res = ColumnUInt8::create();
425
426
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
38
            vec_res.resize(col_left->get_data().size());
428
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
38
                              typename PrimitiveTypeTraits<PT>::CppType,
430
38
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
38
                                                     vec_res);
432
433
38
            block.replace_by_position(result, std::move(col_res));
434
1.23k
        } else if (!left_is_const && right_is_const) {
435
1.04k
            auto col_res = ColumnUInt8::create();
436
437
1.04k
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
1.04k
            vec_res.resize(col_left->size());
439
1.04k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
1.04k
                              typename PrimitiveTypeTraits<PT>::CppType,
441
1.04k
                              Op<PT>>::vector_constant(col_left->get_data(),
442
1.04k
                                                       col_right->get_element(0), vec_res);
443
444
1.04k
            block.replace_by_position(result, std::move(col_res));
445
1.04k
        } else if (left_is_const && !right_is_const) {
446
186
            auto col_res = ColumnUInt8::create();
447
448
186
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
186
            vec_res.resize(col_right->size());
450
186
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
186
                              typename PrimitiveTypeTraits<PT>::CppType,
452
186
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
186
                                                       col_right->get_data(), vec_res);
454
455
186
            block.replace_by_position(result, std::move(col_res));
456
186
        }
457
1.26k
        return Status::OK();
458
1.26k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
1.75k
                            const ColumnPtr& col_right_ptr) const {
415
1.75k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
1.75k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
1.75k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
1.75k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
1.75k
        DCHECK(!(left_is_const && right_is_const));
422
423
1.75k
        if (!left_is_const && !right_is_const) {
424
112
            auto col_res = ColumnUInt8::create();
425
426
112
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
112
            vec_res.resize(col_left->get_data().size());
428
112
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
112
                              typename PrimitiveTypeTraits<PT>::CppType,
430
112
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
112
                                                     vec_res);
432
433
112
            block.replace_by_position(result, std::move(col_res));
434
1.63k
        } else if (!left_is_const && right_is_const) {
435
1.44k
            auto col_res = ColumnUInt8::create();
436
437
1.44k
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
1.44k
            vec_res.resize(col_left->size());
439
1.44k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
1.44k
                              typename PrimitiveTypeTraits<PT>::CppType,
441
1.44k
                              Op<PT>>::vector_constant(col_left->get_data(),
442
1.44k
                                                       col_right->get_element(0), vec_res);
443
444
1.44k
            block.replace_by_position(result, std::move(col_res));
445
1.44k
        } else if (left_is_const && !right_is_const) {
446
196
            auto col_res = ColumnUInt8::create();
447
448
196
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
196
            vec_res.resize(col_right->size());
450
196
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
196
                              typename PrimitiveTypeTraits<PT>::CppType,
452
196
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
196
                                                       col_right->get_data(), vec_res);
454
455
196
            block.replace_by_position(result, std::move(col_res));
456
196
        }
457
1.75k
        return Status::OK();
458
1.75k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
66.3k
                            const ColumnPtr& col_right_ptr) const {
415
66.3k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
66.3k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
66.3k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
66.3k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
66.3k
        DCHECK(!(left_is_const && right_is_const));
422
423
66.3k
        if (!left_is_const && !right_is_const) {
424
44
            auto col_res = ColumnUInt8::create();
425
426
44
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
44
            vec_res.resize(col_left->get_data().size());
428
44
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
44
                              typename PrimitiveTypeTraits<PT>::CppType,
430
44
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
44
                                                     vec_res);
432
433
44
            block.replace_by_position(result, std::move(col_res));
434
66.3k
        } else if (!left_is_const && right_is_const) {
435
4.65k
            auto col_res = ColumnUInt8::create();
436
437
4.65k
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
4.65k
            vec_res.resize(col_left->size());
439
4.65k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
4.65k
                              typename PrimitiveTypeTraits<PT>::CppType,
441
4.65k
                              Op<PT>>::vector_constant(col_left->get_data(),
442
4.65k
                                                       col_right->get_element(0), vec_res);
443
444
4.65k
            block.replace_by_position(result, std::move(col_res));
445
61.6k
        } else if (left_is_const && !right_is_const) {
446
61.6k
            auto col_res = ColumnUInt8::create();
447
448
61.6k
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
61.6k
            vec_res.resize(col_right->size());
450
61.6k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
61.6k
                              typename PrimitiveTypeTraits<PT>::CppType,
452
61.6k
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
61.6k
                                                       col_right->get_data(), vec_res);
454
455
61.6k
            block.replace_by_position(result, std::move(col_res));
456
61.6k
        }
457
66.3k
        return Status::OK();
458
66.3k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
1.25k
                            const ColumnPtr& col_right_ptr) const {
415
1.25k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
1.25k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
1.25k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
1.25k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
1.25k
        DCHECK(!(left_is_const && right_is_const));
422
423
1.25k
        if (!left_is_const && !right_is_const) {
424
64
            auto col_res = ColumnUInt8::create();
425
426
64
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
64
            vec_res.resize(col_left->get_data().size());
428
64
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
64
                              typename PrimitiveTypeTraits<PT>::CppType,
430
64
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
64
                                                     vec_res);
432
433
64
            block.replace_by_position(result, std::move(col_res));
434
1.19k
        } else if (!left_is_const && right_is_const) {
435
1.09k
            auto col_res = ColumnUInt8::create();
436
437
1.09k
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
1.09k
            vec_res.resize(col_left->size());
439
1.09k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
1.09k
                              typename PrimitiveTypeTraits<PT>::CppType,
441
1.09k
                              Op<PT>>::vector_constant(col_left->get_data(),
442
1.09k
                                                       col_right->get_element(0), vec_res);
443
444
1.09k
            block.replace_by_position(result, std::move(col_res));
445
1.09k
        } else if (left_is_const && !right_is_const) {
446
94
            auto col_res = ColumnUInt8::create();
447
448
94
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
94
            vec_res.resize(col_right->size());
450
94
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
94
                              typename PrimitiveTypeTraits<PT>::CppType,
452
94
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
94
                                                       col_right->get_data(), vec_res);
454
455
94
            block.replace_by_position(result, std::move(col_res));
456
94
        }
457
1.25k
        return Status::OK();
458
1.25k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
256
                            const ColumnPtr& col_right_ptr) const {
415
256
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
256
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
256
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
256
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
256
        DCHECK(!(left_is_const && right_is_const));
422
423
256
        if (!left_is_const && !right_is_const) {
424
2
            auto col_res = ColumnUInt8::create();
425
426
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
2
            vec_res.resize(col_left->get_data().size());
428
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
2
                              typename PrimitiveTypeTraits<PT>::CppType,
430
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
2
                                                     vec_res);
432
433
2
            block.replace_by_position(result, std::move(col_res));
434
254
        } else if (!left_is_const && right_is_const) {
435
201
            auto col_res = ColumnUInt8::create();
436
437
201
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
201
            vec_res.resize(col_left->size());
439
201
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
201
                              typename PrimitiveTypeTraits<PT>::CppType,
441
201
                              Op<PT>>::vector_constant(col_left->get_data(),
442
201
                                                       col_right->get_element(0), vec_res);
443
444
201
            block.replace_by_position(result, std::move(col_res));
445
201
        } else if (left_is_const && !right_is_const) {
446
53
            auto col_res = ColumnUInt8::create();
447
448
53
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
53
            vec_res.resize(col_right->size());
450
53
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
53
                              typename PrimitiveTypeTraits<PT>::CppType,
452
53
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
53
                                                       col_right->get_data(), vec_res);
454
455
53
            block.replace_by_position(result, std::move(col_res));
456
53
        }
457
256
        return Status::OK();
458
256
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
4
                            const ColumnPtr& col_right_ptr) const {
415
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
4
        DCHECK(!(left_is_const && right_is_const));
422
423
4
        if (!left_is_const && !right_is_const) {
424
1
            auto col_res = ColumnUInt8::create();
425
426
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
1
            vec_res.resize(col_left->get_data().size());
428
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
1
                              typename PrimitiveTypeTraits<PT>::CppType,
430
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
1
                                                     vec_res);
432
433
1
            block.replace_by_position(result, std::move(col_res));
434
3
        } else if (!left_is_const && right_is_const) {
435
3
            auto col_res = ColumnUInt8::create();
436
437
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
3
            vec_res.resize(col_left->size());
439
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
3
                              typename PrimitiveTypeTraits<PT>::CppType,
441
3
                              Op<PT>>::vector_constant(col_left->get_data(),
442
3
                                                       col_right->get_element(0), vec_res);
443
444
3
            block.replace_by_position(result, std::move(col_res));
445
3
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
4
        return Status::OK();
458
4
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
1
                            const ColumnPtr& col_right_ptr) const {
415
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
1
        DCHECK(!(left_is_const && right_is_const));
422
423
1
        if (!left_is_const && !right_is_const) {
424
1
            auto col_res = ColumnUInt8::create();
425
426
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
1
            vec_res.resize(col_left->get_data().size());
428
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
1
                              typename PrimitiveTypeTraits<PT>::CppType,
430
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
1
                                                     vec_res);
432
433
1
            block.replace_by_position(result, std::move(col_res));
434
1
        } else if (!left_is_const && right_is_const) {
435
0
            auto col_res = ColumnUInt8::create();
436
437
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
0
            vec_res.resize(col_left->size());
439
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
0
                              typename PrimitiveTypeTraits<PT>::CppType,
441
0
                              Op<PT>>::vector_constant(col_left->get_data(),
442
0
                                                       col_right->get_element(0), vec_res);
443
444
0
            block.replace_by_position(result, std::move(col_res));
445
0
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
1
        return Status::OK();
458
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
220
                            const ColumnPtr& col_right_ptr) const {
415
220
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
220
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
220
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
220
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
220
        DCHECK(!(left_is_const && right_is_const));
422
423
220
        if (!left_is_const && !right_is_const) {
424
20
            auto col_res = ColumnUInt8::create();
425
426
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
20
            vec_res.resize(col_left->get_data().size());
428
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
20
                              typename PrimitiveTypeTraits<PT>::CppType,
430
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
20
                                                     vec_res);
432
433
20
            block.replace_by_position(result, std::move(col_res));
434
200
        } else if (!left_is_const && right_is_const) {
435
200
            auto col_res = ColumnUInt8::create();
436
437
200
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
200
            vec_res.resize(col_left->size());
439
200
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
200
                              typename PrimitiveTypeTraits<PT>::CppType,
441
200
                              Op<PT>>::vector_constant(col_left->get_data(),
442
200
                                                       col_right->get_element(0), vec_res);
443
444
200
            block.replace_by_position(result, std::move(col_res));
445
200
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
220
        return Status::OK();
458
220
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
535
                            const ColumnPtr& col_right_ptr) const {
415
535
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
535
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
535
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
535
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
535
        DCHECK(!(left_is_const && right_is_const));
422
423
536
        if (!left_is_const && !right_is_const) {
424
25
            auto col_res = ColumnUInt8::create();
425
426
25
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
25
            vec_res.resize(col_left->get_data().size());
428
25
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
25
                              typename PrimitiveTypeTraits<PT>::CppType,
430
25
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
25
                                                     vec_res);
432
433
25
            block.replace_by_position(result, std::move(col_res));
434
510
        } else if (!left_is_const && right_is_const) {
435
510
            auto col_res = ColumnUInt8::create();
436
437
510
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
510
            vec_res.resize(col_left->size());
439
510
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
510
                              typename PrimitiveTypeTraits<PT>::CppType,
441
510
                              Op<PT>>::vector_constant(col_left->get_data(),
442
510
                                                       col_right->get_element(0), vec_res);
443
444
510
            block.replace_by_position(result, std::move(col_res));
445
510
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
535
        return Status::OK();
458
535
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
28
                            const ColumnPtr& col_right_ptr) const {
415
28
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
28
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
28
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
28
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
28
        DCHECK(!(left_is_const && right_is_const));
422
423
28
        if (!left_is_const && !right_is_const) {
424
0
            auto col_res = ColumnUInt8::create();
425
426
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
0
            vec_res.resize(col_left->get_data().size());
428
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
0
                              typename PrimitiveTypeTraits<PT>::CppType,
430
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
0
                                                     vec_res);
432
433
0
            block.replace_by_position(result, std::move(col_res));
434
28
        } else if (!left_is_const && right_is_const) {
435
28
            auto col_res = ColumnUInt8::create();
436
437
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
28
            vec_res.resize(col_left->size());
439
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
28
                              typename PrimitiveTypeTraits<PT>::CppType,
441
28
                              Op<PT>>::vector_constant(col_left->get_data(),
442
28
                                                       col_right->get_element(0), vec_res);
443
444
28
            block.replace_by_position(result, std::move(col_res));
445
28
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
28
        return Status::OK();
458
28
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
483
                            const ColumnPtr& col_right_ptr) const {
415
483
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
483
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
483
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
483
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
483
        DCHECK(!(left_is_const && right_is_const));
422
423
483
        if (!left_is_const && !right_is_const) {
424
1
            auto col_res = ColumnUInt8::create();
425
426
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
1
            vec_res.resize(col_left->get_data().size());
428
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
1
                              typename PrimitiveTypeTraits<PT>::CppType,
430
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
1
                                                     vec_res);
432
433
1
            block.replace_by_position(result, std::move(col_res));
434
482
        } else if (!left_is_const && right_is_const) {
435
476
            auto col_res = ColumnUInt8::create();
436
437
476
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
476
            vec_res.resize(col_left->size());
439
476
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
476
                              typename PrimitiveTypeTraits<PT>::CppType,
441
476
                              Op<PT>>::vector_constant(col_left->get_data(),
442
476
                                                       col_right->get_element(0), vec_res);
443
444
476
            block.replace_by_position(result, std::move(col_res));
445
476
        } else if (left_is_const && !right_is_const) {
446
6
            auto col_res = ColumnUInt8::create();
447
448
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
6
            vec_res.resize(col_right->size());
450
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
6
                              typename PrimitiveTypeTraits<PT>::CppType,
452
6
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
6
                                                       col_right->get_data(), vec_res);
454
455
6
            block.replace_by_position(result, std::move(col_res));
456
6
        }
457
483
        return Status::OK();
458
483
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
144
                            const ColumnPtr& col_right_ptr) const {
415
144
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
144
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
144
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
144
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
144
        DCHECK(!(left_is_const && right_is_const));
422
423
144
        if (!left_is_const && !right_is_const) {
424
6
            auto col_res = ColumnUInt8::create();
425
426
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
6
            vec_res.resize(col_left->get_data().size());
428
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
6
                              typename PrimitiveTypeTraits<PT>::CppType,
430
6
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
6
                                                     vec_res);
432
433
6
            block.replace_by_position(result, std::move(col_res));
434
138
        } else if (!left_is_const && right_is_const) {
435
138
            auto col_res = ColumnUInt8::create();
436
437
138
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
138
            vec_res.resize(col_left->size());
439
138
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
138
                              typename PrimitiveTypeTraits<PT>::CppType,
441
138
                              Op<PT>>::vector_constant(col_left->get_data(),
442
138
                                                       col_right->get_element(0), vec_res);
443
444
138
            block.replace_by_position(result, std::move(col_res));
445
138
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
144
        return Status::OK();
458
144
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
1
                            const ColumnPtr& col_right_ptr) const {
415
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
1
        DCHECK(!(left_is_const && right_is_const));
422
423
1
        if (!left_is_const && !right_is_const) {
424
1
            auto col_res = ColumnUInt8::create();
425
426
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
1
            vec_res.resize(col_left->get_data().size());
428
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
1
                              typename PrimitiveTypeTraits<PT>::CppType,
430
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
1
                                                     vec_res);
432
433
1
            block.replace_by_position(result, std::move(col_res));
434
1
        } else if (!left_is_const && right_is_const) {
435
0
            auto col_res = ColumnUInt8::create();
436
437
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
0
            vec_res.resize(col_left->size());
439
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
0
                              typename PrimitiveTypeTraits<PT>::CppType,
441
0
                              Op<PT>>::vector_constant(col_left->get_data(),
442
0
                                                       col_right->get_element(0), vec_res);
443
444
0
            block.replace_by_position(result, std::move(col_res));
445
0
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
1
        return Status::OK();
458
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
36
                            const ColumnPtr& col_right_ptr) const {
415
36
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
36
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
36
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
36
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
36
        DCHECK(!(left_is_const && right_is_const));
422
423
36
        if (!left_is_const && !right_is_const) {
424
0
            auto col_res = ColumnUInt8::create();
425
426
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
0
            vec_res.resize(col_left->get_data().size());
428
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
0
                              typename PrimitiveTypeTraits<PT>::CppType,
430
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
0
                                                     vec_res);
432
433
0
            block.replace_by_position(result, std::move(col_res));
434
36
        } else if (!left_is_const && right_is_const) {
435
36
            auto col_res = ColumnUInt8::create();
436
437
36
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
36
            vec_res.resize(col_left->size());
439
36
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
36
                              typename PrimitiveTypeTraits<PT>::CppType,
441
36
                              Op<PT>>::vector_constant(col_left->get_data(),
442
36
                                                       col_right->get_element(0), vec_res);
443
444
36
            block.replace_by_position(result, std::move(col_res));
445
36
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
36
        return Status::OK();
458
36
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
63
                            const ColumnPtr& col_right_ptr) const {
415
63
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
63
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
63
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
63
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
63
        DCHECK(!(left_is_const && right_is_const));
422
423
63
        if (!left_is_const && !right_is_const) {
424
0
            auto col_res = ColumnUInt8::create();
425
426
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
0
            vec_res.resize(col_left->get_data().size());
428
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
0
                              typename PrimitiveTypeTraits<PT>::CppType,
430
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
0
                                                     vec_res);
432
433
0
            block.replace_by_position(result, std::move(col_res));
434
63
        } else if (!left_is_const && right_is_const) {
435
63
            auto col_res = ColumnUInt8::create();
436
437
63
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
63
            vec_res.resize(col_left->size());
439
63
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
63
                              typename PrimitiveTypeTraits<PT>::CppType,
441
63
                              Op<PT>>::vector_constant(col_left->get_data(),
442
63
                                                       col_right->get_element(0), vec_res);
443
444
63
            block.replace_by_position(result, std::move(col_res));
445
63
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
63
        return Status::OK();
458
63
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
718
                            const ColumnPtr& col_right_ptr) const {
415
718
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
718
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
718
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
718
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
718
        DCHECK(!(left_is_const && right_is_const));
422
423
718
        if (!left_is_const && !right_is_const) {
424
3
            auto col_res = ColumnUInt8::create();
425
426
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
3
            vec_res.resize(col_left->get_data().size());
428
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
3
                              typename PrimitiveTypeTraits<PT>::CppType,
430
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
3
                                                     vec_res);
432
433
3
            block.replace_by_position(result, std::move(col_res));
434
715
        } else if (!left_is_const && right_is_const) {
435
715
            auto col_res = ColumnUInt8::create();
436
437
715
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
715
            vec_res.resize(col_left->size());
439
715
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
715
                              typename PrimitiveTypeTraits<PT>::CppType,
441
715
                              Op<PT>>::vector_constant(col_left->get_data(),
442
715
                                                       col_right->get_element(0), vec_res);
443
444
715
            block.replace_by_position(result, std::move(col_res));
445
715
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
718
        return Status::OK();
458
718
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
177
                            const ColumnPtr& col_right_ptr) const {
415
177
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
177
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
177
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
177
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
177
        DCHECK(!(left_is_const && right_is_const));
422
423
177
        if (!left_is_const && !right_is_const) {
424
8
            auto col_res = ColumnUInt8::create();
425
426
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
8
            vec_res.resize(col_left->get_data().size());
428
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
8
                              typename PrimitiveTypeTraits<PT>::CppType,
430
8
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
8
                                                     vec_res);
432
433
8
            block.replace_by_position(result, std::move(col_res));
434
169
        } else if (!left_is_const && right_is_const) {
435
169
            auto col_res = ColumnUInt8::create();
436
437
169
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
169
            vec_res.resize(col_left->size());
439
169
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
169
                              typename PrimitiveTypeTraits<PT>::CppType,
441
169
                              Op<PT>>::vector_constant(col_left->get_data(),
442
169
                                                       col_right->get_element(0), vec_res);
443
444
169
            block.replace_by_position(result, std::move(col_res));
445
169
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
177
        return Status::OK();
458
177
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
25
                            const ColumnPtr& col_right_ptr) const {
415
25
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
25
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
25
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
25
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
25
        DCHECK(!(left_is_const && right_is_const));
422
423
25
        if (!left_is_const && !right_is_const) {
424
0
            auto col_res = ColumnUInt8::create();
425
426
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
0
            vec_res.resize(col_left->get_data().size());
428
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
0
                              typename PrimitiveTypeTraits<PT>::CppType,
430
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
0
                                                     vec_res);
432
433
0
            block.replace_by_position(result, std::move(col_res));
434
25
        } else if (!left_is_const && right_is_const) {
435
25
            auto col_res = ColumnUInt8::create();
436
437
25
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
25
            vec_res.resize(col_left->size());
439
25
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
25
                              typename PrimitiveTypeTraits<PT>::CppType,
441
25
                              Op<PT>>::vector_constant(col_left->get_data(),
442
25
                                                       col_right->get_element(0), vec_res);
443
444
25
            block.replace_by_position(result, std::move(col_res));
445
25
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
25
        return Status::OK();
458
25
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
11
                            const ColumnPtr& col_right_ptr) const {
415
11
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
11
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
11
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
11
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
11
        DCHECK(!(left_is_const && right_is_const));
422
423
11
        if (!left_is_const && !right_is_const) {
424
1
            auto col_res = ColumnUInt8::create();
425
426
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
1
            vec_res.resize(col_left->get_data().size());
428
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
1
                              typename PrimitiveTypeTraits<PT>::CppType,
430
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
1
                                                     vec_res);
432
433
1
            block.replace_by_position(result, std::move(col_res));
434
10
        } else if (!left_is_const && right_is_const) {
435
10
            auto col_res = ColumnUInt8::create();
436
437
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
10
            vec_res.resize(col_left->size());
439
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
10
                              typename PrimitiveTypeTraits<PT>::CppType,
441
10
                              Op<PT>>::vector_constant(col_left->get_data(),
442
10
                                                       col_right->get_element(0), vec_res);
443
444
10
            block.replace_by_position(result, std::move(col_res));
445
10
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
11
        return Status::OK();
458
11
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
1
                            const ColumnPtr& col_right_ptr) const {
415
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
1
        DCHECK(!(left_is_const && right_is_const));
422
423
1
        if (!left_is_const && !right_is_const) {
424
1
            auto col_res = ColumnUInt8::create();
425
426
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
1
            vec_res.resize(col_left->get_data().size());
428
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
1
                              typename PrimitiveTypeTraits<PT>::CppType,
430
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
1
                                                     vec_res);
432
433
1
            block.replace_by_position(result, std::move(col_res));
434
1
        } else if (!left_is_const && right_is_const) {
435
0
            auto col_res = ColumnUInt8::create();
436
437
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
0
            vec_res.resize(col_left->size());
439
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
0
                              typename PrimitiveTypeTraits<PT>::CppType,
441
0
                              Op<PT>>::vector_constant(col_left->get_data(),
442
0
                                                       col_right->get_element(0), vec_res);
443
444
0
            block.replace_by_position(result, std::move(col_res));
445
0
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
1
        return Status::OK();
458
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
24
                            const ColumnPtr& col_right_ptr) const {
415
24
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
24
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
24
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
24
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
24
        DCHECK(!(left_is_const && right_is_const));
422
423
24
        if (!left_is_const && !right_is_const) {
424
20
            auto col_res = ColumnUInt8::create();
425
426
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
20
            vec_res.resize(col_left->get_data().size());
428
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
20
                              typename PrimitiveTypeTraits<PT>::CppType,
430
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
20
                                                     vec_res);
432
433
20
            block.replace_by_position(result, std::move(col_res));
434
20
        } else if (!left_is_const && right_is_const) {
435
4
            auto col_res = ColumnUInt8::create();
436
437
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
4
            vec_res.resize(col_left->size());
439
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
4
                              typename PrimitiveTypeTraits<PT>::CppType,
441
4
                              Op<PT>>::vector_constant(col_left->get_data(),
442
4
                                                       col_right->get_element(0), vec_res);
443
444
4
            block.replace_by_position(result, std::move(col_res));
445
4
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
24
        return Status::OK();
458
24
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
122
                            const ColumnPtr& col_right_ptr) const {
415
122
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
122
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
122
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
122
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
122
        DCHECK(!(left_is_const && right_is_const));
422
423
122
        if (!left_is_const && !right_is_const) {
424
24
            auto col_res = ColumnUInt8::create();
425
426
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
24
            vec_res.resize(col_left->get_data().size());
428
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
24
                              typename PrimitiveTypeTraits<PT>::CppType,
430
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
24
                                                     vec_res);
432
433
24
            block.replace_by_position(result, std::move(col_res));
434
98
        } else if (!left_is_const && right_is_const) {
435
98
            auto col_res = ColumnUInt8::create();
436
437
98
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
98
            vec_res.resize(col_left->size());
439
98
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
98
                              typename PrimitiveTypeTraits<PT>::CppType,
441
98
                              Op<PT>>::vector_constant(col_left->get_data(),
442
98
                                                       col_right->get_element(0), vec_res);
443
444
98
            block.replace_by_position(result, std::move(col_res));
445
98
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
122
        return Status::OK();
458
122
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
68
                            const ColumnPtr& col_right_ptr) const {
415
68
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
68
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
68
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
68
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
68
        DCHECK(!(left_is_const && right_is_const));
422
423
68
        if (!left_is_const && !right_is_const) {
424
68
            auto col_res = ColumnUInt8::create();
425
426
68
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
68
            vec_res.resize(col_left->get_data().size());
428
68
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
68
                              typename PrimitiveTypeTraits<PT>::CppType,
430
68
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
68
                                                     vec_res);
432
433
68
            block.replace_by_position(result, std::move(col_res));
434
68
        } else if (!left_is_const && right_is_const) {
435
0
            auto col_res = ColumnUInt8::create();
436
437
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
0
            vec_res.resize(col_left->size());
439
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
0
                              typename PrimitiveTypeTraits<PT>::CppType,
441
0
                              Op<PT>>::vector_constant(col_left->get_data(),
442
0
                                                       col_right->get_element(0), vec_res);
443
444
0
            block.replace_by_position(result, std::move(col_res));
445
0
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
68
        return Status::OK();
458
68
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
2.14k
                            const ColumnPtr& col_right_ptr) const {
415
2.14k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
2.14k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
2.14k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
2.14k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
2.14k
        DCHECK(!(left_is_const && right_is_const));
422
423
2.14k
        if (!left_is_const && !right_is_const) {
424
1.78k
            auto col_res = ColumnUInt8::create();
425
426
1.78k
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
1.78k
            vec_res.resize(col_left->get_data().size());
428
1.78k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
1.78k
                              typename PrimitiveTypeTraits<PT>::CppType,
430
1.78k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
1.78k
                                                     vec_res);
432
433
1.78k
            block.replace_by_position(result, std::move(col_res));
434
1.78k
        } else if (!left_is_const && right_is_const) {
435
365
            auto col_res = ColumnUInt8::create();
436
437
365
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
365
            vec_res.resize(col_left->size());
439
365
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
365
                              typename PrimitiveTypeTraits<PT>::CppType,
441
365
                              Op<PT>>::vector_constant(col_left->get_data(),
442
365
                                                       col_right->get_element(0), vec_res);
443
444
365
            block.replace_by_position(result, std::move(col_res));
445
365
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
2.14k
        return Status::OK();
458
2.14k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
300
                            const ColumnPtr& col_right_ptr) const {
415
300
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
300
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
300
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
300
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
300
        DCHECK(!(left_is_const && right_is_const));
422
423
300
        if (!left_is_const && !right_is_const) {
424
241
            auto col_res = ColumnUInt8::create();
425
426
241
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
241
            vec_res.resize(col_left->get_data().size());
428
241
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
241
                              typename PrimitiveTypeTraits<PT>::CppType,
430
241
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
241
                                                     vec_res);
432
433
241
            block.replace_by_position(result, std::move(col_res));
434
241
        } else if (!left_is_const && right_is_const) {
435
59
            auto col_res = ColumnUInt8::create();
436
437
59
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
59
            vec_res.resize(col_left->size());
439
59
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
59
                              typename PrimitiveTypeTraits<PT>::CppType,
441
59
                              Op<PT>>::vector_constant(col_left->get_data(),
442
59
                                                       col_right->get_element(0), vec_res);
443
444
59
            block.replace_by_position(result, std::move(col_res));
445
59
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
300
        return Status::OK();
458
300
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
2
                            const ColumnPtr& col_right_ptr) const {
415
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
2
        DCHECK(!(left_is_const && right_is_const));
422
423
2
        if (!left_is_const && !right_is_const) {
424
1
            auto col_res = ColumnUInt8::create();
425
426
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
1
            vec_res.resize(col_left->get_data().size());
428
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
1
                              typename PrimitiveTypeTraits<PT>::CppType,
430
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
1
                                                     vec_res);
432
433
1
            block.replace_by_position(result, std::move(col_res));
434
1
        } else if (!left_is_const && right_is_const) {
435
1
            auto col_res = ColumnUInt8::create();
436
437
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
1
            vec_res.resize(col_left->size());
439
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
1
                              typename PrimitiveTypeTraits<PT>::CppType,
441
1
                              Op<PT>>::vector_constant(col_left->get_data(),
442
1
                                                       col_right->get_element(0), vec_res);
443
444
1
            block.replace_by_position(result, std::move(col_res));
445
1
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
2
        return Status::OK();
458
2
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
2.06k
                            const ColumnPtr& col_right_ptr) const {
415
2.06k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
2.06k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
2.06k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
2.06k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
2.06k
        DCHECK(!(left_is_const && right_is_const));
422
423
2.06k
        if (!left_is_const && !right_is_const) {
424
129
            auto col_res = ColumnUInt8::create();
425
426
129
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
129
            vec_res.resize(col_left->get_data().size());
428
129
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
129
                              typename PrimitiveTypeTraits<PT>::CppType,
430
129
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
129
                                                     vec_res);
432
433
129
            block.replace_by_position(result, std::move(col_res));
434
1.93k
        } else if (!left_is_const && right_is_const) {
435
1.75k
            auto col_res = ColumnUInt8::create();
436
437
1.75k
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
1.75k
            vec_res.resize(col_left->size());
439
1.75k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
1.75k
                              typename PrimitiveTypeTraits<PT>::CppType,
441
1.75k
                              Op<PT>>::vector_constant(col_left->get_data(),
442
1.75k
                                                       col_right->get_element(0), vec_res);
443
444
1.75k
            block.replace_by_position(result, std::move(col_res));
445
1.75k
        } else if (left_is_const && !right_is_const) {
446
180
            auto col_res = ColumnUInt8::create();
447
448
180
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
180
            vec_res.resize(col_right->size());
450
180
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
180
                              typename PrimitiveTypeTraits<PT>::CppType,
452
180
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
180
                                                       col_right->get_data(), vec_res);
454
455
180
            block.replace_by_position(result, std::move(col_res));
456
180
        }
457
2.06k
        return Status::OK();
458
2.06k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
129
                            const ColumnPtr& col_right_ptr) const {
415
129
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
129
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
129
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
129
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
129
        DCHECK(!(left_is_const && right_is_const));
422
423
129
        if (!left_is_const && !right_is_const) {
424
115
            auto col_res = ColumnUInt8::create();
425
426
115
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
115
            vec_res.resize(col_left->get_data().size());
428
115
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
115
                              typename PrimitiveTypeTraits<PT>::CppType,
430
115
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
115
                                                     vec_res);
432
433
115
            block.replace_by_position(result, std::move(col_res));
434
115
        } else if (!left_is_const && right_is_const) {
435
14
            auto col_res = ColumnUInt8::create();
436
437
14
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
14
            vec_res.resize(col_left->size());
439
14
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
14
                              typename PrimitiveTypeTraits<PT>::CppType,
441
14
                              Op<PT>>::vector_constant(col_left->get_data(),
442
14
                                                       col_right->get_element(0), vec_res);
443
444
14
            block.replace_by_position(result, std::move(col_res));
445
14
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
129
        return Status::OK();
458
129
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
951
                            const ColumnPtr& col_right_ptr) const {
415
951
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
951
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
951
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
951
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
951
        DCHECK(!(left_is_const && right_is_const));
422
423
951
        if (!left_is_const && !right_is_const) {
424
291
            auto col_res = ColumnUInt8::create();
425
426
291
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
291
            vec_res.resize(col_left->get_data().size());
428
291
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
291
                              typename PrimitiveTypeTraits<PT>::CppType,
430
291
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
291
                                                     vec_res);
432
433
291
            block.replace_by_position(result, std::move(col_res));
434
660
        } else if (!left_is_const && right_is_const) {
435
635
            auto col_res = ColumnUInt8::create();
436
437
635
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
635
            vec_res.resize(col_left->size());
439
635
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
635
                              typename PrimitiveTypeTraits<PT>::CppType,
441
635
                              Op<PT>>::vector_constant(col_left->get_data(),
442
635
                                                       col_right->get_element(0), vec_res);
443
444
635
            block.replace_by_position(result, std::move(col_res));
445
635
        } else if (left_is_const && !right_is_const) {
446
25
            auto col_res = ColumnUInt8::create();
447
448
25
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
25
            vec_res.resize(col_right->size());
450
25
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
25
                              typename PrimitiveTypeTraits<PT>::CppType,
452
25
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
25
                                                       col_right->get_data(), vec_res);
454
455
25
            block.replace_by_position(result, std::move(col_res));
456
25
        }
457
951
        return Status::OK();
458
951
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
776
                            const ColumnPtr& col_right_ptr) const {
415
776
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
776
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
776
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
776
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
776
        DCHECK(!(left_is_const && right_is_const));
422
423
776
        if (!left_is_const && !right_is_const) {
424
201
            auto col_res = ColumnUInt8::create();
425
426
201
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
201
            vec_res.resize(col_left->get_data().size());
428
201
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
201
                              typename PrimitiveTypeTraits<PT>::CppType,
430
201
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
201
                                                     vec_res);
432
433
201
            block.replace_by_position(result, std::move(col_res));
434
575
        } else if (!left_is_const && right_is_const) {
435
500
            auto col_res = ColumnUInt8::create();
436
437
500
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
500
            vec_res.resize(col_left->size());
439
500
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
500
                              typename PrimitiveTypeTraits<PT>::CppType,
441
500
                              Op<PT>>::vector_constant(col_left->get_data(),
442
500
                                                       col_right->get_element(0), vec_res);
443
444
500
            block.replace_by_position(result, std::move(col_res));
445
500
        } else if (left_is_const && !right_is_const) {
446
75
            auto col_res = ColumnUInt8::create();
447
448
75
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
75
            vec_res.resize(col_right->size());
450
75
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
75
                              typename PrimitiveTypeTraits<PT>::CppType,
452
75
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
75
                                                       col_right->get_data(), vec_res);
454
455
75
            block.replace_by_position(result, std::move(col_res));
456
75
        }
457
776
        return Status::OK();
458
776
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
280
                            const ColumnPtr& col_right_ptr) const {
415
280
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
280
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
280
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
280
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
280
        DCHECK(!(left_is_const && right_is_const));
422
423
280
        if (!left_is_const && !right_is_const) {
424
138
            auto col_res = ColumnUInt8::create();
425
426
138
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
138
            vec_res.resize(col_left->get_data().size());
428
138
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
138
                              typename PrimitiveTypeTraits<PT>::CppType,
430
138
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
138
                                                     vec_res);
432
433
138
            block.replace_by_position(result, std::move(col_res));
434
142
        } else if (!left_is_const && right_is_const) {
435
46
            auto col_res = ColumnUInt8::create();
436
437
46
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
46
            vec_res.resize(col_left->size());
439
46
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
46
                              typename PrimitiveTypeTraits<PT>::CppType,
441
46
                              Op<PT>>::vector_constant(col_left->get_data(),
442
46
                                                       col_right->get_element(0), vec_res);
443
444
46
            block.replace_by_position(result, std::move(col_res));
445
96
        } else if (left_is_const && !right_is_const) {
446
96
            auto col_res = ColumnUInt8::create();
447
448
96
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
96
            vec_res.resize(col_right->size());
450
96
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
96
                              typename PrimitiveTypeTraits<PT>::CppType,
452
96
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
96
                                                       col_right->get_data(), vec_res);
454
455
96
            block.replace_by_position(result, std::move(col_res));
456
96
        }
457
280
        return Status::OK();
458
280
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
18
                            const ColumnPtr& col_right_ptr) const {
415
18
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
18
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
18
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
18
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
18
        DCHECK(!(left_is_const && right_is_const));
422
423
18
        if (!left_is_const && !right_is_const) {
424
16
            auto col_res = ColumnUInt8::create();
425
426
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
16
            vec_res.resize(col_left->get_data().size());
428
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
16
                              typename PrimitiveTypeTraits<PT>::CppType,
430
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
16
                                                     vec_res);
432
433
16
            block.replace_by_position(result, std::move(col_res));
434
16
        } else if (!left_is_const && right_is_const) {
435
2
            auto col_res = ColumnUInt8::create();
436
437
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
2
            vec_res.resize(col_left->size());
439
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
2
                              typename PrimitiveTypeTraits<PT>::CppType,
441
2
                              Op<PT>>::vector_constant(col_left->get_data(),
442
2
                                                       col_right->get_element(0), vec_res);
443
444
2
            block.replace_by_position(result, std::move(col_res));
445
2
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
18
        return Status::OK();
458
18
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
16
                            const ColumnPtr& col_right_ptr) const {
415
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
16
        DCHECK(!(left_is_const && right_is_const));
422
423
16
        if (!left_is_const && !right_is_const) {
424
16
            auto col_res = ColumnUInt8::create();
425
426
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
16
            vec_res.resize(col_left->get_data().size());
428
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
16
                              typename PrimitiveTypeTraits<PT>::CppType,
430
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
16
                                                     vec_res);
432
433
16
            block.replace_by_position(result, std::move(col_res));
434
16
        } else if (!left_is_const && right_is_const) {
435
0
            auto col_res = ColumnUInt8::create();
436
437
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
0
            vec_res.resize(col_left->size());
439
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
0
                              typename PrimitiveTypeTraits<PT>::CppType,
441
0
                              Op<PT>>::vector_constant(col_left->get_data(),
442
0
                                                       col_right->get_element(0), vec_res);
443
444
0
            block.replace_by_position(result, std::move(col_res));
445
0
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
16
        return Status::OK();
458
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
123
                            const ColumnPtr& col_right_ptr) const {
415
123
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
123
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
123
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
123
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
123
        DCHECK(!(left_is_const && right_is_const));
422
423
123
        if (!left_is_const && !right_is_const) {
424
123
            auto col_res = ColumnUInt8::create();
425
426
123
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
123
            vec_res.resize(col_left->get_data().size());
428
123
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
123
                              typename PrimitiveTypeTraits<PT>::CppType,
430
123
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
123
                                                     vec_res);
432
433
123
            block.replace_by_position(result, std::move(col_res));
434
123
        } else if (!left_is_const && right_is_const) {
435
0
            auto col_res = ColumnUInt8::create();
436
437
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
0
            vec_res.resize(col_left->size());
439
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
0
                              typename PrimitiveTypeTraits<PT>::CppType,
441
0
                              Op<PT>>::vector_constant(col_left->get_data(),
442
0
                                                       col_right->get_element(0), vec_res);
443
444
0
            block.replace_by_position(result, std::move(col_res));
445
0
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
123
        return Status::OK();
458
123
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
327
                            const ColumnPtr& col_right_ptr) const {
415
327
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
327
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
327
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
327
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
327
        DCHECK(!(left_is_const && right_is_const));
422
423
327
        if (!left_is_const && !right_is_const) {
424
130
            auto col_res = ColumnUInt8::create();
425
426
130
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
130
            vec_res.resize(col_left->get_data().size());
428
130
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
130
                              typename PrimitiveTypeTraits<PT>::CppType,
430
130
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
130
                                                     vec_res);
432
433
130
            block.replace_by_position(result, std::move(col_res));
434
197
        } else if (!left_is_const && right_is_const) {
435
197
            auto col_res = ColumnUInt8::create();
436
437
197
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
197
            vec_res.resize(col_left->size());
439
197
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
197
                              typename PrimitiveTypeTraits<PT>::CppType,
441
197
                              Op<PT>>::vector_constant(col_left->get_data(),
442
197
                                                       col_right->get_element(0), vec_res);
443
444
197
            block.replace_by_position(result, std::move(col_res));
445
197
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
327
        return Status::OK();
458
327
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
22
                            const ColumnPtr& col_right_ptr) const {
415
22
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
22
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
22
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
22
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
22
        DCHECK(!(left_is_const && right_is_const));
422
423
22
        if (!left_is_const && !right_is_const) {
424
0
            auto col_res = ColumnUInt8::create();
425
426
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
0
            vec_res.resize(col_left->get_data().size());
428
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
0
                              typename PrimitiveTypeTraits<PT>::CppType,
430
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
0
                                                     vec_res);
432
433
0
            block.replace_by_position(result, std::move(col_res));
434
22
        } else if (!left_is_const && right_is_const) {
435
22
            auto col_res = ColumnUInt8::create();
436
437
22
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
22
            vec_res.resize(col_left->size());
439
22
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
22
                              typename PrimitiveTypeTraits<PT>::CppType,
441
22
                              Op<PT>>::vector_constant(col_left->get_data(),
442
22
                                                       col_right->get_element(0), vec_res);
443
444
22
            block.replace_by_position(result, std::move(col_res));
445
22
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
22
        return Status::OK();
458
22
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
527
                            const ColumnPtr& col_right_ptr) const {
415
527
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
527
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
527
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
527
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
527
        DCHECK(!(left_is_const && right_is_const));
422
423
527
        if (!left_is_const && !right_is_const) {
424
395
            auto col_res = ColumnUInt8::create();
425
426
395
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
395
            vec_res.resize(col_left->get_data().size());
428
395
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
395
                              typename PrimitiveTypeTraits<PT>::CppType,
430
395
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
395
                                                     vec_res);
432
433
395
            block.replace_by_position(result, std::move(col_res));
434
395
        } else if (!left_is_const && right_is_const) {
435
128
            auto col_res = ColumnUInt8::create();
436
437
128
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
128
            vec_res.resize(col_left->size());
439
128
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
128
                              typename PrimitiveTypeTraits<PT>::CppType,
441
128
                              Op<PT>>::vector_constant(col_left->get_data(),
442
128
                                                       col_right->get_element(0), vec_res);
443
444
128
            block.replace_by_position(result, std::move(col_res));
445
128
        } else if (left_is_const && !right_is_const) {
446
5
            auto col_res = ColumnUInt8::create();
447
448
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
5
            vec_res.resize(col_right->size());
450
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
5
                              typename PrimitiveTypeTraits<PT>::CppType,
452
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
5
                                                       col_right->get_data(), vec_res);
454
455
5
            block.replace_by_position(result, std::move(col_res));
456
5
        }
457
527
        return Status::OK();
458
527
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
44
                            const ColumnPtr& col_right_ptr) const {
415
44
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
44
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
44
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
44
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
44
        DCHECK(!(left_is_const && right_is_const));
422
423
44
        if (!left_is_const && !right_is_const) {
424
0
            auto col_res = ColumnUInt8::create();
425
426
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
0
            vec_res.resize(col_left->get_data().size());
428
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
0
                              typename PrimitiveTypeTraits<PT>::CppType,
430
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
0
                                                     vec_res);
432
433
0
            block.replace_by_position(result, std::move(col_res));
434
44
        } else if (!left_is_const && right_is_const) {
435
44
            auto col_res = ColumnUInt8::create();
436
437
44
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
44
            vec_res.resize(col_left->size());
439
44
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
44
                              typename PrimitiveTypeTraits<PT>::CppType,
441
44
                              Op<PT>>::vector_constant(col_left->get_data(),
442
44
                                                       col_right->get_element(0), vec_res);
443
444
44
            block.replace_by_position(result, std::move(col_res));
445
44
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
44
        return Status::OK();
458
44
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
1
                            const ColumnPtr& col_right_ptr) const {
415
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
1
        DCHECK(!(left_is_const && right_is_const));
422
423
1
        if (!left_is_const && !right_is_const) {
424
1
            auto col_res = ColumnUInt8::create();
425
426
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
1
            vec_res.resize(col_left->get_data().size());
428
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
1
                              typename PrimitiveTypeTraits<PT>::CppType,
430
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
1
                                                     vec_res);
432
433
1
            block.replace_by_position(result, std::move(col_res));
434
1
        } else if (!left_is_const && right_is_const) {
435
0
            auto col_res = ColumnUInt8::create();
436
437
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
0
            vec_res.resize(col_left->size());
439
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
0
                              typename PrimitiveTypeTraits<PT>::CppType,
441
0
                              Op<PT>>::vector_constant(col_left->get_data(),
442
0
                                                       col_right->get_element(0), vec_res);
443
444
0
            block.replace_by_position(result, std::move(col_res));
445
0
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
1
        return Status::OK();
458
1
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
40
                            const ColumnPtr& col_right_ptr) const {
415
40
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
40
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
40
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
40
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
40
        DCHECK(!(left_is_const && right_is_const));
422
423
40
        if (!left_is_const && !right_is_const) {
424
1
            auto col_res = ColumnUInt8::create();
425
426
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
1
            vec_res.resize(col_left->get_data().size());
428
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
1
                              typename PrimitiveTypeTraits<PT>::CppType,
430
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
1
                                                     vec_res);
432
433
1
            block.replace_by_position(result, std::move(col_res));
434
39
        } else if (!left_is_const && right_is_const) {
435
39
            auto col_res = ColumnUInt8::create();
436
437
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
39
            vec_res.resize(col_left->size());
439
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
39
                              typename PrimitiveTypeTraits<PT>::CppType,
441
39
                              Op<PT>>::vector_constant(col_left->get_data(),
442
39
                                                       col_right->get_element(0), vec_res);
443
444
39
            block.replace_by_position(result, std::move(col_res));
445
39
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
40
        return Status::OK();
458
40
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
57
                            const ColumnPtr& col_right_ptr) const {
415
57
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
57
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
57
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
57
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
57
        DCHECK(!(left_is_const && right_is_const));
422
423
57
        if (!left_is_const && !right_is_const) {
424
0
            auto col_res = ColumnUInt8::create();
425
426
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
0
            vec_res.resize(col_left->get_data().size());
428
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
0
                              typename PrimitiveTypeTraits<PT>::CppType,
430
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
0
                                                     vec_res);
432
433
0
            block.replace_by_position(result, std::move(col_res));
434
57
        } else if (!left_is_const && right_is_const) {
435
57
            auto col_res = ColumnUInt8::create();
436
437
57
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
57
            vec_res.resize(col_left->size());
439
57
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
57
                              typename PrimitiveTypeTraits<PT>::CppType,
441
57
                              Op<PT>>::vector_constant(col_left->get_data(),
442
57
                                                       col_right->get_element(0), vec_res);
443
444
57
            block.replace_by_position(result, std::move(col_res));
445
57
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
57
        return Status::OK();
458
57
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
6.32k
                            const ColumnPtr& col_right_ptr) const {
415
6.32k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
6.32k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
6.32k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
6.32k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
6.32k
        DCHECK(!(left_is_const && right_is_const));
422
423
6.32k
        if (!left_is_const && !right_is_const) {
424
23
            auto col_res = ColumnUInt8::create();
425
426
23
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
23
            vec_res.resize(col_left->get_data().size());
428
23
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
23
                              typename PrimitiveTypeTraits<PT>::CppType,
430
23
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
23
                                                     vec_res);
432
433
23
            block.replace_by_position(result, std::move(col_res));
434
6.30k
        } else if (!left_is_const && right_is_const) {
435
5.82k
            auto col_res = ColumnUInt8::create();
436
437
5.82k
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
5.82k
            vec_res.resize(col_left->size());
439
5.82k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
5.82k
                              typename PrimitiveTypeTraits<PT>::CppType,
441
5.82k
                              Op<PT>>::vector_constant(col_left->get_data(),
442
5.82k
                                                       col_right->get_element(0), vec_res);
443
444
5.82k
            block.replace_by_position(result, std::move(col_res));
445
5.82k
        } else if (left_is_const && !right_is_const) {
446
476
            auto col_res = ColumnUInt8::create();
447
448
476
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
476
            vec_res.resize(col_right->size());
450
476
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
476
                              typename PrimitiveTypeTraits<PT>::CppType,
452
476
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
476
                                                       col_right->get_data(), vec_res);
454
455
476
            block.replace_by_position(result, std::move(col_res));
456
476
        }
457
6.32k
        return Status::OK();
458
6.32k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
349
                            const ColumnPtr& col_right_ptr) const {
415
349
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
349
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
349
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
349
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
349
        DCHECK(!(left_is_const && right_is_const));
422
423
349
        if (!left_is_const && !right_is_const) {
424
68
            auto col_res = ColumnUInt8::create();
425
426
68
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
68
            vec_res.resize(col_left->get_data().size());
428
68
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
68
                              typename PrimitiveTypeTraits<PT>::CppType,
430
68
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
68
                                                     vec_res);
432
433
68
            block.replace_by_position(result, std::move(col_res));
434
281
        } else if (!left_is_const && right_is_const) {
435
233
            auto col_res = ColumnUInt8::create();
436
437
233
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
233
            vec_res.resize(col_left->size());
439
233
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
233
                              typename PrimitiveTypeTraits<PT>::CppType,
441
233
                              Op<PT>>::vector_constant(col_left->get_data(),
442
233
                                                       col_right->get_element(0), vec_res);
443
444
233
            block.replace_by_position(result, std::move(col_res));
445
233
        } else if (left_is_const && !right_is_const) {
446
48
            auto col_res = ColumnUInt8::create();
447
448
48
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
48
            vec_res.resize(col_right->size());
450
48
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
48
                              typename PrimitiveTypeTraits<PT>::CppType,
452
48
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
48
                                                       col_right->get_data(), vec_res);
454
455
48
            block.replace_by_position(result, std::move(col_res));
456
48
        }
457
349
        return Status::OK();
458
349
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
27
                            const ColumnPtr& col_right_ptr) const {
415
27
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
27
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
27
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
27
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
27
        DCHECK(!(left_is_const && right_is_const));
422
423
27
        if (!left_is_const && !right_is_const) {
424
0
            auto col_res = ColumnUInt8::create();
425
426
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
0
            vec_res.resize(col_left->get_data().size());
428
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
0
                              typename PrimitiveTypeTraits<PT>::CppType,
430
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
0
                                                     vec_res);
432
433
0
            block.replace_by_position(result, std::move(col_res));
434
27
        } else if (!left_is_const && right_is_const) {
435
27
            auto col_res = ColumnUInt8::create();
436
437
27
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
27
            vec_res.resize(col_left->size());
439
27
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
27
                              typename PrimitiveTypeTraits<PT>::CppType,
441
27
                              Op<PT>>::vector_constant(col_left->get_data(),
442
27
                                                       col_right->get_element(0), vec_res);
443
444
27
            block.replace_by_position(result, std::move(col_res));
445
27
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
27
        return Status::OK();
458
27
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
10
                            const ColumnPtr& col_right_ptr) const {
415
10
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
10
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
10
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
10
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
10
        DCHECK(!(left_is_const && right_is_const));
422
423
10
        if (!left_is_const && !right_is_const) {
424
0
            auto col_res = ColumnUInt8::create();
425
426
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
0
            vec_res.resize(col_left->get_data().size());
428
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
0
                              typename PrimitiveTypeTraits<PT>::CppType,
430
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
0
                                                     vec_res);
432
433
0
            block.replace_by_position(result, std::move(col_res));
434
10
        } else if (!left_is_const && right_is_const) {
435
10
            auto col_res = ColumnUInt8::create();
436
437
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
10
            vec_res.resize(col_left->size());
439
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
10
                              typename PrimitiveTypeTraits<PT>::CppType,
441
10
                              Op<PT>>::vector_constant(col_left->get_data(),
442
10
                                                       col_right->get_element(0), vec_res);
443
444
10
            block.replace_by_position(result, std::move(col_res));
445
10
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
10
        return Status::OK();
458
10
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
20
                            const ColumnPtr& col_right_ptr) const {
415
20
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
20
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
20
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
20
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
20
        DCHECK(!(left_is_const && right_is_const));
422
423
20
        if (!left_is_const && !right_is_const) {
424
20
            auto col_res = ColumnUInt8::create();
425
426
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
20
            vec_res.resize(col_left->get_data().size());
428
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
20
                              typename PrimitiveTypeTraits<PT>::CppType,
430
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
20
                                                     vec_res);
432
433
20
            block.replace_by_position(result, std::move(col_res));
434
20
        } else if (!left_is_const && right_is_const) {
435
0
            auto col_res = ColumnUInt8::create();
436
437
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
0
            vec_res.resize(col_left->size());
439
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
0
                              typename PrimitiveTypeTraits<PT>::CppType,
441
0
                              Op<PT>>::vector_constant(col_left->get_data(),
442
0
                                                       col_right->get_element(0), vec_res);
443
444
0
            block.replace_by_position(result, std::move(col_res));
445
0
        } else if (left_is_const && !right_is_const) {
446
0
            auto col_res = ColumnUInt8::create();
447
448
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
0
            vec_res.resize(col_right->size());
450
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
0
                              typename PrimitiveTypeTraits<PT>::CppType,
452
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
0
                                                       col_right->get_data(), vec_res);
454
455
0
            block.replace_by_position(result, std::move(col_res));
456
0
        }
457
20
        return Status::OK();
458
20
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
414
126
                            const ColumnPtr& col_right_ptr) const {
415
126
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
416
126
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
417
418
126
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
419
126
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
420
421
126
        DCHECK(!(left_is_const && right_is_const));
422
423
126
        if (!left_is_const && !right_is_const) {
424
20
            auto col_res = ColumnUInt8::create();
425
426
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
427
20
            vec_res.resize(col_left->get_data().size());
428
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
429
20
                              typename PrimitiveTypeTraits<PT>::CppType,
430
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
431
20
                                                     vec_res);
432
433
20
            block.replace_by_position(result, std::move(col_res));
434
106
        } else if (!left_is_const && right_is_const) {
435
105
            auto col_res = ColumnUInt8::create();
436
437
105
            ColumnUInt8::Container& vec_res = col_res->get_data();
438
105
            vec_res.resize(col_left->size());
439
105
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
440
105
                              typename PrimitiveTypeTraits<PT>::CppType,
441
105
                              Op<PT>>::vector_constant(col_left->get_data(),
442
105
                                                       col_right->get_element(0), vec_res);
443
444
105
            block.replace_by_position(result, std::move(col_res));
445
105
        } else if (left_is_const && !right_is_const) {
446
1
            auto col_res = ColumnUInt8::create();
447
448
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
449
1
            vec_res.resize(col_right->size());
450
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
451
1
                              typename PrimitiveTypeTraits<PT>::CppType,
452
1
                              Op<PT>>::constant_vector(col_left->get_element(0),
453
1
                                                       col_right->get_data(), vec_res);
454
455
1
            block.replace_by_position(result, std::move(col_res));
456
1
        }
457
126
        return Status::OK();
458
126
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
459
460
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
461
3.18k
                           const ColumnWithTypeAndName& col_right) const {
462
3.18k
        auto call = [&](const auto& type) -> bool {
463
3.18k
            using DispatchType = std::decay_t<decltype(type)>;
464
3.18k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
3.18k
                    block, result, col_left, col_right);
466
3.18k
            return true;
467
3.18k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
462
158
        auto call = [&](const auto& type) -> bool {
463
158
            using DispatchType = std::decay_t<decltype(type)>;
464
158
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
158
                    block, result, col_left, col_right);
466
158
            return true;
467
158
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
462
178
        auto call = [&](const auto& type) -> bool {
463
178
            using DispatchType = std::decay_t<decltype(type)>;
464
178
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
178
                    block, result, col_left, col_right);
466
178
            return true;
467
178
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
462
873
        auto call = [&](const auto& type) -> bool {
463
873
            using DispatchType = std::decay_t<decltype(type)>;
464
873
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
873
                    block, result, col_left, col_right);
466
873
            return true;
467
873
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
462
30
        auto call = [&](const auto& type) -> bool {
463
30
            using DispatchType = std::decay_t<decltype(type)>;
464
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
30
                    block, result, col_left, col_right);
466
30
            return true;
467
30
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
462
61
        auto call = [&](const auto& type) -> bool {
463
61
            using DispatchType = std::decay_t<decltype(type)>;
464
61
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
61
                    block, result, col_left, col_right);
466
61
            return true;
467
61
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
462
28
        auto call = [&](const auto& type) -> bool {
463
28
            using DispatchType = std::decay_t<decltype(type)>;
464
28
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
28
                    block, result, col_left, col_right);
466
28
            return true;
467
28
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
462
30
        auto call = [&](const auto& type) -> bool {
463
30
            using DispatchType = std::decay_t<decltype(type)>;
464
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
30
                    block, result, col_left, col_right);
466
30
            return true;
467
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
462
8
        auto call = [&](const auto& type) -> bool {
463
8
            using DispatchType = std::decay_t<decltype(type)>;
464
8
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
8
                    block, result, col_left, col_right);
466
8
            return true;
467
8
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
462
66
        auto call = [&](const auto& type) -> bool {
463
66
            using DispatchType = std::decay_t<decltype(type)>;
464
66
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
66
                    block, result, col_left, col_right);
466
66
            return true;
467
66
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
462
696
        auto call = [&](const auto& type) -> bool {
463
696
            using DispatchType = std::decay_t<decltype(type)>;
464
696
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
696
                    block, result, col_left, col_right);
466
696
            return true;
467
696
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
462
2
        auto call = [&](const auto& type) -> bool {
463
2
            using DispatchType = std::decay_t<decltype(type)>;
464
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
2
                    block, result, col_left, col_right);
466
2
            return true;
467
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
462
1
        auto call = [&](const auto& type) -> bool {
463
1
            using DispatchType = std::decay_t<decltype(type)>;
464
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
1
                    block, result, col_left, col_right);
466
1
            return true;
467
1
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
462
64
        auto call = [&](const auto& type) -> bool {
463
64
            using DispatchType = std::decay_t<decltype(type)>;
464
64
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
64
                    block, result, col_left, col_right);
466
64
            return true;
467
64
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
462
90
        auto call = [&](const auto& type) -> bool {
463
90
            using DispatchType = std::decay_t<decltype(type)>;
464
90
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
90
                    block, result, col_left, col_right);
466
90
            return true;
467
90
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
462
27
        auto call = [&](const auto& type) -> bool {
463
27
            using DispatchType = std::decay_t<decltype(type)>;
464
27
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
27
                    block, result, col_left, col_right);
466
27
            return true;
467
27
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
462
193
        auto call = [&](const auto& type) -> bool {
463
193
            using DispatchType = std::decay_t<decltype(type)>;
464
193
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
193
                    block, result, col_left, col_right);
466
193
            return true;
467
193
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
462
215
        auto call = [&](const auto& type) -> bool {
463
215
            using DispatchType = std::decay_t<decltype(type)>;
464
215
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
215
                    block, result, col_left, col_right);
466
215
            return true;
467
215
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
462
289
        auto call = [&](const auto& type) -> bool {
463
289
            using DispatchType = std::decay_t<decltype(type)>;
464
289
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
289
                    block, result, col_left, col_right);
466
289
            return true;
467
289
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
462
1
        auto call = [&](const auto& type) -> bool {
463
1
            using DispatchType = std::decay_t<decltype(type)>;
464
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
1
                    block, result, col_left, col_right);
466
1
            return true;
467
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
462
4
        auto call = [&](const auto& type) -> bool {
463
4
            using DispatchType = std::decay_t<decltype(type)>;
464
4
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
4
                    block, result, col_left, col_right);
466
4
            return true;
467
4
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
462
74
        auto call = [&](const auto& type) -> bool {
463
74
            using DispatchType = std::decay_t<decltype(type)>;
464
74
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
74
                    block, result, col_left, col_right);
466
74
            return true;
467
74
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
462
73
        auto call = [&](const auto& type) -> bool {
463
73
            using DispatchType = std::decay_t<decltype(type)>;
464
73
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
73
                    block, result, col_left, col_right);
466
73
            return true;
467
73
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
462
22
        auto call = [&](const auto& type) -> bool {
463
22
            using DispatchType = std::decay_t<decltype(type)>;
464
22
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
22
                    block, result, col_left, col_right);
466
22
            return true;
467
22
        };
468
469
3.18k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
470
0
            return Status::RuntimeError(
471
0
                    "type of left column {} is not equal to type of right column {}",
472
0
                    col_left.type->get_name(), col_right.type->get_name());
473
0
        }
474
475
3.18k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
476
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
477
0
                                        col_left.type->get_name(), col_right.type->get_name());
478
0
        }
479
3.18k
        return Status::OK();
480
3.18k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
461
1.24k
                           const ColumnWithTypeAndName& col_right) const {
462
1.24k
        auto call = [&](const auto& type) -> bool {
463
1.24k
            using DispatchType = std::decay_t<decltype(type)>;
464
1.24k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
1.24k
                    block, result, col_left, col_right);
466
1.24k
            return true;
467
1.24k
        };
468
469
1.24k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
470
0
            return Status::RuntimeError(
471
0
                    "type of left column {} is not equal to type of right column {}",
472
0
                    col_left.type->get_name(), col_right.type->get_name());
473
0
        }
474
475
1.24k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
476
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
477
0
                                        col_left.type->get_name(), col_right.type->get_name());
478
0
        }
479
1.24k
        return Status::OK();
480
1.24k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
461
119
                           const ColumnWithTypeAndName& col_right) const {
462
119
        auto call = [&](const auto& type) -> bool {
463
119
            using DispatchType = std::decay_t<decltype(type)>;
464
119
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
119
                    block, result, col_left, col_right);
466
119
            return true;
467
119
        };
468
469
119
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
470
0
            return Status::RuntimeError(
471
0
                    "type of left column {} is not equal to type of right column {}",
472
0
                    col_left.type->get_name(), col_right.type->get_name());
473
0
        }
474
475
119
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
476
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
477
0
                                        col_left.type->get_name(), col_right.type->get_name());
478
0
        }
479
119
        return Status::OK();
480
119
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
461
772
                           const ColumnWithTypeAndName& col_right) const {
462
772
        auto call = [&](const auto& type) -> bool {
463
772
            using DispatchType = std::decay_t<decltype(type)>;
464
772
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
772
                    block, result, col_left, col_right);
466
772
            return true;
467
772
        };
468
469
772
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
470
0
            return Status::RuntimeError(
471
0
                    "type of left column {} is not equal to type of right column {}",
472
0
                    col_left.type->get_name(), col_right.type->get_name());
473
0
        }
474
475
772
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
476
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
477
0
                                        col_left.type->get_name(), col_right.type->get_name());
478
0
        }
479
772
        return Status::OK();
480
772
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
461
182
                           const ColumnWithTypeAndName& col_right) const {
462
182
        auto call = [&](const auto& type) -> bool {
463
182
            using DispatchType = std::decay_t<decltype(type)>;
464
182
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
182
                    block, result, col_left, col_right);
466
182
            return true;
467
182
        };
468
469
182
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
470
0
            return Status::RuntimeError(
471
0
                    "type of left column {} is not equal to type of right column {}",
472
0
                    col_left.type->get_name(), col_right.type->get_name());
473
0
        }
474
475
182
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
476
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
477
0
                                        col_left.type->get_name(), col_right.type->get_name());
478
0
        }
479
182
        return Status::OK();
480
182
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
461
698
                           const ColumnWithTypeAndName& col_right) const {
462
698
        auto call = [&](const auto& type) -> bool {
463
698
            using DispatchType = std::decay_t<decltype(type)>;
464
698
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
698
                    block, result, col_left, col_right);
466
698
            return true;
467
698
        };
468
469
698
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
470
0
            return Status::RuntimeError(
471
0
                    "type of left column {} is not equal to type of right column {}",
472
0
                    col_left.type->get_name(), col_right.type->get_name());
473
0
        }
474
475
698
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
476
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
477
0
                                        col_left.type->get_name(), col_right.type->get_name());
478
0
        }
479
698
        return Status::OK();
480
698
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
461
173
                           const ColumnWithTypeAndName& col_right) const {
462
173
        auto call = [&](const auto& type) -> bool {
463
173
            using DispatchType = std::decay_t<decltype(type)>;
464
173
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
465
173
                    block, result, col_left, col_right);
466
173
            return true;
467
173
        };
468
469
173
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
470
0
            return Status::RuntimeError(
471
0
                    "type of left column {} is not equal to type of right column {}",
472
0
                    col_left.type->get_name(), col_right.type->get_name());
473
0
        }
474
475
173
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
476
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
477
0
                                        col_left.type->get_name(), col_right.type->get_name());
478
0
        }
479
173
        return Status::OK();
480
173
    }
481
482
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
483
11.2k
                          const IColumn* c1) const {
484
11.2k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
485
11.2k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
486
11.2k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
487
11.2k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
488
11.2k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
489
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
490
0
                                        c0->get_name(), c1->get_name(), name);
491
0
        }
492
11.2k
        DCHECK(!(c0_const && c1_const));
493
11.2k
        const ColumnString::Chars* c0_const_chars = nullptr;
494
11.2k
        const ColumnString::Chars* c1_const_chars = nullptr;
495
11.2k
        ColumnString::Offset c0_const_size = 0;
496
11.2k
        ColumnString::Offset c1_const_size = 0;
497
498
11.2k
        if (c0_const) {
499
6
            const ColumnString* c0_const_string =
500
6
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
501
502
6
            if (c0_const_string) {
503
6
                c0_const_chars = &c0_const_string->get_chars();
504
6
                c0_const_size = c0_const_string->get_offsets()[0];
505
6
            } else {
506
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
507
0
                                            c0->get_name(), name);
508
0
            }
509
6
        }
510
511
11.2k
        if (c1_const) {
512
10.2k
            const ColumnString* c1_const_string =
513
10.2k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
514
515
10.2k
            if (c1_const_string) {
516
10.2k
                c1_const_chars = &c1_const_string->get_chars();
517
10.2k
                c1_const_size = c1_const_string->get_offsets()[0];
518
10.2k
            } else {
519
1
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
520
1
                                            c1->get_name(), name);
521
1
            }
522
10.2k
        }
523
524
11.2k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
525
526
11.2k
        auto c_res = ColumnUInt8::create();
527
11.2k
        ColumnUInt8::Container& vec_res = c_res->get_data();
528
11.2k
        vec_res.resize(c0->size());
529
530
11.2k
        if (c0_string && c1_string) {
531
949
            StringImpl::string_vector_string_vector(
532
949
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
533
949
                    c1_string->get_offsets(), vec_res);
534
10.2k
        } else if (c0_string && c1_const) {
535
10.2k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
536
10.2k
                                               *c1_const_chars, c1_const_size, vec_res);
537
10.2k
        } else if (c0_const && c1_string) {
538
6
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
539
6
                                               c1_string->get_chars(), c1_string->get_offsets(),
540
6
                                               vec_res);
541
18.4E
        } else {
542
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
543
18.4E
                                        c0->get_name(), c1->get_name(), name);
544
18.4E
        }
545
11.2k
        block.replace_by_position(result, std::move(c_res));
546
11.2k
        return Status::OK();
547
11.2k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
483
9.99k
                          const IColumn* c1) const {
484
9.99k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
485
9.99k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
486
9.99k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
487
9.99k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
488
9.99k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
489
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
490
0
                                        c0->get_name(), c1->get_name(), name);
491
0
        }
492
9.99k
        DCHECK(!(c0_const && c1_const));
493
9.99k
        const ColumnString::Chars* c0_const_chars = nullptr;
494
9.99k
        const ColumnString::Chars* c1_const_chars = nullptr;
495
9.99k
        ColumnString::Offset c0_const_size = 0;
496
9.99k
        ColumnString::Offset c1_const_size = 0;
497
498
9.99k
        if (c0_const) {
499
0
            const ColumnString* c0_const_string =
500
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
501
502
0
            if (c0_const_string) {
503
0
                c0_const_chars = &c0_const_string->get_chars();
504
0
                c0_const_size = c0_const_string->get_offsets()[0];
505
0
            } else {
506
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
507
0
                                            c0->get_name(), name);
508
0
            }
509
0
        }
510
511
9.99k
        if (c1_const) {
512
9.48k
            const ColumnString* c1_const_string =
513
9.48k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
514
515
9.48k
            if (c1_const_string) {
516
9.47k
                c1_const_chars = &c1_const_string->get_chars();
517
9.47k
                c1_const_size = c1_const_string->get_offsets()[0];
518
9.47k
            } else {
519
1
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
520
1
                                            c1->get_name(), name);
521
1
            }
522
9.48k
        }
523
524
9.99k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
525
526
9.99k
        auto c_res = ColumnUInt8::create();
527
9.99k
        ColumnUInt8::Container& vec_res = c_res->get_data();
528
9.99k
        vec_res.resize(c0->size());
529
530
9.99k
        if (c0_string && c1_string) {
531
513
            StringImpl::string_vector_string_vector(
532
513
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
533
513
                    c1_string->get_offsets(), vec_res);
534
9.48k
        } else if (c0_string && c1_const) {
535
9.48k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
536
9.48k
                                               *c1_const_chars, c1_const_size, vec_res);
537
18.4E
        } else if (c0_const && c1_string) {
538
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
539
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
540
0
                                               vec_res);
541
18.4E
        } else {
542
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
543
18.4E
                                        c0->get_name(), c1->get_name(), name);
544
18.4E
        }
545
9.99k
        block.replace_by_position(result, std::move(c_res));
546
9.99k
        return Status::OK();
547
9.99k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
483
87
                          const IColumn* c1) const {
484
87
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
485
87
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
486
87
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
487
87
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
488
87
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
489
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
490
0
                                        c0->get_name(), c1->get_name(), name);
491
0
        }
492
87
        DCHECK(!(c0_const && c1_const));
493
87
        const ColumnString::Chars* c0_const_chars = nullptr;
494
87
        const ColumnString::Chars* c1_const_chars = nullptr;
495
87
        ColumnString::Offset c0_const_size = 0;
496
87
        ColumnString::Offset c1_const_size = 0;
497
498
87
        if (c0_const) {
499
0
            const ColumnString* c0_const_string =
500
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
501
502
0
            if (c0_const_string) {
503
0
                c0_const_chars = &c0_const_string->get_chars();
504
0
                c0_const_size = c0_const_string->get_offsets()[0];
505
0
            } else {
506
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
507
0
                                            c0->get_name(), name);
508
0
            }
509
0
        }
510
511
87
        if (c1_const) {
512
86
            const ColumnString* c1_const_string =
513
86
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
514
515
86
            if (c1_const_string) {
516
86
                c1_const_chars = &c1_const_string->get_chars();
517
86
                c1_const_size = c1_const_string->get_offsets()[0];
518
86
            } else {
519
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
520
0
                                            c1->get_name(), name);
521
0
            }
522
86
        }
523
524
87
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
525
526
87
        auto c_res = ColumnUInt8::create();
527
87
        ColumnUInt8::Container& vec_res = c_res->get_data();
528
87
        vec_res.resize(c0->size());
529
530
87
        if (c0_string && c1_string) {
531
1
            StringImpl::string_vector_string_vector(
532
1
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
533
1
                    c1_string->get_offsets(), vec_res);
534
86
        } else if (c0_string && c1_const) {
535
86
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
536
86
                                               *c1_const_chars, c1_const_size, vec_res);
537
86
        } else if (c0_const && c1_string) {
538
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
539
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
540
0
                                               vec_res);
541
0
        } else {
542
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
543
0
                                        c0->get_name(), c1->get_name(), name);
544
0
        }
545
87
        block.replace_by_position(result, std::move(c_res));
546
87
        return Status::OK();
547
87
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
483
176
                          const IColumn* c1) const {
484
176
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
485
176
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
486
176
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
487
176
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
488
176
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
489
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
490
0
                                        c0->get_name(), c1->get_name(), name);
491
0
        }
492
176
        DCHECK(!(c0_const && c1_const));
493
176
        const ColumnString::Chars* c0_const_chars = nullptr;
494
176
        const ColumnString::Chars* c1_const_chars = nullptr;
495
176
        ColumnString::Offset c0_const_size = 0;
496
176
        ColumnString::Offset c1_const_size = 0;
497
498
176
        if (c0_const) {
499
0
            const ColumnString* c0_const_string =
500
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
501
502
0
            if (c0_const_string) {
503
0
                c0_const_chars = &c0_const_string->get_chars();
504
0
                c0_const_size = c0_const_string->get_offsets()[0];
505
0
            } else {
506
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
507
0
                                            c0->get_name(), name);
508
0
            }
509
0
        }
510
511
176
        if (c1_const) {
512
174
            const ColumnString* c1_const_string =
513
174
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
514
515
174
            if (c1_const_string) {
516
174
                c1_const_chars = &c1_const_string->get_chars();
517
174
                c1_const_size = c1_const_string->get_offsets()[0];
518
174
            } else {
519
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
520
0
                                            c1->get_name(), name);
521
0
            }
522
174
        }
523
524
176
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
525
526
176
        auto c_res = ColumnUInt8::create();
527
176
        ColumnUInt8::Container& vec_res = c_res->get_data();
528
176
        vec_res.resize(c0->size());
529
530
176
        if (c0_string && c1_string) {
531
2
            StringImpl::string_vector_string_vector(
532
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
533
2
                    c1_string->get_offsets(), vec_res);
534
174
        } else if (c0_string && c1_const) {
535
174
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
536
174
                                               *c1_const_chars, c1_const_size, vec_res);
537
174
        } else if (c0_const && c1_string) {
538
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
539
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
540
0
                                               vec_res);
541
0
        } else {
542
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
543
0
                                        c0->get_name(), c1->get_name(), name);
544
0
        }
545
176
        block.replace_by_position(result, std::move(c_res));
546
176
        return Status::OK();
547
176
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
483
286
                          const IColumn* c1) const {
484
286
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
485
286
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
486
286
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
487
286
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
488
286
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
489
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
490
0
                                        c0->get_name(), c1->get_name(), name);
491
0
        }
492
286
        DCHECK(!(c0_const && c1_const));
493
286
        const ColumnString::Chars* c0_const_chars = nullptr;
494
286
        const ColumnString::Chars* c1_const_chars = nullptr;
495
286
        ColumnString::Offset c0_const_size = 0;
496
286
        ColumnString::Offset c1_const_size = 0;
497
498
286
        if (c0_const) {
499
0
            const ColumnString* c0_const_string =
500
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
501
502
0
            if (c0_const_string) {
503
0
                c0_const_chars = &c0_const_string->get_chars();
504
0
                c0_const_size = c0_const_string->get_offsets()[0];
505
0
            } else {
506
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
507
0
                                            c0->get_name(), name);
508
0
            }
509
0
        }
510
511
286
        if (c1_const) {
512
250
            const ColumnString* c1_const_string =
513
250
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
514
515
250
            if (c1_const_string) {
516
250
                c1_const_chars = &c1_const_string->get_chars();
517
250
                c1_const_size = c1_const_string->get_offsets()[0];
518
250
            } else {
519
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
520
0
                                            c1->get_name(), name);
521
0
            }
522
250
        }
523
524
286
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
525
526
286
        auto c_res = ColumnUInt8::create();
527
286
        ColumnUInt8::Container& vec_res = c_res->get_data();
528
286
        vec_res.resize(c0->size());
529
530
286
        if (c0_string && c1_string) {
531
36
            StringImpl::string_vector_string_vector(
532
36
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
533
36
                    c1_string->get_offsets(), vec_res);
534
250
        } else if (c0_string && c1_const) {
535
250
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
536
250
                                               *c1_const_chars, c1_const_size, vec_res);
537
250
        } else if (c0_const && c1_string) {
538
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
539
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
540
0
                                               vec_res);
541
0
        } else {
542
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
543
0
                                        c0->get_name(), c1->get_name(), name);
544
0
        }
545
286
        block.replace_by_position(result, std::move(c_res));
546
286
        return Status::OK();
547
286
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
483
497
                          const IColumn* c1) const {
484
497
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
485
497
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
486
497
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
487
497
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
488
497
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
489
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
490
0
                                        c0->get_name(), c1->get_name(), name);
491
0
        }
492
497
        DCHECK(!(c0_const && c1_const));
493
497
        const ColumnString::Chars* c0_const_chars = nullptr;
494
497
        const ColumnString::Chars* c1_const_chars = nullptr;
495
497
        ColumnString::Offset c0_const_size = 0;
496
497
        ColumnString::Offset c1_const_size = 0;
497
498
497
        if (c0_const) {
499
6
            const ColumnString* c0_const_string =
500
6
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
501
502
6
            if (c0_const_string) {
503
6
                c0_const_chars = &c0_const_string->get_chars();
504
6
                c0_const_size = c0_const_string->get_offsets()[0];
505
6
            } else {
506
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
507
0
                                            c0->get_name(), name);
508
0
            }
509
6
        }
510
511
497
        if (c1_const) {
512
94
            const ColumnString* c1_const_string =
513
94
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
514
515
94
            if (c1_const_string) {
516
94
                c1_const_chars = &c1_const_string->get_chars();
517
94
                c1_const_size = c1_const_string->get_offsets()[0];
518
94
            } else {
519
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
520
0
                                            c1->get_name(), name);
521
0
            }
522
94
        }
523
524
497
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
525
526
497
        auto c_res = ColumnUInt8::create();
527
497
        ColumnUInt8::Container& vec_res = c_res->get_data();
528
497
        vec_res.resize(c0->size());
529
530
497
        if (c0_string && c1_string) {
531
397
            StringImpl::string_vector_string_vector(
532
397
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
533
397
                    c1_string->get_offsets(), vec_res);
534
397
        } else if (c0_string && c1_const) {
535
94
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
536
94
                                               *c1_const_chars, c1_const_size, vec_res);
537
94
        } else if (c0_const && c1_string) {
538
6
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
539
6
                                               c1_string->get_chars(), c1_string->get_offsets(),
540
6
                                               vec_res);
541
6
        } else {
542
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
543
0
                                        c0->get_name(), c1->get_name(), name);
544
0
        }
545
497
        block.replace_by_position(result, std::move(c_res));
546
497
        return Status::OK();
547
497
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
483
200
                          const IColumn* c1) const {
484
200
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
485
200
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
486
200
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
487
200
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
488
200
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
489
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
490
0
                                        c0->get_name(), c1->get_name(), name);
491
0
        }
492
200
        DCHECK(!(c0_const && c1_const));
493
200
        const ColumnString::Chars* c0_const_chars = nullptr;
494
200
        const ColumnString::Chars* c1_const_chars = nullptr;
495
200
        ColumnString::Offset c0_const_size = 0;
496
200
        ColumnString::Offset c1_const_size = 0;
497
498
200
        if (c0_const) {
499
0
            const ColumnString* c0_const_string =
500
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
501
502
0
            if (c0_const_string) {
503
0
                c0_const_chars = &c0_const_string->get_chars();
504
0
                c0_const_size = c0_const_string->get_offsets()[0];
505
0
            } else {
506
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
507
0
                                            c0->get_name(), name);
508
0
            }
509
0
        }
510
511
200
        if (c1_const) {
512
200
            const ColumnString* c1_const_string =
513
200
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
514
515
200
            if (c1_const_string) {
516
200
                c1_const_chars = &c1_const_string->get_chars();
517
200
                c1_const_size = c1_const_string->get_offsets()[0];
518
200
            } else {
519
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
520
0
                                            c1->get_name(), name);
521
0
            }
522
200
        }
523
524
200
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
525
526
200
        auto c_res = ColumnUInt8::create();
527
200
        ColumnUInt8::Container& vec_res = c_res->get_data();
528
200
        vec_res.resize(c0->size());
529
530
200
        if (c0_string && c1_string) {
531
0
            StringImpl::string_vector_string_vector(
532
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
533
0
                    c1_string->get_offsets(), vec_res);
534
200
        } else if (c0_string && c1_const) {
535
200
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
536
200
                                               *c1_const_chars, c1_const_size, vec_res);
537
200
        } else if (c0_const && c1_string) {
538
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
539
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
540
0
                                               vec_res);
541
0
        } else {
542
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
543
0
                                        c0->get_name(), c1->get_name(), name);
544
0
        }
545
200
        block.replace_by_position(result, std::move(c_res));
546
200
        return Status::OK();
547
200
    }
548
549
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
550
152
                                         const IColumn* c1) const {
551
152
        bool c0_const = is_column_const(*c0);
552
152
        bool c1_const = is_column_const(*c1);
553
554
152
        DCHECK(!(c0_const && c1_const));
555
556
152
        auto c_res = ColumnUInt8::create();
557
152
        ColumnUInt8::Container& vec_res = c_res->get_data();
558
152
        vec_res.resize(c0->size());
559
560
152
        if (c0_const) {
561
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
562
152
        } else if (c1_const) {
563
143
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
564
143
        } else {
565
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
566
9
        }
567
568
152
        block.replace_by_position(result, std::move(c_res));
569
152
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
550
17
                                         const IColumn* c1) const {
551
17
        bool c0_const = is_column_const(*c0);
552
17
        bool c1_const = is_column_const(*c1);
553
554
17
        DCHECK(!(c0_const && c1_const));
555
556
17
        auto c_res = ColumnUInt8::create();
557
17
        ColumnUInt8::Container& vec_res = c_res->get_data();
558
17
        vec_res.resize(c0->size());
559
560
17
        if (c0_const) {
561
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
562
17
        } else if (c1_const) {
563
13
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
564
13
        } else {
565
4
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
566
4
        }
567
568
17
        block.replace_by_position(result, std::move(c_res));
569
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
550
8
                                         const IColumn* c1) const {
551
8
        bool c0_const = is_column_const(*c0);
552
8
        bool c1_const = is_column_const(*c1);
553
554
8
        DCHECK(!(c0_const && c1_const));
555
556
8
        auto c_res = ColumnUInt8::create();
557
8
        ColumnUInt8::Container& vec_res = c_res->get_data();
558
8
        vec_res.resize(c0->size());
559
560
8
        if (c0_const) {
561
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
562
8
        } else if (c1_const) {
563
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
564
8
        } else {
565
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
566
0
        }
567
568
8
        block.replace_by_position(result, std::move(c_res));
569
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
550
9
                                         const IColumn* c1) const {
551
9
        bool c0_const = is_column_const(*c0);
552
9
        bool c1_const = is_column_const(*c1);
553
554
9
        DCHECK(!(c0_const && c1_const));
555
556
9
        auto c_res = ColumnUInt8::create();
557
9
        ColumnUInt8::Container& vec_res = c_res->get_data();
558
9
        vec_res.resize(c0->size());
559
560
9
        if (c0_const) {
561
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
562
9
        } else if (c1_const) {
563
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
564
8
        } else {
565
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
566
1
        }
567
568
9
        block.replace_by_position(result, std::move(c_res));
569
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
550
57
                                         const IColumn* c1) const {
551
57
        bool c0_const = is_column_const(*c0);
552
57
        bool c1_const = is_column_const(*c1);
553
554
57
        DCHECK(!(c0_const && c1_const));
555
556
57
        auto c_res = ColumnUInt8::create();
557
57
        ColumnUInt8::Container& vec_res = c_res->get_data();
558
57
        vec_res.resize(c0->size());
559
560
57
        if (c0_const) {
561
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
562
57
        } else if (c1_const) {
563
56
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
564
56
        } else {
565
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
566
1
        }
567
568
57
        block.replace_by_position(result, std::move(c_res));
569
57
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
550
11
                                         const IColumn* c1) const {
551
11
        bool c0_const = is_column_const(*c0);
552
11
        bool c1_const = is_column_const(*c1);
553
554
11
        DCHECK(!(c0_const && c1_const));
555
556
11
        auto c_res = ColumnUInt8::create();
557
11
        ColumnUInt8::Container& vec_res = c_res->get_data();
558
11
        vec_res.resize(c0->size());
559
560
11
        if (c0_const) {
561
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
562
11
        } else if (c1_const) {
563
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
564
8
        } else {
565
3
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
566
3
        }
567
568
11
        block.replace_by_position(result, std::move(c_res));
569
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
550
50
                                         const IColumn* c1) const {
551
50
        bool c0_const = is_column_const(*c0);
552
50
        bool c1_const = is_column_const(*c1);
553
554
50
        DCHECK(!(c0_const && c1_const));
555
556
50
        auto c_res = ColumnUInt8::create();
557
50
        ColumnUInt8::Container& vec_res = c_res->get_data();
558
50
        vec_res.resize(c0->size());
559
560
50
        if (c0_const) {
561
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
562
50
        } else if (c1_const) {
563
50
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
564
50
        } else {
565
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
566
0
        }
567
568
50
        block.replace_by_position(result, std::move(c_res));
569
50
    }
570
571
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
572
152
                           const ColumnWithTypeAndName& c1) const {
573
152
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
574
152
        return Status::OK();
575
152
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
572
17
                           const ColumnWithTypeAndName& c1) const {
573
17
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
574
17
        return Status::OK();
575
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
572
8
                           const ColumnWithTypeAndName& c1) const {
573
8
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
574
8
        return Status::OK();
575
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
572
9
                           const ColumnWithTypeAndName& c1) const {
573
9
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
574
9
        return Status::OK();
575
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
572
57
                           const ColumnWithTypeAndName& c1) const {
573
57
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
574
57
        return Status::OK();
575
57
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
572
11
                           const ColumnWithTypeAndName& c1) const {
573
11
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
574
11
        return Status::OK();
575
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
572
50
                           const ColumnWithTypeAndName& c1) const {
573
50
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
574
50
        return Status::OK();
575
50
    }
576
577
public:
578
220
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
578
62
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
578
36
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
578
39
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
578
81
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
578
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
578
1
    String get_name() const override { return name; }
579
580
260k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
580
237k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
580
1.13k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
580
4.78k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
580
6.00k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
580
2.64k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
580
7.87k
    size_t get_number_of_arguments() const override { return 2; }
581
582
    ZoneMapFilterResult evaluate_zonemap_filter(const ZoneMapEvalContext& ctx,
583
8.31k
                                                const VExprSPtrs& arguments) const override {
584
8.31k
        std::string_view name_view(name);
585
8.31k
        if (name_view == NameEquals::name) {
586
4.17k
            return comparison_zonemap_detail::evaluate(ctx, arguments,
587
4.17k
                                                       comparison_zonemap_detail::Op::EQ);
588
4.17k
        }
589
4.14k
        if (name_view == NameNotEquals::name) {
590
338
            return comparison_zonemap_detail::evaluate(ctx, arguments,
591
338
                                                       comparison_zonemap_detail::Op::NE);
592
338
        }
593
3.80k
        if (name_view == NameLess::name) {
594
834
            return comparison_zonemap_detail::evaluate(ctx, arguments,
595
834
                                                       comparison_zonemap_detail::Op::LT);
596
834
        }
597
2.97k
        if (name_view == NameLessOrEquals::name) {
598
551
            return comparison_zonemap_detail::evaluate(ctx, arguments,
599
551
                                                       comparison_zonemap_detail::Op::LE);
600
551
        }
601
2.41k
        if (name_view == NameGreater::name) {
602
1.34k
            return comparison_zonemap_detail::evaluate(ctx, arguments,
603
1.34k
                                                       comparison_zonemap_detail::Op::GT);
604
1.34k
        }
605
1.07k
        if (name_view == NameGreaterOrEquals::name) {
606
1.05k
            return comparison_zonemap_detail::evaluate(ctx, arguments,
607
1.05k
                                                       comparison_zonemap_detail::Op::GE);
608
1.05k
        }
609
20
        ++ctx.stats.unsupported_expr_count;
610
20
        return ZoneMapFilterResult::kUnsupported;
611
1.07k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
583
4.18k
                                                const VExprSPtrs& arguments) const override {
584
4.18k
        std::string_view name_view(name);
585
4.18k
        if (name_view == NameEquals::name) {
586
4.17k
            return comparison_zonemap_detail::evaluate(ctx, arguments,
587
4.17k
                                                       comparison_zonemap_detail::Op::EQ);
588
4.17k
        }
589
11
        if (name_view == NameNotEquals::name) {
590
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
591
0
                                                       comparison_zonemap_detail::Op::NE);
592
0
        }
593
11
        if (name_view == NameLess::name) {
594
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
595
0
                                                       comparison_zonemap_detail::Op::LT);
596
0
        }
597
11
        if (name_view == NameLessOrEquals::name) {
598
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
599
0
                                                       comparison_zonemap_detail::Op::LE);
600
0
        }
601
11
        if (name_view == NameGreater::name) {
602
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
603
0
                                                       comparison_zonemap_detail::Op::GT);
604
0
        }
605
11
        if (name_view == NameGreaterOrEquals::name) {
606
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
607
0
                                                       comparison_zonemap_detail::Op::GE);
608
0
        }
609
11
        ++ctx.stats.unsupported_expr_count;
610
11
        return ZoneMapFilterResult::kUnsupported;
611
11
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
583
337
                                                const VExprSPtrs& arguments) const override {
584
337
        std::string_view name_view(name);
585
337
        if (name_view == NameEquals::name) {
586
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
587
0
                                                       comparison_zonemap_detail::Op::EQ);
588
0
        }
589
338
        if (name_view == NameNotEquals::name) {
590
338
            return comparison_zonemap_detail::evaluate(ctx, arguments,
591
338
                                                       comparison_zonemap_detail::Op::NE);
592
338
        }
593
18.4E
        if (name_view == NameLess::name) {
594
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
595
0
                                                       comparison_zonemap_detail::Op::LT);
596
0
        }
597
18.4E
        if (name_view == NameLessOrEquals::name) {
598
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
599
0
                                                       comparison_zonemap_detail::Op::LE);
600
0
        }
601
18.4E
        if (name_view == NameGreater::name) {
602
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
603
0
                                                       comparison_zonemap_detail::Op::GT);
604
0
        }
605
18.4E
        if (name_view == NameGreaterOrEquals::name) {
606
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
607
0
                                                       comparison_zonemap_detail::Op::GE);
608
0
        }
609
18.4E
        ++ctx.stats.unsupported_expr_count;
610
18.4E
        return ZoneMapFilterResult::kUnsupported;
611
18.4E
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
583
1.35k
                                                const VExprSPtrs& arguments) const override {
584
1.35k
        std::string_view name_view(name);
585
1.35k
        if (name_view == NameEquals::name) {
586
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
587
0
                                                       comparison_zonemap_detail::Op::EQ);
588
0
        }
589
1.35k
        if (name_view == NameNotEquals::name) {
590
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
591
0
                                                       comparison_zonemap_detail::Op::NE);
592
0
        }
593
1.35k
        if (name_view == NameLess::name) {
594
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
595
0
                                                       comparison_zonemap_detail::Op::LT);
596
0
        }
597
1.35k
        if (name_view == NameLessOrEquals::name) {
598
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
599
0
                                                       comparison_zonemap_detail::Op::LE);
600
0
        }
601
1.35k
        if (name_view == NameGreater::name) {
602
1.34k
            return comparison_zonemap_detail::evaluate(ctx, arguments,
603
1.34k
                                                       comparison_zonemap_detail::Op::GT);
604
1.34k
        }
605
6
        if (name_view == NameGreaterOrEquals::name) {
606
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
607
0
                                                       comparison_zonemap_detail::Op::GE);
608
0
        }
609
6
        ++ctx.stats.unsupported_expr_count;
610
6
        return ZoneMapFilterResult::kUnsupported;
611
6
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
583
1.05k
                                                const VExprSPtrs& arguments) const override {
584
1.05k
        std::string_view name_view(name);
585
1.05k
        if (name_view == NameEquals::name) {
586
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
587
0
                                                       comparison_zonemap_detail::Op::EQ);
588
0
        }
589
1.05k
        if (name_view == NameNotEquals::name) {
590
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
591
0
                                                       comparison_zonemap_detail::Op::NE);
592
0
        }
593
1.05k
        if (name_view == NameLess::name) {
594
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
595
0
                                                       comparison_zonemap_detail::Op::LT);
596
0
        }
597
1.05k
        if (name_view == NameLessOrEquals::name) {
598
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
599
0
                                                       comparison_zonemap_detail::Op::LE);
600
0
        }
601
1.05k
        if (name_view == NameGreater::name) {
602
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
603
0
                                                       comparison_zonemap_detail::Op::GT);
604
0
        }
605
1.05k
        if (name_view == NameGreaterOrEquals::name) {
606
1.05k
            return comparison_zonemap_detail::evaluate(ctx, arguments,
607
1.05k
                                                       comparison_zonemap_detail::Op::GE);
608
1.05k
        }
609
1
        ++ctx.stats.unsupported_expr_count;
610
1
        return ZoneMapFilterResult::kUnsupported;
611
1.05k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
583
833
                                                const VExprSPtrs& arguments) const override {
584
833
        std::string_view name_view(name);
585
833
        if (name_view == NameEquals::name) {
586
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
587
0
                                                       comparison_zonemap_detail::Op::EQ);
588
0
        }
589
833
        if (name_view == NameNotEquals::name) {
590
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
591
0
                                                       comparison_zonemap_detail::Op::NE);
592
0
        }
593
834
        if (name_view == NameLess::name) {
594
834
            return comparison_zonemap_detail::evaluate(ctx, arguments,
595
834
                                                       comparison_zonemap_detail::Op::LT);
596
834
        }
597
18.4E
        if (name_view == NameLessOrEquals::name) {
598
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
599
0
                                                       comparison_zonemap_detail::Op::LE);
600
0
        }
601
18.4E
        if (name_view == NameGreater::name) {
602
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
603
0
                                                       comparison_zonemap_detail::Op::GT);
604
0
        }
605
18.4E
        if (name_view == NameGreaterOrEquals::name) {
606
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
607
0
                                                       comparison_zonemap_detail::Op::GE);
608
0
        }
609
18.4E
        ++ctx.stats.unsupported_expr_count;
610
18.4E
        return ZoneMapFilterResult::kUnsupported;
611
18.4E
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_zonemap_filterERKNS_18ZoneMapEvalContextERKSt6vectorISt10shared_ptrINS_5VExprEESaISA_EE
Line
Count
Source
583
555
                                                const VExprSPtrs& arguments) const override {
584
555
        std::string_view name_view(name);
585
555
        if (name_view == NameEquals::name) {
586
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
587
0
                                                       comparison_zonemap_detail::Op::EQ);
588
0
        }
589
555
        if (name_view == NameNotEquals::name) {
590
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
591
0
                                                       comparison_zonemap_detail::Op::NE);
592
0
        }
593
555
        if (name_view == NameLess::name) {
594
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
595
0
                                                       comparison_zonemap_detail::Op::LT);
596
0
        }
597
555
        if (name_view == NameLessOrEquals::name) {
598
551
            return comparison_zonemap_detail::evaluate(ctx, arguments,
599
551
                                                       comparison_zonemap_detail::Op::LE);
600
551
        }
601
4
        if (name_view == NameGreater::name) {
602
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
603
0
                                                       comparison_zonemap_detail::Op::GT);
604
0
        }
605
4
        if (name_view == NameGreaterOrEquals::name) {
606
0
            return comparison_zonemap_detail::evaluate(ctx, arguments,
607
0
                                                       comparison_zonemap_detail::Op::GE);
608
0
        }
609
4
        ++ctx.stats.unsupported_expr_count;
610
4
        return ZoneMapFilterResult::kUnsupported;
611
4
    }
612
613
13.3k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
614
13.3k
        std::string_view name_view(name);
615
13.3k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name ||
616
13.3k
            name_view == NameLess::name || name_view == NameLessOrEquals::name ||
617
13.3k
            name_view == NameGreater::name || name_view == NameGreaterOrEquals::name) {
618
13.3k
            return comparison_zonemap_detail::can_evaluate(arguments);
619
13.3k
        }
620
4
        return false;
621
13.3k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
613
6.47k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
614
6.47k
        std::string_view name_view(name);
615
6.47k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name ||
616
6.47k
            name_view == NameLess::name || name_view == NameLessOrEquals::name ||
617
6.47k
            name_view == NameGreater::name || name_view == NameGreaterOrEquals::name) {
618
6.47k
            return comparison_zonemap_detail::can_evaluate(arguments);
619
6.47k
        }
620
18.4E
        return false;
621
6.47k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
613
586
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
614
586
        std::string_view name_view(name);
615
586
        if (name_view == NameEquals::name || name_view == NameNotEquals::name ||
616
586
            name_view == NameLess::name || name_view == NameLessOrEquals::name ||
617
586
            name_view == NameGreater::name || name_view == NameGreaterOrEquals::name) {
618
586
            return comparison_zonemap_detail::can_evaluate(arguments);
619
586
        }
620
0
        return false;
621
586
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
613
2.30k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
614
2.30k
        std::string_view name_view(name);
615
2.30k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name ||
616
2.31k
            name_view == NameLess::name || name_view == NameLessOrEquals::name ||
617
2.30k
            name_view == NameGreater::name || name_view == NameGreaterOrEquals::name) {
618
2.30k
            return comparison_zonemap_detail::can_evaluate(arguments);
619
2.30k
        }
620
4
        return false;
621
2.30k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
613
1.84k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
614
1.84k
        std::string_view name_view(name);
615
1.84k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name ||
616
1.84k
            name_view == NameLess::name || name_view == NameLessOrEquals::name ||
617
1.85k
            name_view == NameGreater::name || name_view == NameGreaterOrEquals::name) {
618
1.84k
            return comparison_zonemap_detail::can_evaluate(arguments);
619
1.84k
        }
620
18.4E
        return false;
621
1.84k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
613
1.20k
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
614
1.20k
        std::string_view name_view(name);
615
1.20k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name ||
616
1.20k
            name_view == NameLess::name || name_view == NameLessOrEquals::name ||
617
1.20k
            name_view == NameGreater::name || name_view == NameGreaterOrEquals::name) {
618
1.19k
            return comparison_zonemap_detail::can_evaluate(arguments);
619
1.19k
        }
620
6
        return false;
621
1.20k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE27can_evaluate_zonemap_filterERKSt6vectorISt10shared_ptrINS_5VExprEESaIS7_EE
Line
Count
Source
613
912
    bool can_evaluate_zonemap_filter(const VExprSPtrs& arguments) const override {
614
912
        std::string_view name_view(name);
615
912
        if (name_view == NameEquals::name || name_view == NameNotEquals::name ||
616
912
            name_view == NameLess::name || name_view == NameLessOrEquals::name ||
617
912
            name_view == NameGreater::name || name_view == NameGreaterOrEquals::name) {
618
911
            return comparison_zonemap_detail::can_evaluate(arguments);
619
911
        }
620
1
        return false;
621
912
    }
622
623
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
624
260k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
625
260k
        return std::make_shared<DataTypeUInt8>();
626
260k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
624
237k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
625
237k
        return std::make_shared<DataTypeUInt8>();
626
237k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
624
1.13k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
625
1.13k
        return std::make_shared<DataTypeUInt8>();
626
1.13k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
624
4.78k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
625
4.78k
        return std::make_shared<DataTypeUInt8>();
626
4.78k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
624
6.00k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
625
6.00k
        return std::make_shared<DataTypeUInt8>();
626
6.00k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
624
2.64k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
625
2.64k
        return std::make_shared<DataTypeUInt8>();
626
2.64k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
624
7.88k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
625
7.88k
        return std::make_shared<DataTypeUInt8>();
626
7.88k
    }
627
628
    Status evaluate_inverted_index(
629
            const ColumnsWithTypeAndName& arguments,
630
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
631
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
632
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
633
1.42k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
634
1.42k
        DCHECK(arguments.size() == 1);
635
1.42k
        DCHECK(data_type_with_names.size() == 1);
636
1.42k
        DCHECK(iterators.size() == 1);
637
1.42k
        auto* iter = iterators[0];
638
1.42k
        auto data_type_with_name = data_type_with_names[0];
639
1.42k
        if (iter == nullptr) {
640
0
            return Status::OK();
641
0
        }
642
1.42k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
643
365
            return Status::OK();
644
365
        }
645
1.06k
        segment_v2::InvertedIndexQueryType query_type;
646
1.06k
        std::string_view name_view(name);
647
1.06k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
648
720
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
649
720
        } else if (name_view == NameLess::name) {
650
84
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
651
258
        } else if (name_view == NameLessOrEquals::name) {
652
85
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
653
173
        } else if (name_view == NameGreater::name) {
654
79
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
655
99
        } else if (name_view == NameGreaterOrEquals::name) {
656
99
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
657
18.4E
        } else {
658
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
659
18.4E
        }
660
661
1.06k
        if (segment_v2::is_range_query(query_type) &&
662
1.06k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
663
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
664
139
            return Status::OK();
665
139
        }
666
928
        Field param_value;
667
928
        arguments[0].column->get(0, param_value);
668
928
        if (param_value.is_null()) {
669
2
            return Status::OK();
670
2
        }
671
926
        segment_v2::InvertedIndexParam param;
672
926
        param.column_name = data_type_with_name.first;
673
926
        param.column_type = data_type_with_name.second;
674
926
        param.query_value = param_value;
675
926
        param.query_type = query_type;
676
926
        param.num_rows = num_rows;
677
926
        param.roaring = std::make_shared<roaring::Roaring>();
678
926
        param.analyzer_ctx = analyzer_ctx;
679
926
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
680
771
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
681
771
        if (iter->has_null()) {
682
771
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
683
771
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
684
771
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
685
771
        }
686
771
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
687
771
        bitmap_result = result;
688
771
        bitmap_result.mask_out_null();
689
690
771
        if (name_view == NameNotEquals::name) {
691
59
            roaring::Roaring full_result;
692
59
            full_result.addRange(0, num_rows);
693
59
            bitmap_result.op_not(&full_result);
694
59
        }
695
696
771
        return Status::OK();
697
771
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
633
712
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
634
712
        DCHECK(arguments.size() == 1);
635
712
        DCHECK(data_type_with_names.size() == 1);
636
712
        DCHECK(iterators.size() == 1);
637
712
        auto* iter = iterators[0];
638
712
        auto data_type_with_name = data_type_with_names[0];
639
712
        if (iter == nullptr) {
640
0
            return Status::OK();
641
0
        }
642
712
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
643
60
            return Status::OK();
644
60
        }
645
652
        segment_v2::InvertedIndexQueryType query_type;
646
652
        std::string_view name_view(name);
647
654
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
648
654
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
649
18.4E
        } else if (name_view == NameLess::name) {
650
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
651
18.4E
        } else if (name_view == NameLessOrEquals::name) {
652
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
653
18.4E
        } else if (name_view == NameGreater::name) {
654
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
655
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
656
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
657
18.4E
        } else {
658
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
659
18.4E
        }
660
661
654
        if (segment_v2::is_range_query(query_type) &&
662
654
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
663
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
664
0
            return Status::OK();
665
0
        }
666
654
        Field param_value;
667
654
        arguments[0].column->get(0, param_value);
668
654
        if (param_value.is_null()) {
669
2
            return Status::OK();
670
2
        }
671
652
        segment_v2::InvertedIndexParam param;
672
652
        param.column_name = data_type_with_name.first;
673
652
        param.column_type = data_type_with_name.second;
674
652
        param.query_value = param_value;
675
652
        param.query_type = query_type;
676
652
        param.num_rows = num_rows;
677
652
        param.roaring = std::make_shared<roaring::Roaring>();
678
652
        param.analyzer_ctx = analyzer_ctx;
679
652
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
680
605
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
681
605
        if (iter->has_null()) {
682
605
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
683
605
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
684
605
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
685
605
        }
686
605
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
687
605
        bitmap_result = result;
688
605
        bitmap_result.mask_out_null();
689
690
605
        if (name_view == NameNotEquals::name) {
691
0
            roaring::Roaring full_result;
692
0
            full_result.addRange(0, num_rows);
693
0
            bitmap_result.op_not(&full_result);
694
0
        }
695
696
605
        return Status::OK();
697
605
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
633
72
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
634
72
        DCHECK(arguments.size() == 1);
635
72
        DCHECK(data_type_with_names.size() == 1);
636
72
        DCHECK(iterators.size() == 1);
637
72
        auto* iter = iterators[0];
638
72
        auto data_type_with_name = data_type_with_names[0];
639
72
        if (iter == nullptr) {
640
0
            return Status::OK();
641
0
        }
642
72
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
643
6
            return Status::OK();
644
6
        }
645
66
        segment_v2::InvertedIndexQueryType query_type;
646
66
        std::string_view name_view(name);
647
66
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
648
66
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
649
66
        } else if (name_view == NameLess::name) {
650
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
651
0
        } else if (name_view == NameLessOrEquals::name) {
652
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
653
0
        } else if (name_view == NameGreater::name) {
654
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
655
0
        } else if (name_view == NameGreaterOrEquals::name) {
656
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
657
0
        } else {
658
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
659
0
        }
660
661
66
        if (segment_v2::is_range_query(query_type) &&
662
66
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
663
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
664
0
            return Status::OK();
665
0
        }
666
66
        Field param_value;
667
66
        arguments[0].column->get(0, param_value);
668
66
        if (param_value.is_null()) {
669
0
            return Status::OK();
670
0
        }
671
66
        segment_v2::InvertedIndexParam param;
672
66
        param.column_name = data_type_with_name.first;
673
66
        param.column_type = data_type_with_name.second;
674
66
        param.query_value = param_value;
675
66
        param.query_type = query_type;
676
66
        param.num_rows = num_rows;
677
66
        param.roaring = std::make_shared<roaring::Roaring>();
678
66
        param.analyzer_ctx = analyzer_ctx;
679
66
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
680
59
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
681
59
        if (iter->has_null()) {
682
59
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
683
59
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
684
59
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
685
59
        }
686
59
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
687
59
        bitmap_result = result;
688
59
        bitmap_result.mask_out_null();
689
690
59
        if (name_view == NameNotEquals::name) {
691
59
            roaring::Roaring full_result;
692
59
            full_result.addRange(0, num_rows);
693
59
            bitmap_result.op_not(&full_result);
694
59
        }
695
696
59
        return Status::OK();
697
59
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
633
128
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
634
128
        DCHECK(arguments.size() == 1);
635
128
        DCHECK(data_type_with_names.size() == 1);
636
128
        DCHECK(iterators.size() == 1);
637
128
        auto* iter = iterators[0];
638
128
        auto data_type_with_name = data_type_with_names[0];
639
128
        if (iter == nullptr) {
640
0
            return Status::OK();
641
0
        }
642
128
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
643
50
            return Status::OK();
644
50
        }
645
78
        segment_v2::InvertedIndexQueryType query_type;
646
78
        std::string_view name_view(name);
647
79
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
648
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
649
78
        } else if (name_view == NameLess::name) {
650
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
651
78
        } else if (name_view == NameLessOrEquals::name) {
652
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
653
79
        } else if (name_view == NameGreater::name) {
654
79
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
655
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
656
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
657
18.4E
        } else {
658
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
659
18.4E
        }
660
661
79
        if (segment_v2::is_range_query(query_type) &&
662
79
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
663
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
664
19
            return Status::OK();
665
19
        }
666
60
        Field param_value;
667
60
        arguments[0].column->get(0, param_value);
668
60
        if (param_value.is_null()) {
669
0
            return Status::OK();
670
0
        }
671
60
        segment_v2::InvertedIndexParam param;
672
60
        param.column_name = data_type_with_name.first;
673
60
        param.column_type = data_type_with_name.second;
674
60
        param.query_value = param_value;
675
60
        param.query_type = query_type;
676
60
        param.num_rows = num_rows;
677
60
        param.roaring = std::make_shared<roaring::Roaring>();
678
60
        param.analyzer_ctx = analyzer_ctx;
679
60
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
680
41
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
681
41
        if (iter->has_null()) {
682
41
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
683
41
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
684
41
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
685
41
        }
686
41
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
687
41
        bitmap_result = result;
688
41
        bitmap_result.mask_out_null();
689
690
41
        if (name_view == NameNotEquals::name) {
691
0
            roaring::Roaring full_result;
692
0
            full_result.addRange(0, num_rows);
693
0
            bitmap_result.op_not(&full_result);
694
0
        }
695
696
41
        return Status::OK();
697
41
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
633
196
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
634
196
        DCHECK(arguments.size() == 1);
635
196
        DCHECK(data_type_with_names.size() == 1);
636
196
        DCHECK(iterators.size() == 1);
637
196
        auto* iter = iterators[0];
638
196
        auto data_type_with_name = data_type_with_names[0];
639
196
        if (iter == nullptr) {
640
0
            return Status::OK();
641
0
        }
642
196
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
643
97
            return Status::OK();
644
97
        }
645
99
        segment_v2::InvertedIndexQueryType query_type;
646
99
        std::string_view name_view(name);
647
99
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
648
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
649
99
        } else if (name_view == NameLess::name) {
650
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
651
99
        } else if (name_view == NameLessOrEquals::name) {
652
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
653
99
        } else if (name_view == NameGreater::name) {
654
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
655
99
        } else if (name_view == NameGreaterOrEquals::name) {
656
99
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
657
99
        } else {
658
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
659
0
        }
660
661
99
        if (segment_v2::is_range_query(query_type) &&
662
99
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
663
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
664
50
            return Status::OK();
665
50
        }
666
49
        Field param_value;
667
49
        arguments[0].column->get(0, param_value);
668
49
        if (param_value.is_null()) {
669
0
            return Status::OK();
670
0
        }
671
49
        segment_v2::InvertedIndexParam param;
672
49
        param.column_name = data_type_with_name.first;
673
49
        param.column_type = data_type_with_name.second;
674
49
        param.query_value = param_value;
675
49
        param.query_type = query_type;
676
49
        param.num_rows = num_rows;
677
49
        param.roaring = std::make_shared<roaring::Roaring>();
678
49
        param.analyzer_ctx = analyzer_ctx;
679
49
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
680
7
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
681
7
        if (iter->has_null()) {
682
7
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
683
7
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
684
7
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
685
7
        }
686
7
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
687
7
        bitmap_result = result;
688
7
        bitmap_result.mask_out_null();
689
690
7
        if (name_view == NameNotEquals::name) {
691
0
            roaring::Roaring full_result;
692
0
            full_result.addRange(0, num_rows);
693
0
            bitmap_result.op_not(&full_result);
694
0
        }
695
696
7
        return Status::OK();
697
7
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
633
135
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
634
135
        DCHECK(arguments.size() == 1);
635
135
        DCHECK(data_type_with_names.size() == 1);
636
135
        DCHECK(iterators.size() == 1);
637
135
        auto* iter = iterators[0];
638
135
        auto data_type_with_name = data_type_with_names[0];
639
135
        if (iter == nullptr) {
640
0
            return Status::OK();
641
0
        }
642
135
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
643
53
            return Status::OK();
644
53
        }
645
82
        segment_v2::InvertedIndexQueryType query_type;
646
82
        std::string_view name_view(name);
647
84
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
648
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
649
84
        } else if (name_view == NameLess::name) {
650
84
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
651
18.4E
        } else if (name_view == NameLessOrEquals::name) {
652
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
653
18.4E
        } else if (name_view == NameGreater::name) {
654
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
655
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
656
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
657
18.4E
        } else {
658
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
659
18.4E
        }
660
661
84
        if (segment_v2::is_range_query(query_type) &&
662
84
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
663
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
664
19
            return Status::OK();
665
19
        }
666
65
        Field param_value;
667
65
        arguments[0].column->get(0, param_value);
668
65
        if (param_value.is_null()) {
669
0
            return Status::OK();
670
0
        }
671
65
        segment_v2::InvertedIndexParam param;
672
65
        param.column_name = data_type_with_name.first;
673
65
        param.column_type = data_type_with_name.second;
674
65
        param.query_value = param_value;
675
65
        param.query_type = query_type;
676
65
        param.num_rows = num_rows;
677
65
        param.roaring = std::make_shared<roaring::Roaring>();
678
65
        param.analyzer_ctx = analyzer_ctx;
679
65
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
680
46
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
681
46
        if (iter->has_null()) {
682
46
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
683
46
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
684
46
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
685
46
        }
686
46
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
687
46
        bitmap_result = result;
688
46
        bitmap_result.mask_out_null();
689
690
46
        if (name_view == NameNotEquals::name) {
691
0
            roaring::Roaring full_result;
692
0
            full_result.addRange(0, num_rows);
693
0
            bitmap_result.op_not(&full_result);
694
0
        }
695
696
46
        return Status::OK();
697
46
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
633
184
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
634
184
        DCHECK(arguments.size() == 1);
635
184
        DCHECK(data_type_with_names.size() == 1);
636
184
        DCHECK(iterators.size() == 1);
637
184
        auto* iter = iterators[0];
638
184
        auto data_type_with_name = data_type_with_names[0];
639
184
        if (iter == nullptr) {
640
0
            return Status::OK();
641
0
        }
642
184
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
643
99
            return Status::OK();
644
99
        }
645
85
        segment_v2::InvertedIndexQueryType query_type;
646
85
        std::string_view name_view(name);
647
85
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
648
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
649
85
        } else if (name_view == NameLess::name) {
650
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
651
85
        } else if (name_view == NameLessOrEquals::name) {
652
85
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
653
85
        } else if (name_view == NameGreater::name) {
654
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
655
0
        } else if (name_view == NameGreaterOrEquals::name) {
656
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
657
0
        } else {
658
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
659
0
        }
660
661
85
        if (segment_v2::is_range_query(query_type) &&
662
85
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
663
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
664
51
            return Status::OK();
665
51
        }
666
34
        Field param_value;
667
34
        arguments[0].column->get(0, param_value);
668
34
        if (param_value.is_null()) {
669
0
            return Status::OK();
670
0
        }
671
34
        segment_v2::InvertedIndexParam param;
672
34
        param.column_name = data_type_with_name.first;
673
34
        param.column_type = data_type_with_name.second;
674
34
        param.query_value = param_value;
675
34
        param.query_type = query_type;
676
34
        param.num_rows = num_rows;
677
34
        param.roaring = std::make_shared<roaring::Roaring>();
678
34
        param.analyzer_ctx = analyzer_ctx;
679
34
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
680
13
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
681
13
        if (iter->has_null()) {
682
13
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
683
13
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
684
13
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
685
13
        }
686
13
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
687
13
        bitmap_result = result;
688
13
        bitmap_result.mask_out_null();
689
690
13
        if (name_view == NameNotEquals::name) {
691
0
            roaring::Roaring full_result;
692
0
            full_result.addRange(0, num_rows);
693
0
            bitmap_result.op_not(&full_result);
694
0
        }
695
696
13
        return Status::OK();
697
13
    }
698
699
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
700
122k
                        uint32_t result, size_t input_rows_count) const override {
701
122k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
702
122k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
703
704
122k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
705
122k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
706
122k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
707
122k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
708
709
122k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
710
122k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
711
712
        /// The case when arguments are the same (tautological comparison). Return constant.
713
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
714
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
715
122k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
716
122k
            col_left_untyped == col_right_untyped) {
717
            /// Always true: =, <=, >=
718
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
719
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
720
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
721
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
722
0
                block.get_by_position(result).column =
723
0
                        DataTypeUInt8()
724
0
                                .create_column_const(input_rows_count,
725
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
726
0
                                ->convert_to_full_column_if_const();
727
0
                return Status::OK();
728
0
            } else {
729
0
                block.get_by_position(result).column =
730
0
                        DataTypeUInt8()
731
0
                                .create_column_const(input_rows_count,
732
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
733
0
                                ->convert_to_full_column_if_const();
734
0
                return Status::OK();
735
0
            }
736
0
        }
737
738
230k
        auto can_compare = [](PrimitiveType t) -> bool {
739
230k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
740
230k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
738
44.3k
        auto can_compare = [](PrimitiveType t) -> bool {
739
44.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
740
44.3k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
738
4.21k
        auto can_compare = [](PrimitiveType t) -> bool {
739
4.21k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
740
4.21k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
738
146k
        auto can_compare = [](PrimitiveType t) -> bool {
739
146k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
740
146k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
738
4.24k
        auto can_compare = [](PrimitiveType t) -> bool {
739
4.24k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
740
4.24k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
738
15.6k
        auto can_compare = [](PrimitiveType t) -> bool {
739
15.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
740
15.6k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
738
15.5k
        auto can_compare = [](PrimitiveType t) -> bool {
739
15.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
740
15.5k
        };
741
742
122k
        if (can_compare(left_type->get_primitive_type()) &&
743
122k
            can_compare(right_type->get_primitive_type())) {
744
            // check left type equals right type TODO: remove this after FE is aware of scales difference
745
107k
            if (!left_type->equals_ignore_precision(*right_type)) {
746
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
747
0
                                            get_name(), left_type->get_name(),
748
0
                                            right_type->get_name());
749
0
            }
750
107k
        }
751
752
122k
        auto compare_type = left_type->get_primitive_type();
753
122k
        switch (compare_type) {
754
204
        case TYPE_BOOLEAN:
755
204
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
756
5.38k
        case TYPE_DATEV2:
757
5.38k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
758
956
        case TYPE_DATETIMEV2:
759
956
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
760
7
        case TYPE_TIMESTAMPTZ:
761
7
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
762
8.44k
        case TYPE_TINYINT:
763
8.44k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
764
2.39k
        case TYPE_SMALLINT:
765
2.39k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
766
82.5k
        case TYPE_INT:
767
82.5k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
768
5.04k
        case TYPE_BIGINT:
769
5.04k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
770
729
        case TYPE_LARGEINT:
771
729
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
772
74
        case TYPE_IPV4:
773
74
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
774
48
        case TYPE_IPV6:
775
48
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
776
544
        case TYPE_FLOAT:
777
544
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
778
1.50k
        case TYPE_DOUBLE:
779
1.50k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
780
4
        case TYPE_TIMEV2:
781
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
782
0
        case TYPE_DECIMALV2:
783
364
        case TYPE_DECIMAL32:
784
1.02k
        case TYPE_DECIMAL64:
785
3.07k
        case TYPE_DECIMAL128I:
786
3.18k
        case TYPE_DECIMAL256:
787
3.18k
            return execute_decimal(block, result, col_with_type_and_name_left,
788
3.18k
                                   col_with_type_and_name_right);
789
957
        case TYPE_CHAR:
790
6.58k
        case TYPE_VARCHAR:
791
11.2k
        case TYPE_STRING:
792
11.2k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
793
152
        default:
794
152
            return execute_generic(block, result, col_with_type_and_name_left,
795
152
                                   col_with_type_and_name_right);
796
122k
        }
797
0
        return Status::OK();
798
122k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
700
27.7k
                        uint32_t result, size_t input_rows_count) const override {
701
27.7k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
702
27.7k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
703
704
27.7k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
705
27.7k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
706
27.7k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
707
27.7k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
708
709
27.7k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
710
27.7k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
711
712
        /// The case when arguments are the same (tautological comparison). Return constant.
713
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
714
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
715
27.8k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
716
27.8k
            col_left_untyped == col_right_untyped) {
717
            /// Always true: =, <=, >=
718
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
719
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
720
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
721
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
722
0
                block.get_by_position(result).column =
723
0
                        DataTypeUInt8()
724
0
                                .create_column_const(input_rows_count,
725
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
726
0
                                ->convert_to_full_column_if_const();
727
0
                return Status::OK();
728
            } else {
729
                block.get_by_position(result).column =
730
                        DataTypeUInt8()
731
                                .create_column_const(input_rows_count,
732
                                                     Field::create_field<TYPE_BOOLEAN>(0))
733
                                ->convert_to_full_column_if_const();
734
                return Status::OK();
735
            }
736
0
        }
737
738
0
        auto can_compare = [](PrimitiveType t) -> bool {
739
27.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
740
27.7k
        };
741
742
27.7k
        if (can_compare(left_type->get_primitive_type()) &&
743
27.7k
            can_compare(right_type->get_primitive_type())) {
744
            // check left type equals right type TODO: remove this after FE is aware of scales difference
745
16.5k
            if (!left_type->equals_ignore_precision(*right_type)) {
746
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
747
0
                                            get_name(), left_type->get_name(),
748
0
                                            right_type->get_name());
749
0
            }
750
16.5k
        }
751
752
27.7k
        auto compare_type = left_type->get_primitive_type();
753
27.7k
        switch (compare_type) {
754
86
        case TYPE_BOOLEAN:
755
86
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
756
1.06k
        case TYPE_DATEV2:
757
1.06k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
758
466
        case TYPE_DATETIMEV2:
759
466
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
760
2
        case TYPE_TIMESTAMPTZ:
761
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
762
4.94k
        case TYPE_TINYINT:
763
4.94k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
764
391
        case TYPE_SMALLINT:
765
391
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
766
7.61k
        case TYPE_INT:
767
7.61k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
768
1.33k
        case TYPE_BIGINT:
769
1.33k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
770
141
        case TYPE_LARGEINT:
771
141
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
772
31
        case TYPE_IPV4:
773
31
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
774
30
        case TYPE_IPV6:
775
30
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
776
109
        case TYPE_FLOAT:
777
109
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
778
331
        case TYPE_DOUBLE:
779
331
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
780
4
        case TYPE_TIMEV2:
781
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
782
0
        case TYPE_DECIMALV2:
783
158
        case TYPE_DECIMAL32:
784
336
        case TYPE_DECIMAL64:
785
1.21k
        case TYPE_DECIMAL128I:
786
1.24k
        case TYPE_DECIMAL256:
787
1.24k
            return execute_decimal(block, result, col_with_type_and_name_left,
788
1.24k
                                   col_with_type_and_name_right);
789
683
        case TYPE_CHAR:
790
5.79k
        case TYPE_VARCHAR:
791
9.99k
        case TYPE_STRING:
792
9.99k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
793
17
        default:
794
17
            return execute_generic(block, result, col_with_type_and_name_left,
795
17
                                   col_with_type_and_name_right);
796
27.7k
        }
797
0
        return Status::OK();
798
27.7k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
700
2.21k
                        uint32_t result, size_t input_rows_count) const override {
701
2.21k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
702
2.21k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
703
704
2.21k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
705
2.21k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
706
2.21k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
707
2.21k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
708
709
2.21k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
710
2.21k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
711
712
        /// The case when arguments are the same (tautological comparison). Return constant.
713
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
714
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
715
2.21k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
716
2.21k
            col_left_untyped == col_right_untyped) {
717
            /// Always true: =, <=, >=
718
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
719
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
720
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
721
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
722
                block.get_by_position(result).column =
723
                        DataTypeUInt8()
724
                                .create_column_const(input_rows_count,
725
                                                     Field::create_field<TYPE_BOOLEAN>(1))
726
                                ->convert_to_full_column_if_const();
727
                return Status::OK();
728
0
            } else {
729
0
                block.get_by_position(result).column =
730
0
                        DataTypeUInt8()
731
0
                                .create_column_const(input_rows_count,
732
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
733
0
                                ->convert_to_full_column_if_const();
734
0
                return Status::OK();
735
0
            }
736
0
        }
737
738
0
        auto can_compare = [](PrimitiveType t) -> bool {
739
2.21k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
740
2.21k
        };
741
742
2.21k
        if (can_compare(left_type->get_primitive_type()) &&
743
2.21k
            can_compare(right_type->get_primitive_type())) {
744
            // check left type equals right type TODO: remove this after FE is aware of scales difference
745
1.99k
            if (!left_type->equals_ignore_precision(*right_type)) {
746
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
747
0
                                            get_name(), left_type->get_name(),
748
0
                                            right_type->get_name());
749
0
            }
750
1.99k
        }
751
752
2.21k
        auto compare_type = left_type->get_primitive_type();
753
2.21k
        switch (compare_type) {
754
0
        case TYPE_BOOLEAN:
755
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
756
70
        case TYPE_DATEV2:
757
70
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
758
0
        case TYPE_DATETIMEV2:
759
0
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
760
0
        case TYPE_TIMESTAMPTZ:
761
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
762
84
        case TYPE_TINYINT:
763
84
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
764
0
        case TYPE_SMALLINT:
765
0
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
766
584
        case TYPE_INT:
767
584
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
768
1.15k
        case TYPE_BIGINT:
769
1.15k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
770
0
        case TYPE_LARGEINT:
771
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
772
0
        case TYPE_IPV4:
773
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
774
0
        case TYPE_IPV6:
775
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
776
48
        case TYPE_FLOAT:
777
48
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
778
60
        case TYPE_DOUBLE:
779
60
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
780
0
        case TYPE_TIMEV2:
781
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
782
0
        case TYPE_DECIMALV2:
783
0
        case TYPE_DECIMAL32:
784
61
        case TYPE_DECIMAL64:
785
89
        case TYPE_DECIMAL128I:
786
119
        case TYPE_DECIMAL256:
787
119
            return execute_decimal(block, result, col_with_type_and_name_left,
788
119
                                   col_with_type_and_name_right);
789
1
        case TYPE_CHAR:
790
25
        case TYPE_VARCHAR:
791
87
        case TYPE_STRING:
792
87
            return execute_string(block, result, col_left_untyped, col_right_untyped);
793
8
        default:
794
8
            return execute_generic(block, result, col_with_type_and_name_left,
795
8
                                   col_with_type_and_name_right);
796
2.21k
        }
797
0
        return Status::OK();
798
2.21k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
700
73.7k
                        uint32_t result, size_t input_rows_count) const override {
701
73.7k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
702
73.7k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
703
704
73.7k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
705
73.7k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
706
73.7k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
707
73.7k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
708
709
73.7k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
710
73.7k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
711
712
        /// The case when arguments are the same (tautological comparison). Return constant.
713
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
714
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
715
73.7k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
716
73.7k
            col_left_untyped == col_right_untyped) {
717
            /// Always true: =, <=, >=
718
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
719
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
720
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
721
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
722
                block.get_by_position(result).column =
723
                        DataTypeUInt8()
724
                                .create_column_const(input_rows_count,
725
                                                     Field::create_field<TYPE_BOOLEAN>(1))
726
                                ->convert_to_full_column_if_const();
727
                return Status::OK();
728
0
            } else {
729
0
                block.get_by_position(result).column =
730
0
                        DataTypeUInt8()
731
0
                                .create_column_const(input_rows_count,
732
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
733
0
                                ->convert_to_full_column_if_const();
734
0
                return Status::OK();
735
0
            }
736
0
        }
737
738
0
        auto can_compare = [](PrimitiveType t) -> bool {
739
73.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
740
73.7k
        };
741
742
73.7k
        if (can_compare(left_type->get_primitive_type()) &&
743
73.7k
            can_compare(right_type->get_primitive_type())) {
744
            // check left type equals right type TODO: remove this after FE is aware of scales difference
745
72.7k
            if (!left_type->equals_ignore_precision(*right_type)) {
746
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
747
0
                                            get_name(), left_type->get_name(),
748
0
                                            right_type->get_name());
749
0
            }
750
72.7k
        }
751
752
73.7k
        auto compare_type = left_type->get_primitive_type();
753
73.7k
        switch (compare_type) {
754
0
        case TYPE_BOOLEAN:
755
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
756
1.08k
        case TYPE_DATEV2:
757
1.08k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
758
2
        case TYPE_DATETIMEV2:
759
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
760
1
        case TYPE_TIMESTAMPTZ:
761
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
762
1.26k
        case TYPE_TINYINT:
763
1.26k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
764
1.75k
        case TYPE_SMALLINT:
765
1.75k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
766
66.3k
        case TYPE_INT:
767
66.3k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
768
1.25k
        case TYPE_BIGINT:
769
1.25k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
770
256
        case TYPE_LARGEINT:
771
256
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
772
4
        case TYPE_IPV4:
773
4
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
774
1
        case TYPE_IPV6:
775
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
776
220
        case TYPE_FLOAT:
777
220
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
778
536
        case TYPE_DOUBLE:
779
536
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
780
0
        case TYPE_TIMEV2:
781
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
782
0
        case TYPE_DECIMALV2:
783
8
        case TYPE_DECIMAL32:
784
74
        case TYPE_DECIMAL64:
785
770
        case TYPE_DECIMAL128I:
786
772
        case TYPE_DECIMAL256:
787
772
            return execute_decimal(block, result, col_with_type_and_name_left,
788
772
                                   col_with_type_and_name_right);
789
21
        case TYPE_CHAR:
790
73
        case TYPE_VARCHAR:
791
176
        case TYPE_STRING:
792
176
            return execute_string(block, result, col_left_untyped, col_right_untyped);
793
9
        default:
794
9
            return execute_generic(block, result, col_with_type_and_name_left,
795
9
                                   col_with_type_and_name_right);
796
73.7k
        }
797
0
        return Status::OK();
798
73.7k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
700
2.35k
                        uint32_t result, size_t input_rows_count) const override {
701
2.35k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
702
2.35k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
703
704
2.35k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
705
2.35k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
706
2.35k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
707
2.35k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
708
709
2.35k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
710
2.35k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
711
712
        /// The case when arguments are the same (tautological comparison). Return constant.
713
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
714
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
715
2.35k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
716
2.35k
            col_left_untyped == col_right_untyped) {
717
            /// Always true: =, <=, >=
718
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
719
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
720
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
721
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
722
0
                block.get_by_position(result).column =
723
0
                        DataTypeUInt8()
724
0
                                .create_column_const(input_rows_count,
725
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
726
0
                                ->convert_to_full_column_if_const();
727
0
                return Status::OK();
728
            } else {
729
                block.get_by_position(result).column =
730
                        DataTypeUInt8()
731
                                .create_column_const(input_rows_count,
732
                                                     Field::create_field<TYPE_BOOLEAN>(0))
733
                                ->convert_to_full_column_if_const();
734
                return Status::OK();
735
            }
736
0
        }
737
738
0
        auto can_compare = [](PrimitiveType t) -> bool {
739
2.35k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
740
2.35k
        };
741
742
2.35k
        if (can_compare(left_type->get_primitive_type()) &&
743
2.35k
            can_compare(right_type->get_primitive_type())) {
744
            // check left type equals right type TODO: remove this after FE is aware of scales difference
745
1.88k
            if (!left_type->equals_ignore_precision(*right_type)) {
746
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
747
0
                                            get_name(), left_type->get_name(),
748
0
                                            right_type->get_name());
749
0
            }
750
1.88k
        }
751
752
2.35k
        auto compare_type = left_type->get_primitive_type();
753
2.35k
        switch (compare_type) {
754
28
        case TYPE_BOOLEAN:
755
28
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
756
483
        case TYPE_DATEV2:
757
483
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
758
144
        case TYPE_DATETIMEV2:
759
144
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
760
1
        case TYPE_TIMESTAMPTZ:
761
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
762
36
        case TYPE_TINYINT:
763
36
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
764
63
        case TYPE_SMALLINT:
765
63
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
766
718
        case TYPE_INT:
767
718
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
768
177
        case TYPE_BIGINT:
769
177
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
770
25
        case TYPE_LARGEINT:
771
25
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
772
11
        case TYPE_IPV4:
773
11
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
774
1
        case TYPE_IPV6:
775
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
776
24
        case TYPE_FLOAT:
777
24
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
778
122
        case TYPE_DOUBLE:
779
122
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
780
0
        case TYPE_TIMEV2:
781
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
782
0
        case TYPE_DECIMALV2:
783
1
        case TYPE_DECIMAL32:
784
65
        case TYPE_DECIMAL64:
785
155
        case TYPE_DECIMAL128I:
786
182
        case TYPE_DECIMAL256:
787
182
            return execute_decimal(block, result, col_with_type_and_name_left,
788
182
                                   col_with_type_and_name_right);
789
38
        case TYPE_CHAR:
790
216
        case TYPE_VARCHAR:
791
286
        case TYPE_STRING:
792
286
            return execute_string(block, result, col_left_untyped, col_right_untyped);
793
57
        default:
794
57
            return execute_generic(block, result, col_with_type_and_name_left,
795
57
                                   col_with_type_and_name_right);
796
2.35k
        }
797
0
        return Status::OK();
798
2.35k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
700
8.41k
                        uint32_t result, size_t input_rows_count) const override {
701
8.41k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
702
8.41k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
703
704
8.41k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
705
8.41k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
706
8.41k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
707
8.41k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
708
709
8.41k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
710
8.41k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
711
712
        /// The case when arguments are the same (tautological comparison). Return constant.
713
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
714
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
715
8.41k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
716
8.41k
            col_left_untyped == col_right_untyped) {
717
            /// Always true: =, <=, >=
718
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
719
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
720
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
721
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
722
                block.get_by_position(result).column =
723
                        DataTypeUInt8()
724
                                .create_column_const(input_rows_count,
725
                                                     Field::create_field<TYPE_BOOLEAN>(1))
726
                                ->convert_to_full_column_if_const();
727
                return Status::OK();
728
0
            } else {
729
0
                block.get_by_position(result).column =
730
0
                        DataTypeUInt8()
731
0
                                .create_column_const(input_rows_count,
732
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
733
0
                                ->convert_to_full_column_if_const();
734
0
                return Status::OK();
735
0
            }
736
0
        }
737
738
0
        auto can_compare = [](PrimitiveType t) -> bool {
739
8.41k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
740
8.41k
        };
741
742
8.41k
        if (can_compare(left_type->get_primitive_type()) &&
743
8.41k
            can_compare(right_type->get_primitive_type())) {
744
            // check left type equals right type TODO: remove this after FE is aware of scales difference
745
7.20k
            if (!left_type->equals_ignore_precision(*right_type)) {
746
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
747
0
                                            get_name(), left_type->get_name(),
748
0
                                            right_type->get_name());
749
0
            }
750
7.20k
        }
751
752
8.41k
        auto compare_type = left_type->get_primitive_type();
753
8.41k
        switch (compare_type) {
754
68
        case TYPE_BOOLEAN:
755
68
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
756
2.14k
        case TYPE_DATEV2:
757
2.14k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
758
300
        case TYPE_DATETIMEV2:
759
300
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
760
2
        case TYPE_TIMESTAMPTZ:
761
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
762
2.06k
        case TYPE_TINYINT:
763
2.06k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
764
129
        case TYPE_SMALLINT:
765
129
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
766
951
        case TYPE_INT:
767
951
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
768
776
        case TYPE_BIGINT:
769
776
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
770
280
        case TYPE_LARGEINT:
771
280
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
772
18
        case TYPE_IPV4:
773
18
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
774
16
        case TYPE_IPV6:
775
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
776
123
        case TYPE_FLOAT:
777
123
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
778
327
        case TYPE_DOUBLE:
779
327
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
780
0
        case TYPE_TIMEV2:
781
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
782
0
        case TYPE_DECIMALV2:
783
193
        case TYPE_DECIMAL32:
784
408
        case TYPE_DECIMAL64:
785
696
        case TYPE_DECIMAL128I:
786
697
        case TYPE_DECIMAL256:
787
697
            return execute_decimal(block, result, col_with_type_and_name_left,
788
697
                                   col_with_type_and_name_right);
789
177
        case TYPE_CHAR:
790
337
        case TYPE_VARCHAR:
791
497
        case TYPE_STRING:
792
497
            return execute_string(block, result, col_left_untyped, col_right_untyped);
793
11
        default:
794
11
            return execute_generic(block, result, col_with_type_and_name_left,
795
11
                                   col_with_type_and_name_right);
796
8.41k
        }
797
0
        return Status::OK();
798
8.41k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
700
7.97k
                        uint32_t result, size_t input_rows_count) const override {
701
7.97k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
702
7.97k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
703
704
7.97k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
705
7.97k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
706
7.97k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
707
7.97k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
708
709
7.97k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
710
7.97k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
711
712
        /// The case when arguments are the same (tautological comparison). Return constant.
713
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
714
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
715
7.97k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
716
7.97k
            col_left_untyped == col_right_untyped) {
717
            /// Always true: =, <=, >=
718
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
719
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
720
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
721
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
722
0
                block.get_by_position(result).column =
723
0
                        DataTypeUInt8()
724
0
                                .create_column_const(input_rows_count,
725
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
726
0
                                ->convert_to_full_column_if_const();
727
0
                return Status::OK();
728
            } else {
729
                block.get_by_position(result).column =
730
                        DataTypeUInt8()
731
                                .create_column_const(input_rows_count,
732
                                                     Field::create_field<TYPE_BOOLEAN>(0))
733
                                ->convert_to_full_column_if_const();
734
                return Status::OK();
735
            }
736
0
        }
737
738
0
        auto can_compare = [](PrimitiveType t) -> bool {
739
7.97k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
740
7.97k
        };
741
742
7.97k
        if (can_compare(left_type->get_primitive_type()) &&
743
7.97k
            can_compare(right_type->get_primitive_type())) {
744
            // check left type equals right type TODO: remove this after FE is aware of scales difference
745
7.59k
            if (!left_type->equals_ignore_precision(*right_type)) {
746
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
747
0
                                            get_name(), left_type->get_name(),
748
0
                                            right_type->get_name());
749
0
            }
750
7.59k
        }
751
752
7.97k
        auto compare_type = left_type->get_primitive_type();
753
7.97k
        switch (compare_type) {
754
22
        case TYPE_BOOLEAN:
755
22
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
756
527
        case TYPE_DATEV2:
757
527
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
758
44
        case TYPE_DATETIMEV2:
759
44
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
760
1
        case TYPE_TIMESTAMPTZ:
761
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
762
40
        case TYPE_TINYINT:
763
40
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
764
57
        case TYPE_SMALLINT:
765
57
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
766
6.32k
        case TYPE_INT:
767
6.32k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
768
349
        case TYPE_BIGINT:
769
349
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
770
27
        case TYPE_LARGEINT:
771
27
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
772
10
        case TYPE_IPV4:
773
10
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
774
0
        case TYPE_IPV6:
775
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
776
20
        case TYPE_FLOAT:
777
20
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
778
126
        case TYPE_DOUBLE:
779
126
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
780
0
        case TYPE_TIMEV2:
781
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
782
0
        case TYPE_DECIMALV2:
783
4
        case TYPE_DECIMAL32:
784
78
        case TYPE_DECIMAL64:
785
151
        case TYPE_DECIMAL128I:
786
173
        case TYPE_DECIMAL256:
787
173
            return execute_decimal(block, result, col_with_type_and_name_left,
788
173
                                   col_with_type_and_name_right);
789
37
        case TYPE_CHAR:
790
142
        case TYPE_VARCHAR:
791
200
        case TYPE_STRING:
792
200
            return execute_string(block, result, col_left_untyped, col_right_untyped);
793
50
        default:
794
50
            return execute_generic(block, result, col_with_type_and_name_left,
795
50
                                   col_with_type_and_name_right);
796
7.97k
        }
797
0
        return Status::OK();
798
7.97k
    }
799
};
800
801
} // namespace doris