Coverage Report

Created: 2026-04-13 10:38

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 <limits>
24
#include <type_traits>
25
26
#include "common/logging.h"
27
#include "core/accurate_comparison.h"
28
#include "core/assert_cast.h"
29
#include "core/column/column_const.h"
30
#include "core/column/column_decimal.h"
31
#include "core/column/column_nullable.h"
32
#include "core/column/column_string.h"
33
#include "core/data_type/data_type_number.h"
34
#include "core/data_type/data_type_string.h"
35
#include "core/data_type/define_primitive_type.h"
36
#include "core/decimal_comparison.h"
37
#include "core/memcmp_small.h"
38
#include "core/value/vdatetime_value.h"
39
#include "exprs/function/function.h"
40
#include "exprs/function/function_helpers.h"
41
#include "exprs/function/functions_logical.h"
42
#include "storage/index/index_reader_helper.h"
43
44
namespace doris {
45
46
/** Comparison functions: ==, !=, <, >, <=, >=.
47
  * The comparison functions always return 0 or 1 (UInt8).
48
  *
49
  * You can compare the following types:
50
  * - numbers and decimals;
51
  * - strings and fixed strings;
52
  * - dates;
53
  * - datetimes;
54
  *   within each group, but not from different groups;
55
  * - tuples (lexicographic comparison).
56
  *
57
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
58
  */
59
60
template <typename A, typename B, typename Op>
61
struct NumComparisonImpl {
62
    /// 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.
63
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
64
12.2k
                                        PaddedPODArray<UInt8>& c) {
65
12.2k
        size_t size = a.size();
66
12.2k
        const A* __restrict a_pos = a.data();
67
12.2k
        const B* __restrict b_pos = b.data();
68
12.2k
        UInt8* __restrict c_pos = c.data();
69
12.2k
        const A* __restrict a_end = a_pos + size;
70
71
10.7M
        while (a_pos < a_end) {
72
10.7M
            *c_pos = Op::apply(*a_pos, *b_pos);
73
10.7M
            ++a_pos;
74
10.7M
            ++b_pos;
75
10.7M
            ++c_pos;
76
10.7M
        }
77
12.2k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
64
76
                                        PaddedPODArray<UInt8>& c) {
65
76
        size_t size = a.size();
66
76
        const A* __restrict a_pos = a.data();
67
76
        const B* __restrict b_pos = b.data();
68
76
        UInt8* __restrict c_pos = c.data();
69
76
        const A* __restrict a_end = a_pos + size;
70
71
152
        while (a_pos < a_end) {
72
76
            *c_pos = Op::apply(*a_pos, *b_pos);
73
76
            ++a_pos;
74
76
            ++b_pos;
75
76
            ++c_pos;
76
76
        }
77
76
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
229
                                        PaddedPODArray<UInt8>& c) {
65
229
        size_t size = a.size();
66
229
        const A* __restrict a_pos = a.data();
67
229
        const B* __restrict b_pos = b.data();
68
229
        UInt8* __restrict c_pos = c.data();
69
229
        const A* __restrict a_end = a_pos + size;
70
71
464
        while (a_pos < a_end) {
72
235
            *c_pos = Op::apply(*a_pos, *b_pos);
73
235
            ++a_pos;
74
235
            ++b_pos;
75
235
            ++c_pos;
76
235
        }
77
229
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
278
                                        PaddedPODArray<UInt8>& c) {
65
278
        size_t size = a.size();
66
278
        const A* __restrict a_pos = a.data();
67
278
        const B* __restrict b_pos = b.data();
68
278
        UInt8* __restrict c_pos = c.data();
69
278
        const A* __restrict a_end = a_pos + size;
70
71
577
        while (a_pos < a_end) {
72
299
            *c_pos = Op::apply(*a_pos, *b_pos);
73
299
            ++a_pos;
74
299
            ++b_pos;
75
299
            ++c_pos;
76
299
        }
77
278
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
64
3
                                        PaddedPODArray<UInt8>& c) {
65
3
        size_t size = a.size();
66
3
        const A* __restrict a_pos = a.data();
67
3
        const B* __restrict b_pos = b.data();
68
3
        UInt8* __restrict c_pos = c.data();
69
3
        const A* __restrict a_end = a_pos + size;
70
71
12
        while (a_pos < a_end) {
72
9
            *c_pos = Op::apply(*a_pos, *b_pos);
73
9
            ++a_pos;
74
9
            ++b_pos;
75
9
            ++c_pos;
76
9
        }
77
3
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
829
                                        PaddedPODArray<UInt8>& c) {
65
829
        size_t size = a.size();
66
829
        const A* __restrict a_pos = a.data();
67
829
        const B* __restrict b_pos = b.data();
68
829
        UInt8* __restrict c_pos = c.data();
69
829
        const A* __restrict a_end = a_pos + size;
70
71
5.14k
        while (a_pos < a_end) {
72
4.31k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
4.31k
            ++a_pos;
74
4.31k
            ++b_pos;
75
4.31k
            ++c_pos;
76
4.31k
        }
77
829
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
132
                                        PaddedPODArray<UInt8>& c) {
65
132
        size_t size = a.size();
66
132
        const A* __restrict a_pos = a.data();
67
132
        const B* __restrict b_pos = b.data();
68
132
        UInt8* __restrict c_pos = c.data();
69
132
        const A* __restrict a_end = a_pos + size;
70
71
564
        while (a_pos < a_end) {
72
432
            *c_pos = Op::apply(*a_pos, *b_pos);
73
432
            ++a_pos;
74
432
            ++b_pos;
75
432
            ++c_pos;
76
432
        }
77
132
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
279
                                        PaddedPODArray<UInt8>& c) {
65
279
        size_t size = a.size();
66
279
        const A* __restrict a_pos = a.data();
67
279
        const B* __restrict b_pos = b.data();
68
279
        UInt8* __restrict c_pos = c.data();
69
279
        const A* __restrict a_end = a_pos + size;
70
71
2.03k
        while (a_pos < a_end) {
72
1.75k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1.75k
            ++a_pos;
74
1.75k
            ++b_pos;
75
1.75k
            ++c_pos;
76
1.75k
        }
77
279
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
419
                                        PaddedPODArray<UInt8>& c) {
65
419
        size_t size = a.size();
66
419
        const A* __restrict a_pos = a.data();
67
419
        const B* __restrict b_pos = b.data();
68
419
        UInt8* __restrict c_pos = c.data();
69
419
        const A* __restrict a_end = a_pos + size;
70
71
12.0k
        while (a_pos < a_end) {
72
11.6k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
11.6k
            ++a_pos;
74
11.6k
            ++b_pos;
75
11.6k
            ++c_pos;
76
11.6k
        }
77
419
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
88
                                        PaddedPODArray<UInt8>& c) {
65
88
        size_t size = a.size();
66
88
        const A* __restrict a_pos = a.data();
67
88
        const B* __restrict b_pos = b.data();
68
88
        UInt8* __restrict c_pos = c.data();
69
88
        const A* __restrict a_end = a_pos + size;
70
71
188
        while (a_pos < a_end) {
72
100
            *c_pos = Op::apply(*a_pos, *b_pos);
73
100
            ++a_pos;
74
100
            ++b_pos;
75
100
            ++c_pos;
76
100
        }
77
88
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
16
                                        PaddedPODArray<UInt8>& c) {
65
16
        size_t size = a.size();
66
16
        const A* __restrict a_pos = a.data();
67
16
        const B* __restrict b_pos = b.data();
68
16
        UInt8* __restrict c_pos = c.data();
69
16
        const A* __restrict a_end = a_pos + size;
70
71
32
        while (a_pos < a_end) {
72
16
            *c_pos = Op::apply(*a_pos, *b_pos);
73
16
            ++a_pos;
74
16
            ++b_pos;
75
16
            ++c_pos;
76
16
        }
77
16
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
24
                                        PaddedPODArray<UInt8>& c) {
65
24
        size_t size = a.size();
66
24
        const A* __restrict a_pos = a.data();
67
24
        const B* __restrict b_pos = b.data();
68
24
        UInt8* __restrict c_pos = c.data();
69
24
        const A* __restrict a_end = a_pos + size;
70
71
48
        while (a_pos < a_end) {
72
24
            *c_pos = Op::apply(*a_pos, *b_pos);
73
24
            ++a_pos;
74
24
            ++b_pos;
75
24
            ++c_pos;
76
24
        }
77
24
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
104
                                        PaddedPODArray<UInt8>& c) {
65
104
        size_t size = a.size();
66
104
        const A* __restrict a_pos = a.data();
67
104
        const B* __restrict b_pos = b.data();
68
104
        UInt8* __restrict c_pos = c.data();
69
104
        const A* __restrict a_end = a_pos + size;
70
71
227
        while (a_pos < a_end) {
72
123
            *c_pos = Op::apply(*a_pos, *b_pos);
73
123
            ++a_pos;
74
123
            ++b_pos;
75
123
            ++c_pos;
76
123
        }
77
104
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
105
                                        PaddedPODArray<UInt8>& c) {
65
105
        size_t size = a.size();
66
105
        const A* __restrict a_pos = a.data();
67
105
        const B* __restrict b_pos = b.data();
68
105
        UInt8* __restrict c_pos = c.data();
69
105
        const A* __restrict a_end = a_pos + size;
70
71
231
        while (a_pos < a_end) {
72
126
            *c_pos = Op::apply(*a_pos, *b_pos);
73
126
            ++a_pos;
74
126
            ++b_pos;
75
126
            ++c_pos;
76
126
        }
77
105
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
4
                                        PaddedPODArray<UInt8>& c) {
65
4
        size_t size = a.size();
66
4
        const A* __restrict a_pos = a.data();
67
4
        const B* __restrict b_pos = b.data();
68
4
        UInt8* __restrict c_pos = c.data();
69
4
        const A* __restrict a_end = a_pos + size;
70
71
8
        while (a_pos < a_end) {
72
4
            *c_pos = Op::apply(*a_pos, *b_pos);
73
4
            ++a_pos;
74
4
            ++b_pos;
75
4
            ++c_pos;
76
4
        }
77
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
64
39
                                        PaddedPODArray<UInt8>& c) {
65
39
        size_t size = a.size();
66
39
        const A* __restrict a_pos = a.data();
67
39
        const B* __restrict b_pos = b.data();
68
39
        UInt8* __restrict c_pos = c.data();
69
39
        const A* __restrict a_end = a_pos + size;
70
71
108
        while (a_pos < a_end) {
72
69
            *c_pos = Op::apply(*a_pos, *b_pos);
73
69
            ++a_pos;
74
69
            ++b_pos;
75
69
            ++c_pos;
76
69
        }
77
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
64
56
                                        PaddedPODArray<UInt8>& c) {
65
56
        size_t size = a.size();
66
56
        const A* __restrict a_pos = a.data();
67
56
        const B* __restrict b_pos = b.data();
68
56
        UInt8* __restrict c_pos = c.data();
69
56
        const A* __restrict a_end = a_pos + size;
70
71
252
        while (a_pos < a_end) {
72
196
            *c_pos = Op::apply(*a_pos, *b_pos);
73
196
            ++a_pos;
74
196
            ++b_pos;
75
196
            ++c_pos;
76
196
        }
77
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
64
658
                                        PaddedPODArray<UInt8>& c) {
65
658
        size_t size = a.size();
66
658
        const A* __restrict a_pos = a.data();
67
658
        const B* __restrict b_pos = b.data();
68
658
        UInt8* __restrict c_pos = c.data();
69
658
        const A* __restrict a_end = a_pos + size;
70
71
296k
        while (a_pos < a_end) {
72
295k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
295k
            ++a_pos;
74
295k
            ++b_pos;
75
295k
            ++c_pos;
76
295k
        }
77
658
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
463
                                        PaddedPODArray<UInt8>& c) {
65
463
        size_t size = a.size();
66
463
        const A* __restrict a_pos = a.data();
67
463
        const B* __restrict b_pos = b.data();
68
463
        UInt8* __restrict c_pos = c.data();
69
463
        const A* __restrict a_end = a_pos + size;
70
71
25.8k
        while (a_pos < a_end) {
72
25.4k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
25.4k
            ++a_pos;
74
25.4k
            ++b_pos;
75
25.4k
            ++c_pos;
76
25.4k
        }
77
463
    }
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
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
59
        while (a_pos < a_end) {
72
39
            *c_pos = Op::apply(*a_pos, *b_pos);
73
39
            ++a_pos;
74
39
            ++b_pos;
75
39
            ++c_pos;
76
39
        }
77
20
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
59
        while (a_pos < a_end) {
72
39
            *c_pos = Op::apply(*a_pos, *b_pos);
73
39
            ++a_pos;
74
39
            ++b_pos;
75
39
            ++c_pos;
76
39
        }
77
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
64
1.02k
                                        PaddedPODArray<UInt8>& c) {
65
1.02k
        size_t size = a.size();
66
1.02k
        const A* __restrict a_pos = a.data();
67
1.02k
        const B* __restrict b_pos = b.data();
68
1.02k
        UInt8* __restrict c_pos = c.data();
69
1.02k
        const A* __restrict a_end = a_pos + size;
70
71
3.75M
        while (a_pos < a_end) {
72
3.75M
            *c_pos = Op::apply(*a_pos, *b_pos);
73
3.75M
            ++a_pos;
74
3.75M
            ++b_pos;
75
3.75M
            ++c_pos;
76
3.75M
        }
77
1.02k
    }
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
64
3
                                        PaddedPODArray<UInt8>& c) {
65
3
        size_t size = a.size();
66
3
        const A* __restrict a_pos = a.data();
67
3
        const B* __restrict b_pos = b.data();
68
3
        UInt8* __restrict c_pos = c.data();
69
3
        const A* __restrict a_end = a_pos + size;
70
71
12
        while (a_pos < a_end) {
72
9
            *c_pos = Op::apply(*a_pos, *b_pos);
73
9
            ++a_pos;
74
9
            ++b_pos;
75
9
            ++c_pos;
76
9
        }
77
3
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
371
                                        PaddedPODArray<UInt8>& c) {
65
371
        size_t size = a.size();
66
371
        const A* __restrict a_pos = a.data();
67
371
        const B* __restrict b_pos = b.data();
68
371
        UInt8* __restrict c_pos = c.data();
69
371
        const A* __restrict a_end = a_pos + size;
70
71
2.70k
        while (a_pos < a_end) {
72
2.33k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
2.33k
            ++a_pos;
74
2.33k
            ++b_pos;
75
2.33k
            ++c_pos;
76
2.33k
        }
77
371
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
575
                                        PaddedPODArray<UInt8>& c) {
65
575
        size_t size = a.size();
66
575
        const A* __restrict a_pos = a.data();
67
575
        const B* __restrict b_pos = b.data();
68
575
        UInt8* __restrict c_pos = c.data();
69
575
        const A* __restrict a_end = a_pos + size;
70
71
4.10k
        while (a_pos < a_end) {
72
3.53k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
3.53k
            ++a_pos;
74
3.53k
            ++b_pos;
75
3.53k
            ++c_pos;
76
3.53k
        }
77
575
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
1.78k
                                        PaddedPODArray<UInt8>& c) {
65
1.78k
        size_t size = a.size();
66
1.78k
        const A* __restrict a_pos = a.data();
67
1.78k
        const B* __restrict b_pos = b.data();
68
1.78k
        UInt8* __restrict c_pos = c.data();
69
1.78k
        const A* __restrict a_end = a_pos + size;
70
71
5.40M
        while (a_pos < a_end) {
72
5.40M
            *c_pos = Op::apply(*a_pos, *b_pos);
73
5.40M
            ++a_pos;
74
5.40M
            ++b_pos;
75
5.40M
            ++c_pos;
76
5.40M
        }
77
1.78k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
153
                                        PaddedPODArray<UInt8>& c) {
65
153
        size_t size = a.size();
66
153
        const A* __restrict a_pos = a.data();
67
153
        const B* __restrict b_pos = b.data();
68
153
        UInt8* __restrict c_pos = c.data();
69
153
        const A* __restrict a_end = a_pos + size;
70
71
1.71k
        while (a_pos < a_end) {
72
1.55k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1.55k
            ++a_pos;
74
1.55k
            ++b_pos;
75
1.55k
            ++c_pos;
76
1.55k
        }
77
153
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
21
                                        PaddedPODArray<UInt8>& c) {
65
21
        size_t size = a.size();
66
21
        const A* __restrict a_pos = a.data();
67
21
        const B* __restrict b_pos = b.data();
68
21
        UInt8* __restrict c_pos = c.data();
69
21
        const A* __restrict a_end = a_pos + size;
70
71
99
        while (a_pos < a_end) {
72
78
            *c_pos = Op::apply(*a_pos, *b_pos);
73
78
            ++a_pos;
74
78
            ++b_pos;
75
78
            ++c_pos;
76
78
        }
77
21
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
1
                                        PaddedPODArray<UInt8>& c) {
65
1
        size_t size = a.size();
66
1
        const A* __restrict a_pos = a.data();
67
1
        const B* __restrict b_pos = b.data();
68
1
        UInt8* __restrict c_pos = c.data();
69
1
        const A* __restrict a_end = a_pos + size;
70
71
2
        while (a_pos < a_end) {
72
1
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1
            ++a_pos;
74
1
            ++b_pos;
75
1
            ++c_pos;
76
1
        }
77
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
1
                                        PaddedPODArray<UInt8>& c) {
65
1
        size_t size = a.size();
66
1
        const A* __restrict a_pos = a.data();
67
1
        const B* __restrict b_pos = b.data();
68
1
        UInt8* __restrict c_pos = c.data();
69
1
        const A* __restrict a_end = a_pos + size;
70
71
2
        while (a_pos < a_end) {
72
1
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1
            ++a_pos;
74
1
            ++b_pos;
75
1
            ++c_pos;
76
1
        }
77
1
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
59
        while (a_pos < a_end) {
72
39
            *c_pos = Op::apply(*a_pos, *b_pos);
73
39
            ++a_pos;
74
39
            ++b_pos;
75
39
            ++c_pos;
76
39
        }
77
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
45
                                        PaddedPODArray<UInt8>& c) {
65
45
        size_t size = a.size();
66
45
        const A* __restrict a_pos = a.data();
67
45
        const B* __restrict b_pos = b.data();
68
45
        UInt8* __restrict c_pos = c.data();
69
45
        const A* __restrict a_end = a_pos + size;
70
71
140
        while (a_pos < a_end) {
72
95
            *c_pos = Op::apply(*a_pos, *b_pos);
73
95
            ++a_pos;
74
95
            ++b_pos;
75
95
            ++c_pos;
76
95
        }
77
45
    }
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
64
7
                                        PaddedPODArray<UInt8>& c) {
65
7
        size_t size = a.size();
66
7
        const A* __restrict a_pos = a.data();
67
7
        const B* __restrict b_pos = b.data();
68
7
        UInt8* __restrict c_pos = c.data();
69
7
        const A* __restrict a_end = a_pos + size;
70
71
38
        while (a_pos < a_end) {
72
31
            *c_pos = Op::apply(*a_pos, *b_pos);
73
31
            ++a_pos;
74
31
            ++b_pos;
75
31
            ++c_pos;
76
31
        }
77
7
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
6
                                        PaddedPODArray<UInt8>& c) {
65
6
        size_t size = a.size();
66
6
        const A* __restrict a_pos = a.data();
67
6
        const B* __restrict b_pos = b.data();
68
6
        UInt8* __restrict c_pos = c.data();
69
6
        const A* __restrict a_end = a_pos + size;
70
71
70
        while (a_pos < a_end) {
72
64
            *c_pos = Op::apply(*a_pos, *b_pos);
73
64
            ++a_pos;
74
64
            ++b_pos;
75
64
            ++c_pos;
76
64
        }
77
6
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
64
3
                                        PaddedPODArray<UInt8>& c) {
65
3
        size_t size = a.size();
66
3
        const A* __restrict a_pos = a.data();
67
3
        const B* __restrict b_pos = b.data();
68
3
        UInt8* __restrict c_pos = c.data();
69
3
        const A* __restrict a_end = a_pos + size;
70
71
12
        while (a_pos < a_end) {
72
9
            *c_pos = Op::apply(*a_pos, *b_pos);
73
9
            ++a_pos;
74
9
            ++b_pos;
75
9
            ++c_pos;
76
9
        }
77
3
    }
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
64
3
                                        PaddedPODArray<UInt8>& c) {
65
3
        size_t size = a.size();
66
3
        const A* __restrict a_pos = a.data();
67
3
        const B* __restrict b_pos = b.data();
68
3
        UInt8* __restrict c_pos = c.data();
69
3
        const A* __restrict a_end = a_pos + size;
70
71
7
        while (a_pos < a_end) {
72
4
            *c_pos = Op::apply(*a_pos, *b_pos);
73
4
            ++a_pos;
74
4
            ++b_pos;
75
4
            ++c_pos;
76
4
        }
77
3
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
9
                                        PaddedPODArray<UInt8>& c) {
65
9
        size_t size = a.size();
66
9
        const A* __restrict a_pos = a.data();
67
9
        const B* __restrict b_pos = b.data();
68
9
        UInt8* __restrict c_pos = c.data();
69
9
        const A* __restrict a_end = a_pos + size;
70
71
64
        while (a_pos < a_end) {
72
55
            *c_pos = Op::apply(*a_pos, *b_pos);
73
55
            ++a_pos;
74
55
            ++b_pos;
75
55
            ++c_pos;
76
55
        }
77
9
    }
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
64
1
                                        PaddedPODArray<UInt8>& c) {
65
1
        size_t size = a.size();
66
1
        const A* __restrict a_pos = a.data();
67
1
        const B* __restrict b_pos = b.data();
68
1
        UInt8* __restrict c_pos = c.data();
69
1
        const A* __restrict a_end = a_pos + size;
70
71
2
        while (a_pos < a_end) {
72
1
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1
            ++a_pos;
74
1
            ++b_pos;
75
1
            ++c_pos;
76
1
        }
77
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
1
                                        PaddedPODArray<UInt8>& c) {
65
1
        size_t size = a.size();
66
1
        const A* __restrict a_pos = a.data();
67
1
        const B* __restrict b_pos = b.data();
68
1
        UInt8* __restrict c_pos = c.data();
69
1
        const A* __restrict a_end = a_pos + size;
70
71
2
        while (a_pos < a_end) {
72
1
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1
            ++a_pos;
74
1
            ++b_pos;
75
1
            ++c_pos;
76
1
        }
77
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
59
        while (a_pos < a_end) {
72
39
            *c_pos = Op::apply(*a_pos, *b_pos);
73
39
            ++a_pos;
74
39
            ++b_pos;
75
39
            ++c_pos;
76
39
        }
77
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
48
                                        PaddedPODArray<UInt8>& c) {
65
48
        size_t size = a.size();
66
48
        const A* __restrict a_pos = a.data();
67
48
        const B* __restrict b_pos = b.data();
68
48
        UInt8* __restrict c_pos = c.data();
69
48
        const A* __restrict a_end = a_pos + size;
70
71
154
        while (a_pos < a_end) {
72
106
            *c_pos = Op::apply(*a_pos, *b_pos);
73
106
            ++a_pos;
74
106
            ++b_pos;
75
106
            ++c_pos;
76
106
        }
77
48
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
64
81
                                        PaddedPODArray<UInt8>& c) {
65
81
        size_t size = a.size();
66
81
        const A* __restrict a_pos = a.data();
67
81
        const B* __restrict b_pos = b.data();
68
81
        UInt8* __restrict c_pos = c.data();
69
81
        const A* __restrict a_end = a_pos + size;
70
71
162
        while (a_pos < a_end) {
72
81
            *c_pos = Op::apply(*a_pos, *b_pos);
73
81
            ++a_pos;
74
81
            ++b_pos;
75
81
            ++c_pos;
76
81
        }
77
81
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
1.76k
                                        PaddedPODArray<UInt8>& c) {
65
1.76k
        size_t size = a.size();
66
1.76k
        const A* __restrict a_pos = a.data();
67
1.76k
        const B* __restrict b_pos = b.data();
68
1.76k
        UInt8* __restrict c_pos = c.data();
69
1.76k
        const A* __restrict a_end = a_pos + size;
70
71
1.22M
        while (a_pos < a_end) {
72
1.22M
            *c_pos = Op::apply(*a_pos, *b_pos);
73
1.22M
            ++a_pos;
74
1.22M
            ++b_pos;
75
1.22M
            ++c_pos;
76
1.22M
        }
77
1.76k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
64
214
                                        PaddedPODArray<UInt8>& c) {
65
214
        size_t size = a.size();
66
214
        const A* __restrict a_pos = a.data();
67
214
        const B* __restrict b_pos = b.data();
68
214
        UInt8* __restrict c_pos = c.data();
69
214
        const A* __restrict a_end = a_pos + size;
70
71
428
        while (a_pos < a_end) {
72
214
            *c_pos = Op::apply(*a_pos, *b_pos);
73
214
            ++a_pos;
74
214
            ++b_pos;
75
214
            ++c_pos;
76
214
        }
77
214
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
64
3
                                        PaddedPODArray<UInt8>& c) {
65
3
        size_t size = a.size();
66
3
        const A* __restrict a_pos = a.data();
67
3
        const B* __restrict b_pos = b.data();
68
3
        UInt8* __restrict c_pos = c.data();
69
3
        const A* __restrict a_end = a_pos + size;
70
71
12
        while (a_pos < a_end) {
72
9
            *c_pos = Op::apply(*a_pos, *b_pos);
73
9
            ++a_pos;
74
9
            ++b_pos;
75
9
            ++c_pos;
76
9
        }
77
3
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
767
                                        PaddedPODArray<UInt8>& c) {
65
767
        size_t size = a.size();
66
767
        const A* __restrict a_pos = a.data();
67
767
        const B* __restrict b_pos = b.data();
68
767
        UInt8* __restrict c_pos = c.data();
69
767
        const A* __restrict a_end = a_pos + size;
70
71
4.64k
        while (a_pos < a_end) {
72
3.87k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
3.87k
            ++a_pos;
74
3.87k
            ++b_pos;
75
3.87k
            ++c_pos;
76
3.87k
        }
77
767
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
102
                                        PaddedPODArray<UInt8>& c) {
65
102
        size_t size = a.size();
66
102
        const A* __restrict a_pos = a.data();
67
102
        const B* __restrict b_pos = b.data();
68
102
        UInt8* __restrict c_pos = c.data();
69
102
        const A* __restrict a_end = a_pos + size;
70
71
206
        while (a_pos < a_end) {
72
104
            *c_pos = Op::apply(*a_pos, *b_pos);
73
104
            ++a_pos;
74
104
            ++b_pos;
75
104
            ++c_pos;
76
104
        }
77
102
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
147
                                        PaddedPODArray<UInt8>& c) {
65
147
        size_t size = a.size();
66
147
        const A* __restrict a_pos = a.data();
67
147
        const B* __restrict b_pos = b.data();
68
147
        UInt8* __restrict c_pos = c.data();
69
147
        const A* __restrict a_end = a_pos + size;
70
71
786
        while (a_pos < a_end) {
72
639
            *c_pos = Op::apply(*a_pos, *b_pos);
73
639
            ++a_pos;
74
639
            ++b_pos;
75
639
            ++c_pos;
76
639
        }
77
147
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
226
                                        PaddedPODArray<UInt8>& c) {
65
226
        size_t size = a.size();
66
226
        const A* __restrict a_pos = a.data();
67
226
        const B* __restrict b_pos = b.data();
68
226
        UInt8* __restrict c_pos = c.data();
69
226
        const A* __restrict a_end = a_pos + size;
70
71
5.68k
        while (a_pos < a_end) {
72
5.46k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
5.46k
            ++a_pos;
74
5.46k
            ++b_pos;
75
5.46k
            ++c_pos;
76
5.46k
        }
77
226
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
150
                                        PaddedPODArray<UInt8>& c) {
65
150
        size_t size = a.size();
66
150
        const A* __restrict a_pos = a.data();
67
150
        const B* __restrict b_pos = b.data();
68
150
        UInt8* __restrict c_pos = c.data();
69
150
        const A* __restrict a_end = a_pos + size;
70
71
396
        while (a_pos < a_end) {
72
246
            *c_pos = Op::apply(*a_pos, *b_pos);
73
246
            ++a_pos;
74
246
            ++b_pos;
75
246
            ++c_pos;
76
246
        }
77
150
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
16
                                        PaddedPODArray<UInt8>& c) {
65
16
        size_t size = a.size();
66
16
        const A* __restrict a_pos = a.data();
67
16
        const B* __restrict b_pos = b.data();
68
16
        UInt8* __restrict c_pos = c.data();
69
16
        const A* __restrict a_end = a_pos + size;
70
71
32
        while (a_pos < a_end) {
72
16
            *c_pos = Op::apply(*a_pos, *b_pos);
73
16
            ++a_pos;
74
16
            ++b_pos;
75
16
            ++c_pos;
76
16
        }
77
16
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
16
                                        PaddedPODArray<UInt8>& c) {
65
16
        size_t size = a.size();
66
16
        const A* __restrict a_pos = a.data();
67
16
        const B* __restrict b_pos = b.data();
68
16
        UInt8* __restrict c_pos = c.data();
69
16
        const A* __restrict a_end = a_pos + size;
70
71
32
        while (a_pos < a_end) {
72
16
            *c_pos = Op::apply(*a_pos, *b_pos);
73
16
            ++a_pos;
74
16
            ++b_pos;
75
16
            ++c_pos;
76
16
        }
77
16
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
118
                                        PaddedPODArray<UInt8>& c) {
65
118
        size_t size = a.size();
66
118
        const A* __restrict a_pos = a.data();
67
118
        const B* __restrict b_pos = b.data();
68
118
        UInt8* __restrict c_pos = c.data();
69
118
        const A* __restrict a_end = a_pos + size;
70
71
255
        while (a_pos < a_end) {
72
137
            *c_pos = Op::apply(*a_pos, *b_pos);
73
137
            ++a_pos;
74
137
            ++b_pos;
75
137
            ++c_pos;
76
137
        }
77
118
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
124
                                        PaddedPODArray<UInt8>& c) {
65
124
        size_t size = a.size();
66
124
        const A* __restrict a_pos = a.data();
67
124
        const B* __restrict b_pos = b.data();
68
124
        UInt8* __restrict c_pos = c.data();
69
124
        const A* __restrict a_end = a_pos + size;
70
71
293
        while (a_pos < a_end) {
72
169
            *c_pos = Op::apply(*a_pos, *b_pos);
73
169
            ++a_pos;
74
169
            ++b_pos;
75
169
            ++c_pos;
76
169
        }
77
124
    }
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
64
439
                                        PaddedPODArray<UInt8>& c) {
65
439
        size_t size = a.size();
66
439
        const A* __restrict a_pos = a.data();
67
439
        const B* __restrict b_pos = b.data();
68
439
        UInt8* __restrict c_pos = c.data();
69
439
        const A* __restrict a_end = a_pos + size;
70
71
6.82k
        while (a_pos < a_end) {
72
6.38k
            *c_pos = Op::apply(*a_pos, *b_pos);
73
6.38k
            ++a_pos;
74
6.38k
            ++b_pos;
75
6.38k
            ++c_pos;
76
6.38k
        }
77
439
    }
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
64
3
                                        PaddedPODArray<UInt8>& c) {
65
3
        size_t size = a.size();
66
3
        const A* __restrict a_pos = a.data();
67
3
        const B* __restrict b_pos = b.data();
68
3
        UInt8* __restrict c_pos = c.data();
69
3
        const A* __restrict a_end = a_pos + size;
70
71
12
        while (a_pos < a_end) {
72
9
            *c_pos = Op::apply(*a_pos, *b_pos);
73
9
            ++a_pos;
74
9
            ++b_pos;
75
9
            ++c_pos;
76
9
        }
77
3
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
1
                                        PaddedPODArray<UInt8>& c) {
65
1
        size_t size = a.size();
66
1
        const A* __restrict a_pos = a.data();
67
1
        const B* __restrict b_pos = b.data();
68
1
        UInt8* __restrict c_pos = c.data();
69
1
        const A* __restrict a_end = a_pos + size;
70
71
5
        while (a_pos < a_end) {
72
4
            *c_pos = Op::apply(*a_pos, *b_pos);
73
4
            ++a_pos;
74
4
            ++b_pos;
75
4
            ++c_pos;
76
4
        }
77
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
64
41
                                        PaddedPODArray<UInt8>& c) {
65
41
        size_t size = a.size();
66
41
        const A* __restrict a_pos = a.data();
67
41
        const B* __restrict b_pos = b.data();
68
41
        UInt8* __restrict c_pos = c.data();
69
41
        const A* __restrict a_end = a_pos + size;
70
71
942
        while (a_pos < a_end) {
72
901
            *c_pos = Op::apply(*a_pos, *b_pos);
73
901
            ++a_pos;
74
901
            ++b_pos;
75
901
            ++c_pos;
76
901
        }
77
41
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
36
                                        PaddedPODArray<UInt8>& c) {
65
36
        size_t size = a.size();
66
36
        const A* __restrict a_pos = a.data();
67
36
        const B* __restrict b_pos = b.data();
68
36
        UInt8* __restrict c_pos = c.data();
69
36
        const A* __restrict a_end = a_pos + size;
70
71
220
        while (a_pos < a_end) {
72
184
            *c_pos = Op::apply(*a_pos, *b_pos);
73
184
            ++a_pos;
74
184
            ++b_pos;
75
184
            ++c_pos;
76
184
        }
77
36
    }
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
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
59
        while (a_pos < a_end) {
72
39
            *c_pos = Op::apply(*a_pos, *b_pos);
73
39
            ++a_pos;
74
39
            ++b_pos;
75
39
            ++c_pos;
76
39
        }
77
20
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
64
20
                                        PaddedPODArray<UInt8>& c) {
65
20
        size_t size = a.size();
66
20
        const A* __restrict a_pos = a.data();
67
20
        const B* __restrict b_pos = b.data();
68
20
        UInt8* __restrict c_pos = c.data();
69
20
        const A* __restrict a_end = a_pos + size;
70
71
59
        while (a_pos < a_end) {
72
39
            *c_pos = Op::apply(*a_pos, *b_pos);
73
39
            ++a_pos;
74
39
            ++b_pos;
75
39
            ++c_pos;
76
39
        }
77
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
78
79
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
80
95.2k
                                          PaddedPODArray<UInt8>& c) {
81
95.2k
        size_t size = a.size();
82
95.2k
        const A* __restrict a_pos = a.data();
83
95.2k
        UInt8* __restrict c_pos = c.data();
84
95.2k
        const A* __restrict a_end = a_pos + size;
85
86
200M
        while (a_pos < a_end) {
87
200M
            *c_pos = Op::apply(*a_pos, b);
88
200M
            ++a_pos;
89
200M
            ++c_pos;
90
200M
        }
91
95.2k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
80
1.54k
                                          PaddedPODArray<UInt8>& c) {
81
1.54k
        size_t size = a.size();
82
1.54k
        const A* __restrict a_pos = a.data();
83
1.54k
        UInt8* __restrict c_pos = c.data();
84
1.54k
        const A* __restrict a_end = a_pos + size;
85
86
5.02k
        while (a_pos < a_end) {
87
3.48k
            *c_pos = Op::apply(*a_pos, b);
88
3.48k
            ++a_pos;
89
3.48k
            ++c_pos;
90
3.48k
        }
91
1.54k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
988
                                          PaddedPODArray<UInt8>& c) {
81
988
        size_t size = a.size();
82
988
        const A* __restrict a_pos = a.data();
83
988
        UInt8* __restrict c_pos = c.data();
84
988
        const A* __restrict a_end = a_pos + size;
85
86
204k
        while (a_pos < a_end) {
87
203k
            *c_pos = Op::apply(*a_pos, b);
88
203k
            ++a_pos;
89
203k
            ++c_pos;
90
203k
        }
91
988
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
402
                                          PaddedPODArray<UInt8>& c) {
81
402
        size_t size = a.size();
82
402
        const A* __restrict a_pos = a.data();
83
402
        UInt8* __restrict c_pos = c.data();
84
402
        const A* __restrict a_end = a_pos + size;
85
86
101k
        while (a_pos < a_end) {
87
100k
            *c_pos = Op::apply(*a_pos, b);
88
100k
            ++a_pos;
89
100k
            ++c_pos;
90
100k
        }
91
402
    }
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
80
3.16k
                                          PaddedPODArray<UInt8>& c) {
81
3.16k
        size_t size = a.size();
82
3.16k
        const A* __restrict a_pos = a.data();
83
3.16k
        UInt8* __restrict c_pos = c.data();
84
3.16k
        const A* __restrict a_end = a_pos + size;
85
86
9.09M
        while (a_pos < a_end) {
87
9.09M
            *c_pos = Op::apply(*a_pos, b);
88
9.09M
            ++a_pos;
89
9.09M
            ++c_pos;
90
9.09M
        }
91
3.16k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
481
                                          PaddedPODArray<UInt8>& c) {
81
481
        size_t size = a.size();
82
481
        const A* __restrict a_pos = a.data();
83
481
        UInt8* __restrict c_pos = c.data();
84
481
        const A* __restrict a_end = a_pos + size;
85
86
126k
        while (a_pos < a_end) {
87
126k
            *c_pos = Op::apply(*a_pos, b);
88
126k
            ++a_pos;
89
126k
            ++c_pos;
90
126k
        }
91
481
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
6.99k
                                          PaddedPODArray<UInt8>& c) {
81
6.99k
        size_t size = a.size();
82
6.99k
        const A* __restrict a_pos = a.data();
83
6.99k
        UInt8* __restrict c_pos = c.data();
84
6.99k
        const A* __restrict a_end = a_pos + size;
85
86
2.37M
        while (a_pos < a_end) {
87
2.37M
            *c_pos = Op::apply(*a_pos, b);
88
2.37M
            ++a_pos;
89
2.37M
            ++c_pos;
90
2.37M
        }
91
6.99k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
10.2k
                                          PaddedPODArray<UInt8>& c) {
81
10.2k
        size_t size = a.size();
82
10.2k
        const A* __restrict a_pos = a.data();
83
10.2k
        UInt8* __restrict c_pos = c.data();
84
10.2k
        const A* __restrict a_end = a_pos + size;
85
86
3.09M
        while (a_pos < a_end) {
87
3.08M
            *c_pos = Op::apply(*a_pos, b);
88
3.08M
            ++a_pos;
89
3.08M
            ++c_pos;
90
3.08M
        }
91
10.2k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
46
                                          PaddedPODArray<UInt8>& c) {
81
46
        size_t size = a.size();
82
46
        const A* __restrict a_pos = a.data();
83
46
        UInt8* __restrict c_pos = c.data();
84
46
        const A* __restrict a_end = a_pos + size;
85
86
101k
        while (a_pos < a_end) {
87
101k
            *c_pos = Op::apply(*a_pos, b);
88
101k
            ++a_pos;
89
101k
            ++c_pos;
90
101k
        }
91
46
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
17
                                          PaddedPODArray<UInt8>& c) {
81
17
        size_t size = a.size();
82
17
        const A* __restrict a_pos = a.data();
83
17
        UInt8* __restrict c_pos = c.data();
84
17
        const A* __restrict a_end = a_pos + size;
85
86
131
        while (a_pos < a_end) {
87
114
            *c_pos = Op::apply(*a_pos, b);
88
114
            ++a_pos;
89
114
            ++c_pos;
90
114
        }
91
17
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
6
                                          PaddedPODArray<UInt8>& c) {
81
6
        size_t size = a.size();
82
6
        const A* __restrict a_pos = a.data();
83
6
        UInt8* __restrict c_pos = c.data();
84
6
        const A* __restrict a_end = a_pos + size;
85
86
12
        while (a_pos < a_end) {
87
6
            *c_pos = Op::apply(*a_pos, b);
88
6
            ++a_pos;
89
6
            ++c_pos;
90
6
        }
91
6
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
4
                                          PaddedPODArray<UInt8>& c) {
81
4
        size_t size = a.size();
82
4
        const A* __restrict a_pos = a.data();
83
4
        UInt8* __restrict c_pos = c.data();
84
4
        const A* __restrict a_end = a_pos + size;
85
86
26
        while (a_pos < a_end) {
87
22
            *c_pos = Op::apply(*a_pos, b);
88
22
            ++a_pos;
89
22
            ++c_pos;
90
22
        }
91
4
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
244
                                          PaddedPODArray<UInt8>& c) {
81
244
        size_t size = a.size();
82
244
        const A* __restrict a_pos = a.data();
83
244
        UInt8* __restrict c_pos = c.data();
84
244
        const A* __restrict a_end = a_pos + size;
85
86
701k
        while (a_pos < a_end) {
87
701k
            *c_pos = Op::apply(*a_pos, b);
88
701k
            ++a_pos;
89
701k
            ++c_pos;
90
701k
        }
91
244
    }
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
80
14
                                          PaddedPODArray<UInt8>& c) {
81
14
        size_t size = a.size();
82
14
        const A* __restrict a_pos = a.data();
83
14
        UInt8* __restrict c_pos = c.data();
84
14
        const A* __restrict a_end = a_pos + size;
85
86
29
        while (a_pos < a_end) {
87
15
            *c_pos = Op::apply(*a_pos, b);
88
15
            ++a_pos;
89
15
            ++c_pos;
90
15
        }
91
14
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
2
                                          PaddedPODArray<UInt8>& c) {
81
2
        size_t size = a.size();
82
2
        const A* __restrict a_pos = a.data();
83
2
        UInt8* __restrict c_pos = c.data();
84
2
        const A* __restrict a_end = a_pos + size;
85
86
4
        while (a_pos < a_end) {
87
2
            *c_pos = Op::apply(*a_pos, b);
88
2
            ++a_pos;
89
2
            ++c_pos;
90
2
        }
91
2
    }
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
80
36
                                          PaddedPODArray<UInt8>& c) {
81
36
        size_t size = a.size();
82
36
        const A* __restrict a_pos = a.data();
83
36
        UInt8* __restrict c_pos = c.data();
84
36
        const A* __restrict a_end = a_pos + size;
85
86
1.23k
        while (a_pos < a_end) {
87
1.19k
            *c_pos = Op::apply(*a_pos, b);
88
1.19k
            ++a_pos;
89
1.19k
            ++c_pos;
90
1.19k
        }
91
36
    }
_ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
4
                                          PaddedPODArray<UInt8>& c) {
81
4
        size_t size = a.size();
82
4
        const A* __restrict a_pos = a.data();
83
4
        UInt8* __restrict c_pos = c.data();
84
4
        const A* __restrict a_end = a_pos + size;
85
86
780
        while (a_pos < a_end) {
87
776
            *c_pos = Op::apply(*a_pos, b);
88
776
            ++a_pos;
89
776
            ++c_pos;
90
776
        }
91
4
    }
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
1.03k
                                          PaddedPODArray<UInt8>& c) {
81
1.03k
        size_t size = a.size();
82
1.03k
        const A* __restrict a_pos = a.data();
83
1.03k
        UInt8* __restrict c_pos = c.data();
84
1.03k
        const A* __restrict a_end = a_pos + size;
85
86
659k
        while (a_pos < a_end) {
87
658k
            *c_pos = Op::apply(*a_pos, b);
88
658k
            ++a_pos;
89
658k
            ++c_pos;
90
658k
        }
91
1.03k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
1.04k
                                          PaddedPODArray<UInt8>& c) {
81
1.04k
        size_t size = a.size();
82
1.04k
        const A* __restrict a_pos = a.data();
83
1.04k
        UInt8* __restrict c_pos = c.data();
84
1.04k
        const A* __restrict a_end = a_pos + size;
85
86
268k
        while (a_pos < a_end) {
87
267k
            *c_pos = Op::apply(*a_pos, b);
88
267k
            ++a_pos;
89
267k
            ++c_pos;
90
267k
        }
91
1.04k
    }
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
80
28
                                          PaddedPODArray<UInt8>& c) {
81
28
        size_t size = a.size();
82
28
        const A* __restrict a_pos = a.data();
83
28
        UInt8* __restrict c_pos = c.data();
84
28
        const A* __restrict a_end = a_pos + size;
85
86
70
        while (a_pos < a_end) {
87
42
            *c_pos = Op::apply(*a_pos, b);
88
42
            ++a_pos;
89
42
            ++c_pos;
90
42
        }
91
28
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
40
                                          PaddedPODArray<UInt8>& c) {
81
40
        size_t size = a.size();
82
40
        const A* __restrict a_pos = a.data();
83
40
        UInt8* __restrict c_pos = c.data();
84
40
        const A* __restrict a_end = a_pos + size;
85
86
282
        while (a_pos < a_end) {
87
242
            *c_pos = Op::apply(*a_pos, b);
88
242
            ++a_pos;
89
242
            ++c_pos;
90
242
        }
91
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
80
130
                                          PaddedPODArray<UInt8>& c) {
81
130
        size_t size = a.size();
82
130
        const A* __restrict a_pos = a.data();
83
130
        UInt8* __restrict c_pos = c.data();
84
130
        const A* __restrict a_end = a_pos + size;
85
86
1.15k
        while (a_pos < a_end) {
87
1.02k
            *c_pos = Op::apply(*a_pos, b);
88
1.02k
            ++a_pos;
89
1.02k
            ++c_pos;
90
1.02k
        }
91
130
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
483
                                          PaddedPODArray<UInt8>& c) {
81
483
        size_t size = a.size();
82
483
        const A* __restrict a_pos = a.data();
83
483
        UInt8* __restrict c_pos = c.data();
84
483
        const A* __restrict a_end = a_pos + size;
85
86
1.34M
        while (a_pos < a_end) {
87
1.34M
            *c_pos = Op::apply(*a_pos, b);
88
1.34M
            ++a_pos;
89
1.34M
            ++c_pos;
90
1.34M
        }
91
483
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
92
                                          PaddedPODArray<UInt8>& c) {
81
92
        size_t size = a.size();
82
92
        const A* __restrict a_pos = a.data();
83
92
        UInt8* __restrict c_pos = c.data();
84
92
        const A* __restrict a_end = a_pos + size;
85
86
206
        while (a_pos < a_end) {
87
114
            *c_pos = Op::apply(*a_pos, b);
88
114
            ++a_pos;
89
114
            ++c_pos;
90
114
        }
91
92
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
329
                                          PaddedPODArray<UInt8>& c) {
81
329
        size_t size = a.size();
82
329
        const A* __restrict a_pos = a.data();
83
329
        UInt8* __restrict c_pos = c.data();
84
329
        const A* __restrict a_end = a_pos + size;
85
86
45.4k
        while (a_pos < a_end) {
87
45.1k
            *c_pos = Op::apply(*a_pos, b);
88
45.1k
            ++a_pos;
89
45.1k
            ++c_pos;
90
45.1k
        }
91
329
    }
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
80
1
                                          PaddedPODArray<UInt8>& c) {
81
1
        size_t size = a.size();
82
1
        const A* __restrict a_pos = a.data();
83
1
        UInt8* __restrict c_pos = c.data();
84
1
        const A* __restrict a_end = a_pos + size;
85
86
8
        while (a_pos < a_end) {
87
7
            *c_pos = Op::apply(*a_pos, b);
88
7
            ++a_pos;
89
7
            ++c_pos;
90
7
        }
91
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
379
                                          PaddedPODArray<UInt8>& c) {
81
379
        size_t size = a.size();
82
379
        const A* __restrict a_pos = a.data();
83
379
        UInt8* __restrict c_pos = c.data();
84
379
        const A* __restrict a_end = a_pos + size;
85
86
4.02k
        while (a_pos < a_end) {
87
3.65k
            *c_pos = Op::apply(*a_pos, b);
88
3.65k
            ++a_pos;
89
3.65k
            ++c_pos;
90
3.65k
        }
91
379
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
45
                                          PaddedPODArray<UInt8>& c) {
81
45
        size_t size = a.size();
82
45
        const A* __restrict a_pos = a.data();
83
45
        UInt8* __restrict c_pos = c.data();
84
45
        const A* __restrict a_end = a_pos + size;
85
86
2.33k
        while (a_pos < a_end) {
87
2.28k
            *c_pos = Op::apply(*a_pos, b);
88
2.28k
            ++a_pos;
89
2.28k
            ++c_pos;
90
2.28k
        }
91
45
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
431
                                          PaddedPODArray<UInt8>& c) {
81
431
        size_t size = a.size();
82
431
        const A* __restrict a_pos = a.data();
83
431
        UInt8* __restrict c_pos = c.data();
84
431
        const A* __restrict a_end = a_pos + size;
85
86
7.84k
        while (a_pos < a_end) {
87
7.41k
            *c_pos = Op::apply(*a_pos, b);
88
7.41k
            ++a_pos;
89
7.41k
            ++c_pos;
90
7.41k
        }
91
431
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
138
                                          PaddedPODArray<UInt8>& c) {
81
138
        size_t size = a.size();
82
138
        const A* __restrict a_pos = a.data();
83
138
        UInt8* __restrict c_pos = c.data();
84
138
        const A* __restrict a_end = a_pos + size;
85
86
12.5k
        while (a_pos < a_end) {
87
12.4k
            *c_pos = Op::apply(*a_pos, b);
88
12.4k
            ++a_pos;
89
12.4k
            ++c_pos;
90
12.4k
        }
91
138
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
7.09k
                                          PaddedPODArray<UInt8>& c) {
81
7.09k
        size_t size = a.size();
82
7.09k
        const A* __restrict a_pos = a.data();
83
7.09k
        UInt8* __restrict c_pos = c.data();
84
7.09k
        const A* __restrict a_end = a_pos + size;
85
86
1.53M
        while (a_pos < a_end) {
87
1.52M
            *c_pos = Op::apply(*a_pos, b);
88
1.52M
            ++a_pos;
89
1.52M
            ++c_pos;
90
1.52M
        }
91
7.09k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
1.86k
                                          PaddedPODArray<UInt8>& c) {
81
1.86k
        size_t size = a.size();
82
1.86k
        const A* __restrict a_pos = a.data();
83
1.86k
        UInt8* __restrict c_pos = c.data();
84
1.86k
        const A* __restrict a_end = a_pos + size;
85
86
4.51M
        while (a_pos < a_end) {
87
4.51M
            *c_pos = Op::apply(*a_pos, b);
88
4.51M
            ++a_pos;
89
4.51M
            ++c_pos;
90
4.51M
        }
91
1.86k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
13.0k
                                          PaddedPODArray<UInt8>& c) {
81
13.0k
        size_t size = a.size();
82
13.0k
        const A* __restrict a_pos = a.data();
83
13.0k
        UInt8* __restrict c_pos = c.data();
84
13.0k
        const A* __restrict a_end = a_pos + size;
85
86
198k
        while (a_pos < a_end) {
87
185k
            *c_pos = Op::apply(*a_pos, b);
88
185k
            ++a_pos;
89
185k
            ++c_pos;
90
185k
        }
91
13.0k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
1.41k
                                          PaddedPODArray<UInt8>& c) {
81
1.41k
        size_t size = a.size();
82
1.41k
        const A* __restrict a_pos = a.data();
83
1.41k
        UInt8* __restrict c_pos = c.data();
84
1.41k
        const A* __restrict a_end = a_pos + size;
85
86
3.94k
        while (a_pos < a_end) {
87
2.53k
            *c_pos = Op::apply(*a_pos, b);
88
2.53k
            ++a_pos;
89
2.53k
            ++c_pos;
90
2.53k
        }
91
1.41k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
203
                                          PaddedPODArray<UInt8>& c) {
81
203
        size_t size = a.size();
82
203
        const A* __restrict a_pos = a.data();
83
203
        UInt8* __restrict c_pos = c.data();
84
203
        const A* __restrict a_end = a_pos + size;
85
86
1.74k
        while (a_pos < a_end) {
87
1.54k
            *c_pos = Op::apply(*a_pos, b);
88
1.54k
            ++a_pos;
89
1.54k
            ++c_pos;
90
1.54k
        }
91
203
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
16
                                          PaddedPODArray<UInt8>& c) {
81
16
        size_t size = a.size();
82
16
        const A* __restrict a_pos = a.data();
83
16
        UInt8* __restrict c_pos = c.data();
84
16
        const A* __restrict a_end = a_pos + size;
85
86
86.0k
        while (a_pos < a_end) {
87
86.0k
            *c_pos = Op::apply(*a_pos, b);
88
86.0k
            ++a_pos;
89
86.0k
            ++c_pos;
90
86.0k
        }
91
16
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
1
                                          PaddedPODArray<UInt8>& c) {
81
1
        size_t size = a.size();
82
1
        const A* __restrict a_pos = a.data();
83
1
        UInt8* __restrict c_pos = c.data();
84
1
        const A* __restrict a_end = a_pos + size;
85
86
9
        while (a_pos < a_end) {
87
8
            *c_pos = Op::apply(*a_pos, b);
88
8
            ++a_pos;
89
8
            ++c_pos;
90
8
        }
91
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
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
80
208
                                          PaddedPODArray<UInt8>& c) {
81
208
        size_t size = a.size();
82
208
        const A* __restrict a_pos = a.data();
83
208
        UInt8* __restrict c_pos = c.data();
84
208
        const A* __restrict a_end = a_pos + size;
85
86
3.76k
        while (a_pos < a_end) {
87
3.55k
            *c_pos = Op::apply(*a_pos, b);
88
3.55k
            ++a_pos;
89
3.55k
            ++c_pos;
90
3.55k
        }
91
208
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
26
                                          PaddedPODArray<UInt8>& c) {
81
26
        size_t size = a.size();
82
26
        const A* __restrict a_pos = a.data();
83
26
        UInt8* __restrict c_pos = c.data();
84
26
        const A* __restrict a_end = a_pos + size;
85
86
64
        while (a_pos < a_end) {
87
38
            *c_pos = Op::apply(*a_pos, b);
88
38
            ++a_pos;
89
38
            ++c_pos;
90
38
        }
91
26
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
2.40k
                                          PaddedPODArray<UInt8>& c) {
81
2.40k
        size_t size = a.size();
82
2.40k
        const A* __restrict a_pos = a.data();
83
2.40k
        UInt8* __restrict c_pos = c.data();
84
2.40k
        const A* __restrict a_end = a_pos + size;
85
86
346k
        while (a_pos < a_end) {
87
344k
            *c_pos = Op::apply(*a_pos, b);
88
344k
            ++a_pos;
89
344k
            ++c_pos;
90
344k
        }
91
2.40k
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
193
                                          PaddedPODArray<UInt8>& c) {
81
193
        size_t size = a.size();
82
193
        const A* __restrict a_pos = a.data();
83
193
        UInt8* __restrict c_pos = c.data();
84
193
        const A* __restrict a_end = a_pos + size;
85
86
316k
        while (a_pos < a_end) {
87
316k
            *c_pos = Op::apply(*a_pos, b);
88
316k
            ++a_pos;
89
316k
            ++c_pos;
90
316k
        }
91
193
    }
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
80
180
                                          PaddedPODArray<UInt8>& c) {
81
180
        size_t size = a.size();
82
180
        const A* __restrict a_pos = a.data();
83
180
        UInt8* __restrict c_pos = c.data();
84
180
        const A* __restrict a_end = a_pos + size;
85
86
90.9k
        while (a_pos < a_end) {
87
90.7k
            *c_pos = Op::apply(*a_pos, b);
88
90.7k
            ++a_pos;
89
90.7k
            ++c_pos;
90
90.7k
        }
91
180
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
80
178
                                          PaddedPODArray<UInt8>& c) {
81
178
        size_t size = a.size();
82
178
        const A* __restrict a_pos = a.data();
83
178
        UInt8* __restrict c_pos = c.data();
84
178
        const A* __restrict a_end = a_pos + size;
85
86
80.8k
        while (a_pos < a_end) {
87
80.6k
            *c_pos = Op::apply(*a_pos, b);
88
80.6k
            ++a_pos;
89
80.6k
            ++c_pos;
90
80.6k
        }
91
178
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
1.55k
                                          PaddedPODArray<UInt8>& c) {
81
1.55k
        size_t size = a.size();
82
1.55k
        const A* __restrict a_pos = a.data();
83
1.55k
        UInt8* __restrict c_pos = c.data();
84
1.55k
        const A* __restrict a_end = a_pos + size;
85
86
4.67M
        while (a_pos < a_end) {
87
4.66M
            *c_pos = Op::apply(*a_pos, b);
88
4.66M
            ++a_pos;
89
4.66M
            ++c_pos;
90
4.66M
        }
91
1.55k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
9.96k
                                          PaddedPODArray<UInt8>& c) {
81
9.96k
        size_t size = a.size();
82
9.96k
        const A* __restrict a_pos = a.data();
83
9.96k
        UInt8* __restrict c_pos = c.data();
84
9.96k
        const A* __restrict a_end = a_pos + size;
85
86
75.3M
        while (a_pos < a_end) {
87
75.3M
            *c_pos = Op::apply(*a_pos, b);
88
75.3M
            ++a_pos;
89
75.3M
            ++c_pos;
90
75.3M
        }
91
9.96k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
705
                                          PaddedPODArray<UInt8>& c) {
81
705
        size_t size = a.size();
82
705
        const A* __restrict a_pos = a.data();
83
705
        UInt8* __restrict c_pos = c.data();
84
705
        const A* __restrict a_end = a_pos + size;
85
86
1.98k
        while (a_pos < a_end) {
87
1.27k
            *c_pos = Op::apply(*a_pos, b);
88
1.27k
            ++a_pos;
89
1.27k
            ++c_pos;
90
1.27k
        }
91
705
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
80
374
                                          PaddedPODArray<UInt8>& c) {
81
374
        size_t size = a.size();
82
374
        const A* __restrict a_pos = a.data();
83
374
        UInt8* __restrict c_pos = c.data();
84
374
        const A* __restrict a_end = a_pos + size;
85
86
828
        while (a_pos < a_end) {
87
454
            *c_pos = Op::apply(*a_pos, b);
88
454
            ++a_pos;
89
454
            ++c_pos;
90
454
        }
91
374
    }
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
80
37
                                          PaddedPODArray<UInt8>& c) {
81
37
        size_t size = a.size();
82
37
        const A* __restrict a_pos = a.data();
83
37
        UInt8* __restrict c_pos = c.data();
84
37
        const A* __restrict a_end = a_pos + size;
85
86
60.4k
        while (a_pos < a_end) {
87
60.3k
            *c_pos = Op::apply(*a_pos, b);
88
60.3k
            ++a_pos;
89
60.3k
            ++c_pos;
90
60.3k
        }
91
37
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
47
                                          PaddedPODArray<UInt8>& c) {
81
47
        size_t size = a.size();
82
47
        const A* __restrict a_pos = a.data();
83
47
        UInt8* __restrict c_pos = c.data();
84
47
        const A* __restrict a_end = a_pos + size;
85
86
97.8k
        while (a_pos < a_end) {
87
97.8k
            *c_pos = Op::apply(*a_pos, b);
88
97.8k
            ++a_pos;
89
97.8k
            ++c_pos;
90
97.8k
        }
91
47
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
64
                                          PaddedPODArray<UInt8>& c) {
81
64
        size_t size = a.size();
82
64
        const A* __restrict a_pos = a.data();
83
64
        UInt8* __restrict c_pos = c.data();
84
64
        const A* __restrict a_end = a_pos + size;
85
86
107k
        while (a_pos < a_end) {
87
107k
            *c_pos = Op::apply(*a_pos, b);
88
107k
            ++a_pos;
89
107k
            ++c_pos;
90
107k
        }
91
64
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
90
                                          PaddedPODArray<UInt8>& c) {
81
90
        size_t size = a.size();
82
90
        const A* __restrict a_pos = a.data();
83
90
        UInt8* __restrict c_pos = c.data();
84
90
        const A* __restrict a_end = a_pos + size;
85
86
140k
        while (a_pos < a_end) {
87
140k
            *c_pos = Op::apply(*a_pos, b);
88
140k
            ++a_pos;
89
140k
            ++c_pos;
90
140k
        }
91
90
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
12.7k
                                          PaddedPODArray<UInt8>& c) {
81
12.7k
        size_t size = a.size();
82
12.7k
        const A* __restrict a_pos = a.data();
83
12.7k
        UInt8* __restrict c_pos = c.data();
84
12.7k
        const A* __restrict a_end = a_pos + size;
85
86
46.7M
        while (a_pos < a_end) {
87
46.7M
            *c_pos = Op::apply(*a_pos, b);
88
46.7M
            ++a_pos;
89
46.7M
            ++c_pos;
90
46.7M
        }
91
12.7k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
12.7k
                                          PaddedPODArray<UInt8>& c) {
81
12.7k
        size_t size = a.size();
82
12.7k
        const A* __restrict a_pos = a.data();
83
12.7k
        UInt8* __restrict c_pos = c.data();
84
12.7k
        const A* __restrict a_end = a_pos + size;
85
86
46.6M
        while (a_pos < a_end) {
87
46.6M
            *c_pos = Op::apply(*a_pos, b);
88
46.6M
            ++a_pos;
89
46.6M
            ++c_pos;
90
46.6M
        }
91
12.7k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
498
                                          PaddedPODArray<UInt8>& c) {
81
498
        size_t size = a.size();
82
498
        const A* __restrict a_pos = a.data();
83
498
        UInt8* __restrict c_pos = c.data();
84
498
        const A* __restrict a_end = a_pos + size;
85
86
22.3k
        while (a_pos < a_end) {
87
21.8k
            *c_pos = Op::apply(*a_pos, b);
88
21.8k
            ++a_pos;
89
21.8k
            ++c_pos;
90
21.8k
        }
91
498
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
603
                                          PaddedPODArray<UInt8>& c) {
81
603
        size_t size = a.size();
82
603
        const A* __restrict a_pos = a.data();
83
603
        UInt8* __restrict c_pos = c.data();
84
603
        const A* __restrict a_end = a_pos + size;
85
86
6.56k
        while (a_pos < a_end) {
87
5.95k
            *c_pos = Op::apply(*a_pos, b);
88
5.95k
            ++a_pos;
89
5.95k
            ++c_pos;
90
5.95k
        }
91
603
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
56
                                          PaddedPODArray<UInt8>& c) {
81
56
        size_t size = a.size();
82
56
        const A* __restrict a_pos = a.data();
83
56
        UInt8* __restrict c_pos = c.data();
84
56
        const A* __restrict a_end = a_pos + size;
85
86
150k
        while (a_pos < a_end) {
87
150k
            *c_pos = Op::apply(*a_pos, b);
88
150k
            ++a_pos;
89
150k
            ++c_pos;
90
150k
        }
91
56
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
52
                                          PaddedPODArray<UInt8>& c) {
81
52
        size_t size = a.size();
82
52
        const A* __restrict a_pos = a.data();
83
52
        UInt8* __restrict c_pos = c.data();
84
52
        const A* __restrict a_end = a_pos + size;
85
86
130k
        while (a_pos < a_end) {
87
130k
            *c_pos = Op::apply(*a_pos, b);
88
130k
            ++a_pos;
89
130k
            ++c_pos;
90
130k
        }
91
52
    }
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
10
                                          PaddedPODArray<UInt8>& c) {
81
10
        size_t size = a.size();
82
10
        const A* __restrict a_pos = a.data();
83
10
        UInt8* __restrict c_pos = c.data();
84
10
        const A* __restrict a_end = a_pos + size;
85
86
110
        while (a_pos < a_end) {
87
100
            *c_pos = Op::apply(*a_pos, b);
88
100
            ++a_pos;
89
100
            ++c_pos;
90
100
        }
91
10
    }
_ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
10
                                          PaddedPODArray<UInt8>& c) {
81
10
        size_t size = a.size();
82
10
        const A* __restrict a_pos = a.data();
83
10
        UInt8* __restrict c_pos = c.data();
84
10
        const A* __restrict a_end = a_pos + size;
85
86
110
        while (a_pos < a_end) {
87
100
            *c_pos = Op::apply(*a_pos, b);
88
100
            ++a_pos;
89
100
            ++c_pos;
90
100
        }
91
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
80
148
                                          PaddedPODArray<UInt8>& c) {
81
148
        size_t size = a.size();
82
148
        const A* __restrict a_pos = a.data();
83
148
        UInt8* __restrict c_pos = c.data();
84
148
        const A* __restrict a_end = a_pos + size;
85
86
298
        while (a_pos < a_end) {
87
150
            *c_pos = Op::apply(*a_pos, b);
88
150
            ++a_pos;
89
150
            ++c_pos;
90
150
        }
91
148
    }
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
144
                                          PaddedPODArray<UInt8>& c) {
81
144
        size_t size = a.size();
82
144
        const A* __restrict a_pos = a.data();
83
144
        UInt8* __restrict c_pos = c.data();
84
144
        const A* __restrict a_end = a_pos + size;
85
86
288
        while (a_pos < a_end) {
87
144
            *c_pos = Op::apply(*a_pos, b);
88
144
            ++a_pos;
89
144
            ++c_pos;
90
144
        }
91
144
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
119
                                          PaddedPODArray<UInt8>& c) {
81
119
        size_t size = a.size();
82
119
        const A* __restrict a_pos = a.data();
83
119
        UInt8* __restrict c_pos = c.data();
84
119
        const A* __restrict a_end = a_pos + size;
85
86
356k
        while (a_pos < a_end) {
87
355k
            *c_pos = Op::apply(*a_pos, b);
88
355k
            ++a_pos;
89
355k
            ++c_pos;
90
355k
        }
91
119
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
80
119
                                          PaddedPODArray<UInt8>& c) {
81
119
        size_t size = a.size();
82
119
        const A* __restrict a_pos = a.data();
83
119
        UInt8* __restrict c_pos = c.data();
84
119
        const A* __restrict a_end = a_pos + size;
85
86
275k
        while (a_pos < a_end) {
87
275k
            *c_pos = Op::apply(*a_pos, b);
88
275k
            ++a_pos;
89
275k
            ++c_pos;
90
275k
        }
91
119
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
92
93
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
94
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
95
5
    }
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
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
93
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
94
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
95
5
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
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
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
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
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
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_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
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
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
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_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
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
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
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
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
96
};
97
98
/// Generic version, implemented for columns of same type.
99
template <typename Op>
100
struct GenericComparisonImpl {
101
9
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
102
20
        for (size_t i = 0, size = a.size(); i < size; ++i) {
103
11
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
104
11
        }
105
9
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
101
4
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
102
10
        for (size_t i = 0, size = a.size(); i < size; ++i) {
103
6
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
104
6
        }
105
4
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
101
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
102
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
103
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
104
1
        }
105
1
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
101
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
102
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
103
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
104
1
        }
105
1
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
101
3
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
102
6
        for (size_t i = 0, size = a.size(); i < size; ++i) {
103
3
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
104
3
        }
105
3
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
106
107
136
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
136
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
448k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
447k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
447k
        }
112
136
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
107
13
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
13
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
31
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
18
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
18
        }
112
13
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
107
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
8
        }
112
8
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
107
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
8
        }
112
8
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
107
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
8
        }
112
8
    }
_ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
107
57
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
57
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
275k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
275k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
275k
        }
112
57
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
107
42
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
108
42
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
109
172k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
110
172k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
111
172k
        }
112
42
    }
113
114
0
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
115
0
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
116
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
117
};
118
119
template <typename Op>
120
struct StringComparisonImpl {
121
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
122
                                                      const ColumnString::Offsets& a_offsets,
123
                                                      const ColumnString::Chars& b_data,
124
                                                      const ColumnString::Offsets& b_offsets,
125
382
                                                      PaddedPODArray<UInt8>& c) {
126
382
        size_t size = a_offsets.size();
127
382
        ColumnString::Offset prev_a_offset = 0;
128
382
        ColumnString::Offset prev_b_offset = 0;
129
382
        const auto* a_pos = a_data.data();
130
382
        const auto* b_pos = b_data.data();
131
132
1.03k
        for (size_t i = 0; i < size; ++i) {
133
652
            c[i] = Op::apply(memcmp_small_allow_overflow15(
134
652
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
135
652
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
136
652
                             0);
137
138
652
            prev_a_offset = a_offsets[i];
139
652
            prev_b_offset = b_offsets[i];
140
652
        }
141
382
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
125
2
                                                      PaddedPODArray<UInt8>& c) {
126
2
        size_t size = a_offsets.size();
127
2
        ColumnString::Offset prev_a_offset = 0;
128
2
        ColumnString::Offset prev_b_offset = 0;
129
2
        const auto* a_pos = a_data.data();
130
2
        const auto* b_pos = b_data.data();
131
132
49
        for (size_t i = 0; i < size; ++i) {
133
47
            c[i] = Op::apply(memcmp_small_allow_overflow15(
134
47
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
135
47
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
136
47
                             0);
137
138
47
            prev_a_offset = a_offsets[i];
139
47
            prev_b_offset = b_offsets[i];
140
47
        }
141
2
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
125
43
                                                      PaddedPODArray<UInt8>& c) {
126
43
        size_t size = a_offsets.size();
127
43
        ColumnString::Offset prev_a_offset = 0;
128
43
        ColumnString::Offset prev_b_offset = 0;
129
43
        const auto* a_pos = a_data.data();
130
43
        const auto* b_pos = b_data.data();
131
132
307
        for (size_t i = 0; i < size; ++i) {
133
264
            c[i] = Op::apply(memcmp_small_allow_overflow15(
134
264
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
135
264
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
136
264
                             0);
137
138
264
            prev_a_offset = a_offsets[i];
139
264
            prev_b_offset = b_offsets[i];
140
264
        }
141
43
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
125
337
                                                      PaddedPODArray<UInt8>& c) {
126
337
        size_t size = a_offsets.size();
127
337
        ColumnString::Offset prev_a_offset = 0;
128
337
        ColumnString::Offset prev_b_offset = 0;
129
337
        const auto* a_pos = a_data.data();
130
337
        const auto* b_pos = b_data.data();
131
132
678
        for (size_t i = 0; i < size; ++i) {
133
341
            c[i] = Op::apply(memcmp_small_allow_overflow15(
134
341
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
135
341
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
136
341
                             0);
137
138
341
            prev_a_offset = a_offsets[i];
139
341
            prev_b_offset = b_offsets[i];
140
341
        }
141
337
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
142
143
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
144
                                                 const ColumnString::Offsets& a_offsets,
145
                                                 const ColumnString::Chars& b_data,
146
                                                 ColumnString::Offset b_size,
147
2.05k
                                                 PaddedPODArray<UInt8>& c) {
148
2.05k
        size_t size = a_offsets.size();
149
2.05k
        ColumnString::Offset prev_a_offset = 0;
150
2.05k
        const auto* a_pos = a_data.data();
151
2.05k
        const auto* b_pos = b_data.data();
152
153
1.47M
        for (size_t i = 0; i < size; ++i) {
154
1.47M
            c[i] = Op::apply(
155
1.47M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
1.47M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
1.47M
                    0);
158
159
1.47M
            prev_a_offset = a_offsets[i];
160
1.47M
        }
161
2.05k
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
147
210
                                                 PaddedPODArray<UInt8>& c) {
148
210
        size_t size = a_offsets.size();
149
210
        ColumnString::Offset prev_a_offset = 0;
150
210
        const auto* a_pos = a_data.data();
151
210
        const auto* b_pos = b_data.data();
152
153
325k
        for (size_t i = 0; i < size; ++i) {
154
324k
            c[i] = Op::apply(
155
324k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
324k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
324k
                    0);
158
159
324k
            prev_a_offset = a_offsets[i];
160
324k
        }
161
210
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
147
263
                                                 PaddedPODArray<UInt8>& c) {
148
263
        size_t size = a_offsets.size();
149
263
        ColumnString::Offset prev_a_offset = 0;
150
263
        const auto* a_pos = a_data.data();
151
263
        const auto* b_pos = b_data.data();
152
153
73.2k
        for (size_t i = 0; i < size; ++i) {
154
73.0k
            c[i] = Op::apply(
155
73.0k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
73.0k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
73.0k
                    0);
158
159
73.0k
            prev_a_offset = a_offsets[i];
160
73.0k
        }
161
263
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
147
681
                                                 PaddedPODArray<UInt8>& c) {
148
681
        size_t size = a_offsets.size();
149
681
        ColumnString::Offset prev_a_offset = 0;
150
681
        const auto* a_pos = a_data.data();
151
681
        const auto* b_pos = b_data.data();
152
153
553k
        for (size_t i = 0; i < size; ++i) {
154
552k
            c[i] = Op::apply(
155
552k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
552k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
552k
                    0);
158
159
552k
            prev_a_offset = a_offsets[i];
160
552k
        }
161
681
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
147
904
                                                 PaddedPODArray<UInt8>& c) {
148
904
        size_t size = a_offsets.size();
149
904
        ColumnString::Offset prev_a_offset = 0;
150
904
        const auto* a_pos = a_data.data();
151
904
        const auto* b_pos = b_data.data();
152
153
527k
        for (size_t i = 0; i < size; ++i) {
154
526k
            c[i] = Op::apply(
155
526k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
156
526k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
157
526k
                    0);
158
159
526k
            prev_a_offset = a_offsets[i];
160
526k
        }
161
904
    }
162
163
    static void constant_string_vector(const ColumnString::Chars& a_data,
164
                                       ColumnString::Offset a_size,
165
                                       const ColumnString::Chars& b_data,
166
                                       const ColumnString::Offsets& b_offsets,
167
0
                                       PaddedPODArray<UInt8>& c) {
168
0
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
169
0
                                                                               a_data, a_size, c);
170
0
    }
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_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
171
};
172
173
template <bool positive>
174
struct StringEqualsImpl {
175
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
176
                                                      const ColumnString::Offsets& a_offsets,
177
                                                      const ColumnString::Chars& b_data,
178
                                                      const ColumnString::Offsets& b_offsets,
179
437
                                                      PaddedPODArray<UInt8>& c) {
180
437
        size_t size = a_offsets.size();
181
437
        ColumnString::Offset prev_a_offset = 0;
182
437
        ColumnString::Offset prev_b_offset = 0;
183
437
        const auto* a_pos = a_data.data();
184
437
        const auto* b_pos = b_data.data();
185
186
1.32k
        for (size_t i = 0; i < size; ++i) {
187
886
            auto a_size = a_offsets[i] - prev_a_offset;
188
886
            auto b_size = b_offsets[i] - prev_b_offset;
189
190
886
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
191
886
                                                               b_pos + prev_b_offset, b_size);
192
193
886
            prev_a_offset = a_offsets[i];
194
886
            prev_b_offset = b_offsets[i];
195
886
        }
196
437
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
179
436
                                                      PaddedPODArray<UInt8>& c) {
180
436
        size_t size = a_offsets.size();
181
436
        ColumnString::Offset prev_a_offset = 0;
182
436
        ColumnString::Offset prev_b_offset = 0;
183
436
        const auto* a_pos = a_data.data();
184
436
        const auto* b_pos = b_data.data();
185
186
1.31k
        for (size_t i = 0; i < size; ++i) {
187
882
            auto a_size = a_offsets[i] - prev_a_offset;
188
882
            auto b_size = b_offsets[i] - prev_b_offset;
189
190
882
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
191
882
                                                               b_pos + prev_b_offset, b_size);
192
193
882
            prev_a_offset = a_offsets[i];
194
882
            prev_b_offset = b_offsets[i];
195
882
        }
196
436
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
179
1
                                                      PaddedPODArray<UInt8>& c) {
180
1
        size_t size = a_offsets.size();
181
1
        ColumnString::Offset prev_a_offset = 0;
182
1
        ColumnString::Offset prev_b_offset = 0;
183
1
        const auto* a_pos = a_data.data();
184
1
        const auto* b_pos = b_data.data();
185
186
5
        for (size_t i = 0; i < size; ++i) {
187
4
            auto a_size = a_offsets[i] - prev_a_offset;
188
4
            auto b_size = b_offsets[i] - prev_b_offset;
189
190
4
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
191
4
                                                               b_pos + prev_b_offset, b_size);
192
193
4
            prev_a_offset = a_offsets[i];
194
4
            prev_b_offset = b_offsets[i];
195
4
        }
196
1
    }
197
198
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
199
                                                 const ColumnString::Offsets& a_offsets,
200
                                                 const ColumnString::Chars& b_data,
201
                                                 ColumnString::Offset b_size,
202
21.6k
                                                 PaddedPODArray<UInt8>& c) {
203
21.6k
        size_t size = a_offsets.size();
204
21.6k
        if (b_size == 0) {
205
1
            auto* __restrict data = c.data();
206
1
            auto* __restrict offsets = a_offsets.data();
207
208
1
            ColumnString::Offset prev_a_offset = 0;
209
4
            for (size_t i = 0; i < size; ++i) {
210
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
211
3
                prev_a_offset = offsets[i];
212
3
            }
213
21.6k
        } else {
214
21.6k
            ColumnString::Offset prev_a_offset = 0;
215
21.6k
            const auto* a_pos = a_data.data();
216
21.6k
            const auto* b_pos = b_data.data();
217
8.51M
            for (size_t i = 0; i < size; ++i) {
218
8.49M
                auto a_size = a_offsets[i] - prev_a_offset;
219
8.49M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
220
8.49M
                                                                   b_pos, b_size);
221
8.49M
                prev_a_offset = a_offsets[i];
222
8.49M
            }
223
21.6k
        }
224
21.6k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
202
20.3k
                                                 PaddedPODArray<UInt8>& c) {
203
20.3k
        size_t size = a_offsets.size();
204
20.3k
        if (b_size == 0) {
205
0
            auto* __restrict data = c.data();
206
0
            auto* __restrict offsets = a_offsets.data();
207
208
0
            ColumnString::Offset prev_a_offset = 0;
209
0
            for (size_t i = 0; i < size; ++i) {
210
0
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
211
0
                prev_a_offset = offsets[i];
212
0
            }
213
20.3k
        } else {
214
20.3k
            ColumnString::Offset prev_a_offset = 0;
215
20.3k
            const auto* a_pos = a_data.data();
216
20.3k
            const auto* b_pos = b_data.data();
217
7.56M
            for (size_t i = 0; i < size; ++i) {
218
7.54M
                auto a_size = a_offsets[i] - prev_a_offset;
219
7.54M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
220
7.54M
                                                                   b_pos, b_size);
221
7.54M
                prev_a_offset = a_offsets[i];
222
7.54M
            }
223
20.3k
        }
224
20.3k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
202
1.28k
                                                 PaddedPODArray<UInt8>& c) {
203
1.28k
        size_t size = a_offsets.size();
204
1.28k
        if (b_size == 0) {
205
1
            auto* __restrict data = c.data();
206
1
            auto* __restrict offsets = a_offsets.data();
207
208
1
            ColumnString::Offset prev_a_offset = 0;
209
4
            for (size_t i = 0; i < size; ++i) {
210
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
211
3
                prev_a_offset = offsets[i];
212
3
            }
213
1.28k
        } else {
214
1.28k
            ColumnString::Offset prev_a_offset = 0;
215
1.28k
            const auto* a_pos = a_data.data();
216
1.28k
            const auto* b_pos = b_data.data();
217
947k
            for (size_t i = 0; i < size; ++i) {
218
946k
                auto a_size = a_offsets[i] - prev_a_offset;
219
946k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
220
946k
                                                                   b_pos, b_size);
221
946k
                prev_a_offset = a_offsets[i];
222
946k
            }
223
1.28k
        }
224
1.28k
    }
225
226
    static void NO_INLINE constant_string_vector(const ColumnString::Chars& a_data,
227
                                                 ColumnString::Offset a_size,
228
                                                 const ColumnString::Chars& b_data,
229
                                                 const ColumnString::Offsets& b_offsets,
230
0
                                                 PaddedPODArray<UInt8>& c) {
231
0
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
232
0
    }
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
233
};
234
235
template <PrimitiveType PT>
236
struct StringComparisonImpl<EqualsOp<PT>> : StringEqualsImpl<true> {};
237
238
template <PrimitiveType PT>
239
struct StringComparisonImpl<NotEqualsOp<PT>> : StringEqualsImpl<false> {};
240
241
struct NameEquals {
242
    static constexpr auto name = "eq";
243
};
244
struct NameNotEquals {
245
    static constexpr auto name = "ne";
246
};
247
struct NameLess {
248
    static constexpr auto name = "lt";
249
};
250
struct NameGreater {
251
    static constexpr auto name = "gt";
252
};
253
struct NameLessOrEquals {
254
    static constexpr auto name = "le";
255
};
256
struct NameGreaterOrEquals {
257
    static constexpr auto name = "ge";
258
};
259
260
template <template <PrimitiveType> class Op, typename Name>
261
class FunctionComparison : public IFunction {
262
public:
263
    static constexpr auto name = Name::name;
264
463k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
264
420k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
264
1.35k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
264
6.31k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
264
15.4k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
264
3.15k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
264
15.9k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
265
266
463k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
266
421k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
266
1.35k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
266
6.31k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
266
15.4k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
266
3.15k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
266
15.9k
    FunctionComparison() = default;
267
268
1.22M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
268
1.17M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
268
1.17k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
268
6.63k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
268
20.2k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
268
3.25k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
268
18.4k
    double execute_cost() const override { return 0.5; }
269
270
private:
271
    template <PrimitiveType PT>
272
    Status execute_num_type(Block& block, uint32_t result, const ColumnPtr& col_left_ptr,
273
107k
                            const ColumnPtr& col_right_ptr) const {
274
107k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
107k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
107k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
107k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
107k
        DCHECK(!(left_is_const && right_is_const));
281
282
107k
        if (!left_is_const && !right_is_const) {
283
12.2k
            auto col_res = ColumnUInt8::create();
284
285
12.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
12.2k
            vec_res.resize(col_left->get_data().size());
287
12.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
12.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
289
12.2k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
12.2k
                                                     vec_res);
291
292
12.2k
            block.replace_by_position(result, std::move(col_res));
293
95.2k
        } else if (!left_is_const && right_is_const) {
294
95.2k
            auto col_res = ColumnUInt8::create();
295
296
95.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
95.2k
            vec_res.resize(col_left->size());
298
95.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
95.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
95.2k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
95.2k
                                                       col_right->get_element(0), vec_res);
302
303
95.2k
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
5
            auto col_res = ColumnUInt8::create();
306
307
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
5
            vec_res.resize(col_right->size());
309
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
5
                              typename PrimitiveTypeTraits<PT>::CppType,
311
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
5
                                                       col_right->get_data(), vec_res);
313
314
5
            block.replace_by_position(result, std::move(col_res));
315
5
        }
316
107k
        return Status::OK();
317
107k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.61k
                            const ColumnPtr& col_right_ptr) const {
274
1.61k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.61k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.61k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.61k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.61k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.61k
        if (!left_is_const && !right_is_const) {
283
76
            auto col_res = ColumnUInt8::create();
284
285
76
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
76
            vec_res.resize(col_left->get_data().size());
287
76
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
76
                              typename PrimitiveTypeTraits<PT>::CppType,
289
76
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
76
                                                     vec_res);
291
292
76
            block.replace_by_position(result, std::move(col_res));
293
1.54k
        } else if (!left_is_const && right_is_const) {
294
1.54k
            auto col_res = ColumnUInt8::create();
295
296
1.54k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.54k
            vec_res.resize(col_left->size());
298
1.54k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.54k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.54k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.54k
                                                       col_right->get_element(0), vec_res);
302
303
1.54k
            block.replace_by_position(result, std::move(col_res));
304
1.54k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.61k
        return Status::OK();
317
1.61k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.21k
                            const ColumnPtr& col_right_ptr) const {
274
1.21k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.21k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.21k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.21k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.21k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.21k
        if (!left_is_const && !right_is_const) {
283
229
            auto col_res = ColumnUInt8::create();
284
285
229
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
229
            vec_res.resize(col_left->get_data().size());
287
229
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
229
                              typename PrimitiveTypeTraits<PT>::CppType,
289
229
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
229
                                                     vec_res);
291
292
229
            block.replace_by_position(result, std::move(col_res));
293
988
        } else if (!left_is_const && right_is_const) {
294
988
            auto col_res = ColumnUInt8::create();
295
296
988
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
988
            vec_res.resize(col_left->size());
298
988
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
988
                              typename PrimitiveTypeTraits<PT>::CppType,
300
988
                              Op<PT>>::vector_constant(col_left->get_data(),
301
988
                                                       col_right->get_element(0), vec_res);
302
303
988
            block.replace_by_position(result, std::move(col_res));
304
988
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.21k
        return Status::OK();
317
1.21k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
680
                            const ColumnPtr& col_right_ptr) const {
274
680
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
680
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
680
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
680
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
680
        DCHECK(!(left_is_const && right_is_const));
281
282
680
        if (!left_is_const && !right_is_const) {
283
278
            auto col_res = ColumnUInt8::create();
284
285
278
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
278
            vec_res.resize(col_left->get_data().size());
287
278
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
278
                              typename PrimitiveTypeTraits<PT>::CppType,
289
278
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
278
                                                     vec_res);
291
292
278
            block.replace_by_position(result, std::move(col_res));
293
402
        } else if (!left_is_const && right_is_const) {
294
402
            auto col_res = ColumnUInt8::create();
295
296
402
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
402
            vec_res.resize(col_left->size());
298
402
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
402
                              typename PrimitiveTypeTraits<PT>::CppType,
300
402
                              Op<PT>>::vector_constant(col_left->get_data(),
301
402
                                                       col_right->get_element(0), vec_res);
302
303
402
            block.replace_by_position(result, std::move(col_res));
304
402
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
680
        return Status::OK();
317
680
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
3
                            const ColumnPtr& col_right_ptr) const {
274
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
3
        DCHECK(!(left_is_const && right_is_const));
281
282
3
        if (!left_is_const && !right_is_const) {
283
3
            auto col_res = ColumnUInt8::create();
284
285
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
3
            vec_res.resize(col_left->get_data().size());
287
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
3
                              typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
3
                                                     vec_res);
291
292
3
            block.replace_by_position(result, std::move(col_res));
293
3
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
3
        return Status::OK();
317
3
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
3.99k
                            const ColumnPtr& col_right_ptr) const {
274
3.99k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
3.99k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
3.99k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
3.99k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
3.99k
        DCHECK(!(left_is_const && right_is_const));
281
282
3.99k
        if (!left_is_const && !right_is_const) {
283
829
            auto col_res = ColumnUInt8::create();
284
285
829
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
829
            vec_res.resize(col_left->get_data().size());
287
829
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
829
                              typename PrimitiveTypeTraits<PT>::CppType,
289
829
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
829
                                                     vec_res);
291
292
829
            block.replace_by_position(result, std::move(col_res));
293
3.16k
        } else if (!left_is_const && right_is_const) {
294
3.16k
            auto col_res = ColumnUInt8::create();
295
296
3.16k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
3.16k
            vec_res.resize(col_left->size());
298
3.16k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
3.16k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
3.16k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
3.16k
                                                       col_right->get_element(0), vec_res);
302
303
3.16k
            block.replace_by_position(result, std::move(col_res));
304
3.16k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
3.99k
        return Status::OK();
317
3.99k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
613
                            const ColumnPtr& col_right_ptr) const {
274
613
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
613
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
613
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
613
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
613
        DCHECK(!(left_is_const && right_is_const));
281
282
613
        if (!left_is_const && !right_is_const) {
283
132
            auto col_res = ColumnUInt8::create();
284
285
132
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
132
            vec_res.resize(col_left->get_data().size());
287
132
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
132
                              typename PrimitiveTypeTraits<PT>::CppType,
289
132
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
132
                                                     vec_res);
291
292
132
            block.replace_by_position(result, std::move(col_res));
293
481
        } else if (!left_is_const && right_is_const) {
294
481
            auto col_res = ColumnUInt8::create();
295
296
481
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
481
            vec_res.resize(col_left->size());
298
481
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
481
                              typename PrimitiveTypeTraits<PT>::CppType,
300
481
                              Op<PT>>::vector_constant(col_left->get_data(),
301
481
                                                       col_right->get_element(0), vec_res);
302
303
481
            block.replace_by_position(result, std::move(col_res));
304
481
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
613
        return Status::OK();
317
613
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
7.27k
                            const ColumnPtr& col_right_ptr) const {
274
7.27k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
7.27k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
7.27k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
7.27k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
7.27k
        DCHECK(!(left_is_const && right_is_const));
281
282
7.27k
        if (!left_is_const && !right_is_const) {
283
279
            auto col_res = ColumnUInt8::create();
284
285
279
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
279
            vec_res.resize(col_left->get_data().size());
287
279
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
279
                              typename PrimitiveTypeTraits<PT>::CppType,
289
279
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
279
                                                     vec_res);
291
292
279
            block.replace_by_position(result, std::move(col_res));
293
6.99k
        } else if (!left_is_const && right_is_const) {
294
6.98k
            auto col_res = ColumnUInt8::create();
295
296
6.98k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
6.98k
            vec_res.resize(col_left->size());
298
6.98k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
6.98k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
6.98k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
6.98k
                                                       col_right->get_element(0), vec_res);
302
303
6.98k
            block.replace_by_position(result, std::move(col_res));
304
6.98k
        } else if (left_is_const && !right_is_const) {
305
5
            auto col_res = ColumnUInt8::create();
306
307
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
5
            vec_res.resize(col_right->size());
309
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
5
                              typename PrimitiveTypeTraits<PT>::CppType,
311
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
5
                                                       col_right->get_data(), vec_res);
313
314
5
            block.replace_by_position(result, std::move(col_res));
315
5
        }
316
7.27k
        return Status::OK();
317
7.27k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
10.7k
                            const ColumnPtr& col_right_ptr) const {
274
10.7k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
10.7k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
10.7k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
10.7k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
10.7k
        DCHECK(!(left_is_const && right_is_const));
281
282
10.7k
        if (!left_is_const && !right_is_const) {
283
419
            auto col_res = ColumnUInt8::create();
284
285
419
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
419
            vec_res.resize(col_left->get_data().size());
287
419
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
419
                              typename PrimitiveTypeTraits<PT>::CppType,
289
419
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
419
                                                     vec_res);
291
292
419
            block.replace_by_position(result, std::move(col_res));
293
10.2k
        } else if (!left_is_const && right_is_const) {
294
10.2k
            auto col_res = ColumnUInt8::create();
295
296
10.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
10.2k
            vec_res.resize(col_left->size());
298
10.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
10.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
10.2k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
10.2k
                                                       col_right->get_element(0), vec_res);
302
303
10.2k
            block.replace_by_position(result, std::move(col_res));
304
10.2k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
10.7k
        return Status::OK();
317
10.7k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
134
                            const ColumnPtr& col_right_ptr) const {
274
134
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
134
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
134
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
134
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
134
        DCHECK(!(left_is_const && right_is_const));
281
282
134
        if (!left_is_const && !right_is_const) {
283
88
            auto col_res = ColumnUInt8::create();
284
285
88
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
88
            vec_res.resize(col_left->get_data().size());
287
88
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
88
                              typename PrimitiveTypeTraits<PT>::CppType,
289
88
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
88
                                                     vec_res);
291
292
88
            block.replace_by_position(result, std::move(col_res));
293
88
        } else if (!left_is_const && right_is_const) {
294
46
            auto col_res = ColumnUInt8::create();
295
296
46
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
46
            vec_res.resize(col_left->size());
298
46
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
46
                              typename PrimitiveTypeTraits<PT>::CppType,
300
46
                              Op<PT>>::vector_constant(col_left->get_data(),
301
46
                                                       col_right->get_element(0), vec_res);
302
303
46
            block.replace_by_position(result, std::move(col_res));
304
46
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
134
        return Status::OK();
317
134
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
33
                            const ColumnPtr& col_right_ptr) const {
274
33
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
33
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
33
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
33
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
33
        DCHECK(!(left_is_const && right_is_const));
281
282
33
        if (!left_is_const && !right_is_const) {
283
16
            auto col_res = ColumnUInt8::create();
284
285
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
16
            vec_res.resize(col_left->get_data().size());
287
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
16
                              typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
16
                                                     vec_res);
291
292
16
            block.replace_by_position(result, std::move(col_res));
293
17
        } else if (!left_is_const && right_is_const) {
294
17
            auto col_res = ColumnUInt8::create();
295
296
17
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
17
            vec_res.resize(col_left->size());
298
17
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
17
                              typename PrimitiveTypeTraits<PT>::CppType,
300
17
                              Op<PT>>::vector_constant(col_left->get_data(),
301
17
                                                       col_right->get_element(0), vec_res);
302
303
17
            block.replace_by_position(result, std::move(col_res));
304
17
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
33
        return Status::OK();
317
33
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
30
                            const ColumnPtr& col_right_ptr) const {
274
30
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
30
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
30
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
30
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
30
        DCHECK(!(left_is_const && right_is_const));
281
282
30
        if (!left_is_const && !right_is_const) {
283
24
            auto col_res = ColumnUInt8::create();
284
285
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
24
            vec_res.resize(col_left->get_data().size());
287
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
24
                              typename PrimitiveTypeTraits<PT>::CppType,
289
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
24
                                                     vec_res);
291
292
24
            block.replace_by_position(result, std::move(col_res));
293
24
        } else if (!left_is_const && right_is_const) {
294
6
            auto col_res = ColumnUInt8::create();
295
296
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
6
            vec_res.resize(col_left->size());
298
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
6
                              typename PrimitiveTypeTraits<PT>::CppType,
300
6
                              Op<PT>>::vector_constant(col_left->get_data(),
301
6
                                                       col_right->get_element(0), vec_res);
302
303
6
            block.replace_by_position(result, std::move(col_res));
304
6
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
30
        return Status::OK();
317
30
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
108
                            const ColumnPtr& col_right_ptr) const {
274
108
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
108
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
108
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
108
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
108
        DCHECK(!(left_is_const && right_is_const));
281
282
108
        if (!left_is_const && !right_is_const) {
283
104
            auto col_res = ColumnUInt8::create();
284
285
104
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
104
            vec_res.resize(col_left->get_data().size());
287
104
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
104
                              typename PrimitiveTypeTraits<PT>::CppType,
289
104
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
104
                                                     vec_res);
291
292
104
            block.replace_by_position(result, std::move(col_res));
293
104
        } else if (!left_is_const && right_is_const) {
294
4
            auto col_res = ColumnUInt8::create();
295
296
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
4
            vec_res.resize(col_left->size());
298
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
4
                              typename PrimitiveTypeTraits<PT>::CppType,
300
4
                              Op<PT>>::vector_constant(col_left->get_data(),
301
4
                                                       col_right->get_element(0), vec_res);
302
303
4
            block.replace_by_position(result, std::move(col_res));
304
4
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
108
        return Status::OK();
317
108
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
348
                            const ColumnPtr& col_right_ptr) const {
274
348
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
348
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
348
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
348
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
348
        DCHECK(!(left_is_const && right_is_const));
281
282
349
        if (!left_is_const && !right_is_const) {
283
104
            auto col_res = ColumnUInt8::create();
284
285
104
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
104
            vec_res.resize(col_left->get_data().size());
287
104
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
104
                              typename PrimitiveTypeTraits<PT>::CppType,
289
104
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
104
                                                     vec_res);
291
292
104
            block.replace_by_position(result, std::move(col_res));
293
244
        } else if (!left_is_const && right_is_const) {
294
244
            auto col_res = ColumnUInt8::create();
295
296
244
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
244
            vec_res.resize(col_left->size());
298
244
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
244
                              typename PrimitiveTypeTraits<PT>::CppType,
300
244
                              Op<PT>>::vector_constant(col_left->get_data(),
301
244
                                                       col_right->get_element(0), vec_res);
302
303
244
            block.replace_by_position(result, std::move(col_res));
304
244
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
348
        return Status::OK();
317
348
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
4
                            const ColumnPtr& col_right_ptr) const {
274
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
4
        DCHECK(!(left_is_const && right_is_const));
281
282
4
        if (!left_is_const && !right_is_const) {
283
4
            auto col_res = ColumnUInt8::create();
284
285
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
4
            vec_res.resize(col_left->get_data().size());
287
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
4
                              typename PrimitiveTypeTraits<PT>::CppType,
289
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
4
                                                     vec_res);
291
292
4
            block.replace_by_position(result, std::move(col_res));
293
4
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
4
        return Status::OK();
317
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
273
53
                            const ColumnPtr& col_right_ptr) const {
274
53
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
53
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
53
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
53
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
53
        DCHECK(!(left_is_const && right_is_const));
281
282
53
        if (!left_is_const && !right_is_const) {
283
39
            auto col_res = ColumnUInt8::create();
284
285
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
39
            vec_res.resize(col_left->get_data().size());
287
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
39
                              typename PrimitiveTypeTraits<PT>::CppType,
289
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
39
                                                     vec_res);
291
292
39
            block.replace_by_position(result, std::move(col_res));
293
39
        } else if (!left_is_const && right_is_const) {
294
14
            auto col_res = ColumnUInt8::create();
295
296
14
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
14
            vec_res.resize(col_left->size());
298
14
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
14
                              typename PrimitiveTypeTraits<PT>::CppType,
300
14
                              Op<PT>>::vector_constant(col_left->get_data(),
301
14
                                                       col_right->get_element(0), vec_res);
302
303
14
            block.replace_by_position(result, std::move(col_res));
304
14
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
53
        return Status::OK();
317
53
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
2
                            const ColumnPtr& col_right_ptr) const {
274
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
2
        DCHECK(!(left_is_const && right_is_const));
281
282
2
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
2
        } else if (!left_is_const && right_is_const) {
294
2
            auto col_res = ColumnUInt8::create();
295
296
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
2
            vec_res.resize(col_left->size());
298
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
2
                              typename PrimitiveTypeTraits<PT>::CppType,
300
2
                              Op<PT>>::vector_constant(col_left->get_data(),
301
2
                                                       col_right->get_element(0), vec_res);
302
303
2
            block.replace_by_position(result, std::move(col_res));
304
2
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
2
        return Status::OK();
317
2
    }
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
273
92
                            const ColumnPtr& col_right_ptr) const {
274
92
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
92
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
92
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
92
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
92
        DCHECK(!(left_is_const && right_is_const));
281
282
92
        if (!left_is_const && !right_is_const) {
283
56
            auto col_res = ColumnUInt8::create();
284
285
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
56
            vec_res.resize(col_left->get_data().size());
287
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
56
                              typename PrimitiveTypeTraits<PT>::CppType,
289
56
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
56
                                                     vec_res);
291
292
56
            block.replace_by_position(result, std::move(col_res));
293
56
        } else if (!left_is_const && right_is_const) {
294
36
            auto col_res = ColumnUInt8::create();
295
296
36
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
36
            vec_res.resize(col_left->size());
298
36
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
36
                              typename PrimitiveTypeTraits<PT>::CppType,
300
36
                              Op<PT>>::vector_constant(col_left->get_data(),
301
36
                                                       col_right->get_element(0), vec_res);
302
303
36
            block.replace_by_position(result, std::move(col_res));
304
36
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
92
        return Status::OK();
317
92
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
4
                            const ColumnPtr& col_right_ptr) const {
274
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
4
        DCHECK(!(left_is_const && right_is_const));
281
282
4
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
4
        } else if (!left_is_const && right_is_const) {
294
4
            auto col_res = ColumnUInt8::create();
295
296
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
4
            vec_res.resize(col_left->size());
298
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
4
                              typename PrimitiveTypeTraits<PT>::CppType,
300
4
                              Op<PT>>::vector_constant(col_left->get_data(),
301
4
                                                       col_right->get_element(0), vec_res);
302
303
4
            block.replace_by_position(result, std::move(col_res));
304
4
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
4
        return Status::OK();
317
4
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.69k
                            const ColumnPtr& col_right_ptr) const {
274
1.69k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.69k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.69k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.69k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.69k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.69k
        if (!left_is_const && !right_is_const) {
283
658
            auto col_res = ColumnUInt8::create();
284
285
658
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
658
            vec_res.resize(col_left->get_data().size());
287
658
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
658
                              typename PrimitiveTypeTraits<PT>::CppType,
289
658
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
658
                                                     vec_res);
291
292
658
            block.replace_by_position(result, std::move(col_res));
293
1.03k
        } else if (!left_is_const && right_is_const) {
294
1.03k
            auto col_res = ColumnUInt8::create();
295
296
1.03k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.03k
            vec_res.resize(col_left->size());
298
1.03k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.03k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.03k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.03k
                                                       col_right->get_element(0), vec_res);
302
303
1.03k
            block.replace_by_position(result, std::move(col_res));
304
1.03k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.69k
        return Status::OK();
317
1.69k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.50k
                            const ColumnPtr& col_right_ptr) const {
274
1.50k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.50k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.50k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.50k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.50k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.50k
        if (!left_is_const && !right_is_const) {
283
463
            auto col_res = ColumnUInt8::create();
284
285
463
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
463
            vec_res.resize(col_left->get_data().size());
287
463
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
463
                              typename PrimitiveTypeTraits<PT>::CppType,
289
463
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
463
                                                     vec_res);
291
292
463
            block.replace_by_position(result, std::move(col_res));
293
1.04k
        } else if (!left_is_const && right_is_const) {
294
1.04k
            auto col_res = ColumnUInt8::create();
295
296
1.04k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.04k
            vec_res.resize(col_left->size());
298
1.04k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.04k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.04k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.04k
                                                       col_right->get_element(0), vec_res);
302
303
1.04k
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.50k
        return Status::OK();
317
1.50k
    }
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
273
48
                            const ColumnPtr& col_right_ptr) const {
274
48
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
48
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
48
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
48
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
48
        DCHECK(!(left_is_const && right_is_const));
281
282
48
        if (!left_is_const && !right_is_const) {
283
20
            auto col_res = ColumnUInt8::create();
284
285
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
20
            vec_res.resize(col_left->get_data().size());
287
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
20
                              typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
20
                                                     vec_res);
291
292
20
            block.replace_by_position(result, std::move(col_res));
293
28
        } else if (!left_is_const && right_is_const) {
294
28
            auto col_res = ColumnUInt8::create();
295
296
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
28
            vec_res.resize(col_left->size());
298
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
28
                              typename PrimitiveTypeTraits<PT>::CppType,
300
28
                              Op<PT>>::vector_constant(col_left->get_data(),
301
28
                                                       col_right->get_element(0), vec_res);
302
303
28
            block.replace_by_position(result, std::move(col_res));
304
28
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
48
        return Status::OK();
317
48
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
60
                            const ColumnPtr& col_right_ptr) const {
274
60
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
60
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
60
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
60
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
60
        DCHECK(!(left_is_const && right_is_const));
281
282
60
        if (!left_is_const && !right_is_const) {
283
20
            auto col_res = ColumnUInt8::create();
284
285
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
20
            vec_res.resize(col_left->get_data().size());
287
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
20
                              typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
20
                                                     vec_res);
291
292
20
            block.replace_by_position(result, std::move(col_res));
293
40
        } else if (!left_is_const && right_is_const) {
294
40
            auto col_res = ColumnUInt8::create();
295
296
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
40
            vec_res.resize(col_left->size());
298
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
40
                              typename PrimitiveTypeTraits<PT>::CppType,
300
40
                              Op<PT>>::vector_constant(col_left->get_data(),
301
40
                                                       col_right->get_element(0), vec_res);
302
303
40
            block.replace_by_position(result, std::move(col_res));
304
40
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
60
        return Status::OK();
317
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
273
1.15k
                            const ColumnPtr& col_right_ptr) const {
274
1.15k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.15k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.15k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.15k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.15k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.15k
        if (!left_is_const && !right_is_const) {
283
1.02k
            auto col_res = ColumnUInt8::create();
284
285
1.02k
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1.02k
            vec_res.resize(col_left->get_data().size());
287
1.02k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1.02k
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1.02k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1.02k
                                                     vec_res);
291
292
1.02k
            block.replace_by_position(result, std::move(col_res));
293
1.02k
        } else if (!left_is_const && right_is_const) {
294
130
            auto col_res = ColumnUInt8::create();
295
296
130
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
130
            vec_res.resize(col_left->size());
298
130
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
130
                              typename PrimitiveTypeTraits<PT>::CppType,
300
130
                              Op<PT>>::vector_constant(col_left->get_data(),
301
130
                                                       col_right->get_element(0), vec_res);
302
303
130
            block.replace_by_position(result, std::move(col_res));
304
130
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.15k
        return Status::OK();
317
1.15k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
92
                            const ColumnPtr& col_right_ptr) const {
274
92
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
92
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
92
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
92
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
92
        DCHECK(!(left_is_const && right_is_const));
281
282
92
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
92
        } else if (!left_is_const && right_is_const) {
294
92
            auto col_res = ColumnUInt8::create();
295
296
92
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
92
            vec_res.resize(col_left->size());
298
92
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
92
                              typename PrimitiveTypeTraits<PT>::CppType,
300
92
                              Op<PT>>::vector_constant(col_left->get_data(),
301
92
                                                       col_right->get_element(0), vec_res);
302
303
92
            block.replace_by_position(result, std::move(col_res));
304
92
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
92
        return Status::OK();
317
92
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
3
                            const ColumnPtr& col_right_ptr) const {
274
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
3
        DCHECK(!(left_is_const && right_is_const));
281
282
3
        if (!left_is_const && !right_is_const) {
283
3
            auto col_res = ColumnUInt8::create();
284
285
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
3
            vec_res.resize(col_left->get_data().size());
287
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
3
                              typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
3
                                                     vec_res);
291
292
3
            block.replace_by_position(result, std::move(col_res));
293
3
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
3
        return Status::OK();
317
3
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
750
                            const ColumnPtr& col_right_ptr) const {
274
750
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
750
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
750
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
750
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
750
        DCHECK(!(left_is_const && right_is_const));
281
282
750
        if (!left_is_const && !right_is_const) {
283
371
            auto col_res = ColumnUInt8::create();
284
285
371
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
371
            vec_res.resize(col_left->get_data().size());
287
371
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
371
                              typename PrimitiveTypeTraits<PT>::CppType,
289
371
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
371
                                                     vec_res);
291
292
371
            block.replace_by_position(result, std::move(col_res));
293
379
        } else if (!left_is_const && right_is_const) {
294
379
            auto col_res = ColumnUInt8::create();
295
296
379
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
379
            vec_res.resize(col_left->size());
298
379
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
379
                              typename PrimitiveTypeTraits<PT>::CppType,
300
379
                              Op<PT>>::vector_constant(col_left->get_data(),
301
379
                                                       col_right->get_element(0), vec_res);
302
303
379
            block.replace_by_position(result, std::move(col_res));
304
379
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
750
        return Status::OK();
317
750
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.00k
                            const ColumnPtr& col_right_ptr) const {
274
1.00k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.00k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.00k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.00k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.00k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.00k
        if (!left_is_const && !right_is_const) {
283
575
            auto col_res = ColumnUInt8::create();
284
285
575
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
575
            vec_res.resize(col_left->get_data().size());
287
575
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
575
                              typename PrimitiveTypeTraits<PT>::CppType,
289
575
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
575
                                                     vec_res);
291
292
575
            block.replace_by_position(result, std::move(col_res));
293
575
        } else if (!left_is_const && right_is_const) {
294
431
            auto col_res = ColumnUInt8::create();
295
296
431
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
431
            vec_res.resize(col_left->size());
298
431
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
431
                              typename PrimitiveTypeTraits<PT>::CppType,
300
431
                              Op<PT>>::vector_constant(col_left->get_data(),
301
431
                                                       col_right->get_element(0), vec_res);
302
303
431
            block.replace_by_position(result, std::move(col_res));
304
431
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.00k
        return Status::OK();
317
1.00k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
8.86k
                            const ColumnPtr& col_right_ptr) const {
274
8.86k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
8.86k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
8.86k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
8.86k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
8.86k
        DCHECK(!(left_is_const && right_is_const));
281
282
8.86k
        if (!left_is_const && !right_is_const) {
283
1.78k
            auto col_res = ColumnUInt8::create();
284
285
1.78k
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1.78k
            vec_res.resize(col_left->get_data().size());
287
1.78k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1.78k
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1.78k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1.78k
                                                     vec_res);
291
292
1.78k
            block.replace_by_position(result, std::move(col_res));
293
7.08k
        } else if (!left_is_const && right_is_const) {
294
7.08k
            auto col_res = ColumnUInt8::create();
295
296
7.08k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
7.08k
            vec_res.resize(col_left->size());
298
7.08k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
7.08k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
7.08k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
7.08k
                                                       col_right->get_element(0), vec_res);
302
303
7.08k
            block.replace_by_position(result, std::move(col_res));
304
7.08k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
8.86k
        return Status::OK();
317
8.86k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
13.2k
                            const ColumnPtr& col_right_ptr) const {
274
13.2k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
13.2k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
13.2k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
13.2k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
13.2k
        DCHECK(!(left_is_const && right_is_const));
281
282
13.2k
        if (!left_is_const && !right_is_const) {
283
153
            auto col_res = ColumnUInt8::create();
284
285
153
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
153
            vec_res.resize(col_left->get_data().size());
287
153
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
153
                              typename PrimitiveTypeTraits<PT>::CppType,
289
153
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
153
                                                     vec_res);
291
292
153
            block.replace_by_position(result, std::move(col_res));
293
13.0k
        } else if (!left_is_const && right_is_const) {
294
13.0k
            auto col_res = ColumnUInt8::create();
295
296
13.0k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
13.0k
            vec_res.resize(col_left->size());
298
13.0k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
13.0k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
13.0k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
13.0k
                                                       col_right->get_element(0), vec_res);
302
303
13.0k
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
13.2k
        return Status::OK();
317
13.2k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
224
                            const ColumnPtr& col_right_ptr) const {
274
224
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
224
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
224
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
224
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
224
        DCHECK(!(left_is_const && right_is_const));
281
282
224
        if (!left_is_const && !right_is_const) {
283
21
            auto col_res = ColumnUInt8::create();
284
285
21
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
21
            vec_res.resize(col_left->get_data().size());
287
21
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
21
                              typename PrimitiveTypeTraits<PT>::CppType,
289
21
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
21
                                                     vec_res);
291
292
21
            block.replace_by_position(result, std::move(col_res));
293
203
        } else if (!left_is_const && right_is_const) {
294
203
            auto col_res = ColumnUInt8::create();
295
296
203
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
203
            vec_res.resize(col_left->size());
298
203
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
203
                              typename PrimitiveTypeTraits<PT>::CppType,
300
203
                              Op<PT>>::vector_constant(col_left->get_data(),
301
203
                                                       col_right->get_element(0), vec_res);
302
303
203
            block.replace_by_position(result, std::move(col_res));
304
203
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
224
        return Status::OK();
317
224
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
2
                            const ColumnPtr& col_right_ptr) const {
274
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
2
        DCHECK(!(left_is_const && right_is_const));
281
282
2
        if (!left_is_const && !right_is_const) {
283
1
            auto col_res = ColumnUInt8::create();
284
285
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1
            vec_res.resize(col_left->get_data().size());
287
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1
                                                     vec_res);
291
292
1
            block.replace_by_position(result, std::move(col_res));
293
1
        } else if (!left_is_const && right_is_const) {
294
1
            auto col_res = ColumnUInt8::create();
295
296
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1
            vec_res.resize(col_left->size());
298
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1
                                                       col_right->get_element(0), vec_res);
302
303
1
            block.replace_by_position(result, std::move(col_res));
304
1
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
2
        return Status::OK();
317
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1
                            const ColumnPtr& col_right_ptr) const {
274
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1
        DCHECK(!(left_is_const && right_is_const));
281
282
1
        if (!left_is_const && !right_is_const) {
283
1
            auto col_res = ColumnUInt8::create();
284
285
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1
            vec_res.resize(col_left->get_data().size());
287
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1
                                                     vec_res);
291
292
1
            block.replace_by_position(result, std::move(col_res));
293
1
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1
        return Status::OK();
317
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
228
                            const ColumnPtr& col_right_ptr) const {
274
228
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
228
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
228
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
228
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
228
        DCHECK(!(left_is_const && right_is_const));
281
282
228
        if (!left_is_const && !right_is_const) {
283
20
            auto col_res = ColumnUInt8::create();
284
285
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
20
            vec_res.resize(col_left->get_data().size());
287
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
20
                              typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
20
                                                     vec_res);
291
292
20
            block.replace_by_position(result, std::move(col_res));
293
208
        } else if (!left_is_const && right_is_const) {
294
208
            auto col_res = ColumnUInt8::create();
295
296
208
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
208
            vec_res.resize(col_left->size());
298
208
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
208
                              typename PrimitiveTypeTraits<PT>::CppType,
300
208
                              Op<PT>>::vector_constant(col_left->get_data(),
301
208
                                                       col_right->get_element(0), vec_res);
302
303
208
            block.replace_by_position(result, std::move(col_res));
304
208
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
228
        return Status::OK();
317
228
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
2.45k
                            const ColumnPtr& col_right_ptr) const {
274
2.45k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
2.45k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
2.45k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
2.45k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
2.45k
        DCHECK(!(left_is_const && right_is_const));
281
282
2.45k
        if (!left_is_const && !right_is_const) {
283
45
            auto col_res = ColumnUInt8::create();
284
285
45
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
45
            vec_res.resize(col_left->get_data().size());
287
45
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
45
                              typename PrimitiveTypeTraits<PT>::CppType,
289
45
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
45
                                                     vec_res);
291
292
45
            block.replace_by_position(result, std::move(col_res));
293
2.40k
        } else if (!left_is_const && right_is_const) {
294
2.40k
            auto col_res = ColumnUInt8::create();
295
296
2.40k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
2.40k
            vec_res.resize(col_left->size());
298
2.40k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
2.40k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
2.40k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
2.40k
                                                       col_right->get_element(0), vec_res);
302
303
2.40k
            block.replace_by_position(result, std::move(col_res));
304
2.40k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
2.45k
        return Status::OK();
317
2.45k
    }
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
273
178
                            const ColumnPtr& col_right_ptr) const {
274
178
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
178
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
178
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
178
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
178
        DCHECK(!(left_is_const && right_is_const));
281
282
180
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
180
        } else if (!left_is_const && right_is_const) {
294
180
            auto col_res = ColumnUInt8::create();
295
296
180
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
180
            vec_res.resize(col_left->size());
298
180
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
180
                              typename PrimitiveTypeTraits<PT>::CppType,
300
180
                              Op<PT>>::vector_constant(col_left->get_data(),
301
180
                                                       col_right->get_element(0), vec_res);
302
303
180
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
178
        return Status::OK();
317
178
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.55k
                            const ColumnPtr& col_right_ptr) const {
274
1.55k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.55k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.55k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.55k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.55k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.55k
        if (!left_is_const && !right_is_const) {
283
7
            auto col_res = ColumnUInt8::create();
284
285
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
7
            vec_res.resize(col_left->get_data().size());
287
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
7
                              typename PrimitiveTypeTraits<PT>::CppType,
289
7
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
7
                                                     vec_res);
291
292
7
            block.replace_by_position(result, std::move(col_res));
293
1.55k
        } else if (!left_is_const && right_is_const) {
294
1.55k
            auto col_res = ColumnUInt8::create();
295
296
1.55k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.55k
            vec_res.resize(col_left->size());
298
1.55k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.55k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.55k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.55k
                                                       col_right->get_element(0), vec_res);
302
303
1.55k
            block.replace_by_position(result, std::move(col_res));
304
1.55k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.55k
        return Status::OK();
317
1.55k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
711
                            const ColumnPtr& col_right_ptr) const {
274
711
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
711
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
711
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
711
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
711
        DCHECK(!(left_is_const && right_is_const));
281
282
711
        if (!left_is_const && !right_is_const) {
283
6
            auto col_res = ColumnUInt8::create();
284
285
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
6
            vec_res.resize(col_left->get_data().size());
287
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
6
                              typename PrimitiveTypeTraits<PT>::CppType,
289
6
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
6
                                                     vec_res);
291
292
6
            block.replace_by_position(result, std::move(col_res));
293
705
        } else if (!left_is_const && right_is_const) {
294
705
            auto col_res = ColumnUInt8::create();
295
296
705
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
705
            vec_res.resize(col_left->size());
298
705
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
705
                              typename PrimitiveTypeTraits<PT>::CppType,
300
705
                              Op<PT>>::vector_constant(col_left->get_data(),
301
705
                                                       col_right->get_element(0), vec_res);
302
303
705
            block.replace_by_position(result, std::move(col_res));
304
705
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
711
        return Status::OK();
317
711
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
3
                            const ColumnPtr& col_right_ptr) const {
274
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
3
        DCHECK(!(left_is_const && right_is_const));
281
282
3
        if (!left_is_const && !right_is_const) {
283
3
            auto col_res = ColumnUInt8::create();
284
285
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
3
            vec_res.resize(col_left->get_data().size());
287
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
3
                              typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
3
                                                     vec_res);
291
292
3
            block.replace_by_position(result, std::move(col_res));
293
3
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
3
        return Status::OK();
317
3
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
37
                            const ColumnPtr& col_right_ptr) const {
274
37
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
37
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
37
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
37
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
37
        DCHECK(!(left_is_const && right_is_const));
281
282
37
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
37
        } else if (!left_is_const && right_is_const) {
294
37
            auto col_res = ColumnUInt8::create();
295
296
37
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
37
            vec_res.resize(col_left->size());
298
37
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
37
                              typename PrimitiveTypeTraits<PT>::CppType,
300
37
                              Op<PT>>::vector_constant(col_left->get_data(),
301
37
                                                       col_right->get_element(0), vec_res);
302
303
37
            block.replace_by_position(result, std::move(col_res));
304
37
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
37
        return Status::OK();
317
37
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
64
                            const ColumnPtr& col_right_ptr) const {
274
64
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
64
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
64
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
64
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
64
        DCHECK(!(left_is_const && right_is_const));
281
282
64
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
64
        } else if (!left_is_const && right_is_const) {
294
64
            auto col_res = ColumnUInt8::create();
295
296
64
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
64
            vec_res.resize(col_left->size());
298
64
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
64
                              typename PrimitiveTypeTraits<PT>::CppType,
300
64
                              Op<PT>>::vector_constant(col_left->get_data(),
301
64
                                                       col_right->get_element(0), vec_res);
302
303
64
            block.replace_by_position(result, std::move(col_res));
304
64
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
64
        return Status::OK();
317
64
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
12.7k
                            const ColumnPtr& col_right_ptr) const {
274
12.7k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
12.7k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
12.7k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
12.7k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
12.7k
        DCHECK(!(left_is_const && right_is_const));
281
282
12.7k
        if (!left_is_const && !right_is_const) {
283
3
            auto col_res = ColumnUInt8::create();
284
285
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
3
            vec_res.resize(col_left->get_data().size());
287
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
3
                              typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
3
                                                     vec_res);
291
292
3
            block.replace_by_position(result, std::move(col_res));
293
12.7k
        } else if (!left_is_const && right_is_const) {
294
12.7k
            auto col_res = ColumnUInt8::create();
295
296
12.7k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
12.7k
            vec_res.resize(col_left->size());
298
12.7k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
12.7k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
12.7k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
12.7k
                                                       col_right->get_element(0), vec_res);
302
303
12.7k
            block.replace_by_position(result, std::move(col_res));
304
12.7k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
12.7k
        return Status::OK();
317
12.7k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
505
                            const ColumnPtr& col_right_ptr) const {
274
505
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
505
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
505
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
505
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
505
        DCHECK(!(left_is_const && right_is_const));
281
282
505
        if (!left_is_const && !right_is_const) {
283
9
            auto col_res = ColumnUInt8::create();
284
285
9
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
9
            vec_res.resize(col_left->get_data().size());
287
9
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
9
                              typename PrimitiveTypeTraits<PT>::CppType,
289
9
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
9
                                                     vec_res);
291
292
9
            block.replace_by_position(result, std::move(col_res));
293
498
        } else if (!left_is_const && right_is_const) {
294
498
            auto col_res = ColumnUInt8::create();
295
296
498
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
498
            vec_res.resize(col_left->size());
298
498
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
498
                              typename PrimitiveTypeTraits<PT>::CppType,
300
498
                              Op<PT>>::vector_constant(col_left->get_data(),
301
498
                                                       col_right->get_element(0), vec_res);
302
303
498
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
505
        return Status::OK();
317
505
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
56
                            const ColumnPtr& col_right_ptr) const {
274
56
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
56
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
56
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
56
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
56
        DCHECK(!(left_is_const && right_is_const));
281
282
56
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
56
        } else if (!left_is_const && right_is_const) {
294
56
            auto col_res = ColumnUInt8::create();
295
296
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
56
            vec_res.resize(col_left->size());
298
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
56
                              typename PrimitiveTypeTraits<PT>::CppType,
300
56
                              Op<PT>>::vector_constant(col_left->get_data(),
301
56
                                                       col_right->get_element(0), vec_res);
302
303
56
            block.replace_by_position(result, std::move(col_res));
304
56
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
56
        return Status::OK();
317
56
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
11
                            const ColumnPtr& col_right_ptr) const {
274
11
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
11
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
11
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
11
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
11
        DCHECK(!(left_is_const && right_is_const));
281
282
11
        if (!left_is_const && !right_is_const) {
283
1
            auto col_res = ColumnUInt8::create();
284
285
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1
            vec_res.resize(col_left->get_data().size());
287
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1
                                                     vec_res);
291
292
1
            block.replace_by_position(result, std::move(col_res));
293
10
        } else if (!left_is_const && right_is_const) {
294
10
            auto col_res = ColumnUInt8::create();
295
296
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
10
            vec_res.resize(col_left->size());
298
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
10
                              typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              Op<PT>>::vector_constant(col_left->get_data(),
301
10
                                                       col_right->get_element(0), vec_res);
302
303
10
            block.replace_by_position(result, std::move(col_res));
304
10
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
11
        return Status::OK();
317
11
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1
                            const ColumnPtr& col_right_ptr) const {
274
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1
        DCHECK(!(left_is_const && right_is_const));
281
282
1
        if (!left_is_const && !right_is_const) {
283
1
            auto col_res = ColumnUInt8::create();
284
285
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1
            vec_res.resize(col_left->get_data().size());
287
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1
                                                     vec_res);
291
292
1
            block.replace_by_position(result, std::move(col_res));
293
1
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1
        return Status::OK();
317
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
168
                            const ColumnPtr& col_right_ptr) const {
274
168
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
168
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
168
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
168
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
168
        DCHECK(!(left_is_const && right_is_const));
281
282
168
        if (!left_is_const && !right_is_const) {
283
20
            auto col_res = ColumnUInt8::create();
284
285
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
20
            vec_res.resize(col_left->get_data().size());
287
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
20
                              typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
20
                                                     vec_res);
291
292
20
            block.replace_by_position(result, std::move(col_res));
293
148
        } else if (!left_is_const && right_is_const) {
294
148
            auto col_res = ColumnUInt8::create();
295
296
148
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
148
            vec_res.resize(col_left->size());
298
148
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
148
                              typename PrimitiveTypeTraits<PT>::CppType,
300
148
                              Op<PT>>::vector_constant(col_left->get_data(),
301
148
                                                       col_right->get_element(0), vec_res);
302
303
148
            block.replace_by_position(result, std::move(col_res));
304
148
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
168
        return Status::OK();
317
168
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
167
                            const ColumnPtr& col_right_ptr) const {
274
167
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
167
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
167
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
167
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
167
        DCHECK(!(left_is_const && right_is_const));
281
282
167
        if (!left_is_const && !right_is_const) {
283
48
            auto col_res = ColumnUInt8::create();
284
285
48
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
48
            vec_res.resize(col_left->get_data().size());
287
48
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
48
                              typename PrimitiveTypeTraits<PT>::CppType,
289
48
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
48
                                                     vec_res);
291
292
48
            block.replace_by_position(result, std::move(col_res));
293
119
        } else if (!left_is_const && right_is_const) {
294
119
            auto col_res = ColumnUInt8::create();
295
296
119
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
119
            vec_res.resize(col_left->size());
298
119
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
119
                              typename PrimitiveTypeTraits<PT>::CppType,
300
119
                              Op<PT>>::vector_constant(col_left->get_data(),
301
119
                                                       col_right->get_element(0), vec_res);
302
303
119
            block.replace_by_position(result, std::move(col_res));
304
119
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
167
        return Status::OK();
317
167
    }
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
273
81
                            const ColumnPtr& col_right_ptr) const {
274
81
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
81
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
81
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
81
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
81
        DCHECK(!(left_is_const && right_is_const));
281
282
81
        if (!left_is_const && !right_is_const) {
283
81
            auto col_res = ColumnUInt8::create();
284
285
81
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
81
            vec_res.resize(col_left->get_data().size());
287
81
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
81
                              typename PrimitiveTypeTraits<PT>::CppType,
289
81
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
81
                                                     vec_res);
291
292
81
            block.replace_by_position(result, std::move(col_res));
293
81
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
81
        return Status::OK();
317
81
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
2.24k
                            const ColumnPtr& col_right_ptr) const {
274
2.24k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
2.24k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
2.24k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
2.24k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
2.24k
        DCHECK(!(left_is_const && right_is_const));
281
282
2.24k
        if (!left_is_const && !right_is_const) {
283
1.76k
            auto col_res = ColumnUInt8::create();
284
285
1.76k
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1.76k
            vec_res.resize(col_left->get_data().size());
287
1.76k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1.76k
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1.76k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1.76k
                                                     vec_res);
291
292
1.76k
            block.replace_by_position(result, std::move(col_res));
293
1.76k
        } else if (!left_is_const && right_is_const) {
294
483
            auto col_res = ColumnUInt8::create();
295
296
483
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
483
            vec_res.resize(col_left->size());
298
483
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
483
                              typename PrimitiveTypeTraits<PT>::CppType,
300
483
                              Op<PT>>::vector_constant(col_left->get_data(),
301
483
                                                       col_right->get_element(0), vec_res);
302
303
483
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
2.24k
        return Status::OK();
317
2.24k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
543
                            const ColumnPtr& col_right_ptr) const {
274
543
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
543
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
543
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
543
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
543
        DCHECK(!(left_is_const && right_is_const));
281
282
543
        if (!left_is_const && !right_is_const) {
283
214
            auto col_res = ColumnUInt8::create();
284
285
214
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
214
            vec_res.resize(col_left->get_data().size());
287
214
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
214
                              typename PrimitiveTypeTraits<PT>::CppType,
289
214
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
214
                                                     vec_res);
291
292
214
            block.replace_by_position(result, std::move(col_res));
293
329
        } else if (!left_is_const && right_is_const) {
294
329
            auto col_res = ColumnUInt8::create();
295
296
329
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
329
            vec_res.resize(col_left->size());
298
329
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
329
                              typename PrimitiveTypeTraits<PT>::CppType,
300
329
                              Op<PT>>::vector_constant(col_left->get_data(),
301
329
                                                       col_right->get_element(0), vec_res);
302
303
329
            block.replace_by_position(result, std::move(col_res));
304
329
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
543
        return Status::OK();
317
543
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
4
                            const ColumnPtr& col_right_ptr) const {
274
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
4
        DCHECK(!(left_is_const && right_is_const));
281
282
4
        if (!left_is_const && !right_is_const) {
283
3
            auto col_res = ColumnUInt8::create();
284
285
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
3
            vec_res.resize(col_left->get_data().size());
287
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
3
                              typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
3
                                                     vec_res);
291
292
3
            block.replace_by_position(result, std::move(col_res));
293
3
        } else if (!left_is_const && right_is_const) {
294
1
            auto col_res = ColumnUInt8::create();
295
296
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1
            vec_res.resize(col_left->size());
298
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1
                                                       col_right->get_element(0), vec_res);
302
303
1
            block.replace_by_position(result, std::move(col_res));
304
1
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
4
        return Status::OK();
317
4
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
812
                            const ColumnPtr& col_right_ptr) const {
274
812
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
812
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
812
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
812
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
812
        DCHECK(!(left_is_const && right_is_const));
281
282
812
        if (!left_is_const && !right_is_const) {
283
767
            auto col_res = ColumnUInt8::create();
284
285
767
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
767
            vec_res.resize(col_left->get_data().size());
287
767
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
767
                              typename PrimitiveTypeTraits<PT>::CppType,
289
767
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
767
                                                     vec_res);
291
292
767
            block.replace_by_position(result, std::move(col_res));
293
767
        } else if (!left_is_const && right_is_const) {
294
45
            auto col_res = ColumnUInt8::create();
295
296
45
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
45
            vec_res.resize(col_left->size());
298
45
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
45
                              typename PrimitiveTypeTraits<PT>::CppType,
300
45
                              Op<PT>>::vector_constant(col_left->get_data(),
301
45
                                                       col_right->get_element(0), vec_res);
302
303
45
            block.replace_by_position(result, std::move(col_res));
304
45
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
812
        return Status::OK();
317
812
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
240
                            const ColumnPtr& col_right_ptr) const {
274
240
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
240
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
240
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
240
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
240
        DCHECK(!(left_is_const && right_is_const));
281
282
240
        if (!left_is_const && !right_is_const) {
283
102
            auto col_res = ColumnUInt8::create();
284
285
102
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
102
            vec_res.resize(col_left->get_data().size());
287
102
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
102
                              typename PrimitiveTypeTraits<PT>::CppType,
289
102
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
102
                                                     vec_res);
291
292
102
            block.replace_by_position(result, std::move(col_res));
293
138
        } else if (!left_is_const && right_is_const) {
294
138
            auto col_res = ColumnUInt8::create();
295
296
138
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
138
            vec_res.resize(col_left->size());
298
138
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
138
                              typename PrimitiveTypeTraits<PT>::CppType,
300
138
                              Op<PT>>::vector_constant(col_left->get_data(),
301
138
                                                       col_right->get_element(0), vec_res);
302
303
138
            block.replace_by_position(result, std::move(col_res));
304
138
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
240
        return Status::OK();
317
240
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
2.00k
                            const ColumnPtr& col_right_ptr) const {
274
2.00k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
2.00k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
2.00k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
2.00k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
2.00k
        DCHECK(!(left_is_const && right_is_const));
281
282
2.00k
        if (!left_is_const && !right_is_const) {
283
147
            auto col_res = ColumnUInt8::create();
284
285
147
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
147
            vec_res.resize(col_left->get_data().size());
287
147
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
147
                              typename PrimitiveTypeTraits<PT>::CppType,
289
147
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
147
                                                     vec_res);
291
292
147
            block.replace_by_position(result, std::move(col_res));
293
1.86k
        } else if (!left_is_const && right_is_const) {
294
1.86k
            auto col_res = ColumnUInt8::create();
295
296
1.86k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.86k
            vec_res.resize(col_left->size());
298
1.86k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.86k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.86k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.86k
                                                       col_right->get_element(0), vec_res);
302
303
1.86k
            block.replace_by_position(result, std::move(col_res));
304
1.86k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
2.00k
        return Status::OK();
317
2.00k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
1.63k
                            const ColumnPtr& col_right_ptr) const {
274
1.63k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
1.63k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
1.63k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
1.63k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
1.63k
        DCHECK(!(left_is_const && right_is_const));
281
282
1.63k
        if (!left_is_const && !right_is_const) {
283
226
            auto col_res = ColumnUInt8::create();
284
285
226
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
226
            vec_res.resize(col_left->get_data().size());
287
226
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
226
                              typename PrimitiveTypeTraits<PT>::CppType,
289
226
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
226
                                                     vec_res);
291
292
226
            block.replace_by_position(result, std::move(col_res));
293
1.41k
        } else if (!left_is_const && right_is_const) {
294
1.41k
            auto col_res = ColumnUInt8::create();
295
296
1.41k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
1.41k
            vec_res.resize(col_left->size());
298
1.41k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
1.41k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
1.41k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
1.41k
                                                       col_right->get_element(0), vec_res);
302
303
1.41k
            block.replace_by_position(result, std::move(col_res));
304
1.41k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
1.63k
        return Status::OK();
317
1.63k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
166
                            const ColumnPtr& col_right_ptr) const {
274
166
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
166
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
166
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
166
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
166
        DCHECK(!(left_is_const && right_is_const));
281
282
166
        if (!left_is_const && !right_is_const) {
283
150
            auto col_res = ColumnUInt8::create();
284
285
150
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
150
            vec_res.resize(col_left->get_data().size());
287
150
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
150
                              typename PrimitiveTypeTraits<PT>::CppType,
289
150
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
150
                                                     vec_res);
291
292
150
            block.replace_by_position(result, std::move(col_res));
293
150
        } else if (!left_is_const && right_is_const) {
294
16
            auto col_res = ColumnUInt8::create();
295
296
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
16
            vec_res.resize(col_left->size());
298
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
16
                              typename PrimitiveTypeTraits<PT>::CppType,
300
16
                              Op<PT>>::vector_constant(col_left->get_data(),
301
16
                                                       col_right->get_element(0), vec_res);
302
303
16
            block.replace_by_position(result, std::move(col_res));
304
16
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
166
        return Status::OK();
317
166
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
16
                            const ColumnPtr& col_right_ptr) const {
274
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
16
        DCHECK(!(left_is_const && right_is_const));
281
282
16
        if (!left_is_const && !right_is_const) {
283
16
            auto col_res = ColumnUInt8::create();
284
285
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
16
            vec_res.resize(col_left->get_data().size());
287
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
16
                              typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
16
                                                     vec_res);
291
292
16
            block.replace_by_position(result, std::move(col_res));
293
16
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
16
        return Status::OK();
317
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
16
                            const ColumnPtr& col_right_ptr) const {
274
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
16
        DCHECK(!(left_is_const && right_is_const));
281
282
16
        if (!left_is_const && !right_is_const) {
283
16
            auto col_res = ColumnUInt8::create();
284
285
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
16
            vec_res.resize(col_left->get_data().size());
287
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
16
                              typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
16
                                                     vec_res);
291
292
16
            block.replace_by_position(result, std::move(col_res));
293
16
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
16
        return Status::OK();
317
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
144
                            const ColumnPtr& col_right_ptr) const {
274
144
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
144
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
144
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
144
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
144
        DCHECK(!(left_is_const && right_is_const));
281
282
144
        if (!left_is_const && !right_is_const) {
283
118
            auto col_res = ColumnUInt8::create();
284
285
118
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
118
            vec_res.resize(col_left->get_data().size());
287
118
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
118
                              typename PrimitiveTypeTraits<PT>::CppType,
289
118
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
118
                                                     vec_res);
291
292
118
            block.replace_by_position(result, std::move(col_res));
293
118
        } else if (!left_is_const && right_is_const) {
294
26
            auto col_res = ColumnUInt8::create();
295
296
26
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
26
            vec_res.resize(col_left->size());
298
26
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
26
                              typename PrimitiveTypeTraits<PT>::CppType,
300
26
                              Op<PT>>::vector_constant(col_left->get_data(),
301
26
                                                       col_right->get_element(0), vec_res);
302
303
26
            block.replace_by_position(result, std::move(col_res));
304
26
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
144
        return Status::OK();
317
144
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
314
                            const ColumnPtr& col_right_ptr) const {
274
314
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
314
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
314
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
314
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
314
        DCHECK(!(left_is_const && right_is_const));
281
282
317
        if (!left_is_const && !right_is_const) {
283
124
            auto col_res = ColumnUInt8::create();
284
285
124
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
124
            vec_res.resize(col_left->get_data().size());
287
124
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
124
                              typename PrimitiveTypeTraits<PT>::CppType,
289
124
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
124
                                                     vec_res);
291
292
124
            block.replace_by_position(result, std::move(col_res));
293
193
        } else if (!left_is_const && right_is_const) {
294
193
            auto col_res = ColumnUInt8::create();
295
296
193
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
193
            vec_res.resize(col_left->size());
298
193
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
193
                              typename PrimitiveTypeTraits<PT>::CppType,
300
193
                              Op<PT>>::vector_constant(col_left->get_data(),
301
193
                                                       col_right->get_element(0), vec_res);
302
303
193
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
314
        return Status::OK();
317
314
    }
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
273
178
                            const ColumnPtr& col_right_ptr) const {
274
178
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
178
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
178
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
178
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
178
        DCHECK(!(left_is_const && right_is_const));
281
282
178
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
178
        } else if (!left_is_const && right_is_const) {
294
178
            auto col_res = ColumnUInt8::create();
295
296
178
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
178
            vec_res.resize(col_left->size());
298
178
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
178
                              typename PrimitiveTypeTraits<PT>::CppType,
300
178
                              Op<PT>>::vector_constant(col_left->get_data(),
301
178
                                                       col_right->get_element(0), vec_res);
302
303
178
            block.replace_by_position(result, std::move(col_res));
304
178
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
178
        return Status::OK();
317
178
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
10.4k
                            const ColumnPtr& col_right_ptr) const {
274
10.4k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
10.4k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
10.4k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
10.4k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
10.4k
        DCHECK(!(left_is_const && right_is_const));
281
282
10.4k
        if (!left_is_const && !right_is_const) {
283
438
            auto col_res = ColumnUInt8::create();
284
285
438
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
438
            vec_res.resize(col_left->get_data().size());
287
438
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
438
                              typename PrimitiveTypeTraits<PT>::CppType,
289
438
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
438
                                                     vec_res);
291
292
438
            block.replace_by_position(result, std::move(col_res));
293
9.96k
        } else if (!left_is_const && right_is_const) {
294
9.96k
            auto col_res = ColumnUInt8::create();
295
296
9.96k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
9.96k
            vec_res.resize(col_left->size());
298
9.96k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
9.96k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
9.96k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
9.96k
                                                       col_right->get_element(0), vec_res);
302
303
9.96k
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
10.4k
        return Status::OK();
317
10.4k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
372
                            const ColumnPtr& col_right_ptr) const {
274
372
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
372
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
372
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
372
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
372
        DCHECK(!(left_is_const && right_is_const));
281
282
374
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
374
        } else if (!left_is_const && right_is_const) {
294
374
            auto col_res = ColumnUInt8::create();
295
296
374
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
374
            vec_res.resize(col_left->size());
298
374
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
374
                              typename PrimitiveTypeTraits<PT>::CppType,
300
374
                              Op<PT>>::vector_constant(col_left->get_data(),
301
374
                                                       col_right->get_element(0), vec_res);
302
303
374
            block.replace_by_position(result, std::move(col_res));
304
18.4E
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
372
        return Status::OK();
317
372
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
3
                            const ColumnPtr& col_right_ptr) const {
274
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
3
        DCHECK(!(left_is_const && right_is_const));
281
282
3
        if (!left_is_const && !right_is_const) {
283
3
            auto col_res = ColumnUInt8::create();
284
285
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
3
            vec_res.resize(col_left->get_data().size());
287
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
3
                              typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
3
                                                     vec_res);
291
292
3
            block.replace_by_position(result, std::move(col_res));
293
3
        } else if (!left_is_const && right_is_const) {
294
0
            auto col_res = ColumnUInt8::create();
295
296
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
0
            vec_res.resize(col_left->size());
298
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
0
                              typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              Op<PT>>::vector_constant(col_left->get_data(),
301
0
                                                       col_right->get_element(0), vec_res);
302
303
0
            block.replace_by_position(result, std::move(col_res));
304
0
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
3
        return Status::OK();
317
3
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
47
                            const ColumnPtr& col_right_ptr) const {
274
47
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
47
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
47
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
47
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
47
        DCHECK(!(left_is_const && right_is_const));
281
282
47
        if (!left_is_const && !right_is_const) {
283
1
            auto col_res = ColumnUInt8::create();
284
285
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
1
            vec_res.resize(col_left->get_data().size());
287
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
1
                              typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
1
                                                     vec_res);
291
292
1
            block.replace_by_position(result, std::move(col_res));
293
46
        } else if (!left_is_const && right_is_const) {
294
46
            auto col_res = ColumnUInt8::create();
295
296
46
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
46
            vec_res.resize(col_left->size());
298
46
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
46
                              typename PrimitiveTypeTraits<PT>::CppType,
300
46
                              Op<PT>>::vector_constant(col_left->get_data(),
301
46
                                                       col_right->get_element(0), vec_res);
302
303
46
            block.replace_by_position(result, std::move(col_res));
304
46
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
47
        return Status::OK();
317
47
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
90
                            const ColumnPtr& col_right_ptr) const {
274
90
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
90
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
90
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
90
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
90
        DCHECK(!(left_is_const && right_is_const));
281
282
90
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
90
        } else if (!left_is_const && right_is_const) {
294
90
            auto col_res = ColumnUInt8::create();
295
296
90
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
90
            vec_res.resize(col_left->size());
298
90
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
90
                              typename PrimitiveTypeTraits<PT>::CppType,
300
90
                              Op<PT>>::vector_constant(col_left->get_data(),
301
90
                                                       col_right->get_element(0), vec_res);
302
303
90
            block.replace_by_position(result, std::move(col_res));
304
90
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
90
        return Status::OK();
317
90
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
12.7k
                            const ColumnPtr& col_right_ptr) const {
274
12.7k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
12.7k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
12.7k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
12.7k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
12.7k
        DCHECK(!(left_is_const && right_is_const));
281
282
12.7k
        if (!left_is_const && !right_is_const) {
283
41
            auto col_res = ColumnUInt8::create();
284
285
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
41
            vec_res.resize(col_left->get_data().size());
287
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
41
                              typename PrimitiveTypeTraits<PT>::CppType,
289
41
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
41
                                                     vec_res);
291
292
41
            block.replace_by_position(result, std::move(col_res));
293
12.7k
        } else if (!left_is_const && right_is_const) {
294
12.7k
            auto col_res = ColumnUInt8::create();
295
296
12.7k
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
12.7k
            vec_res.resize(col_left->size());
298
12.7k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
12.7k
                              typename PrimitiveTypeTraits<PT>::CppType,
300
12.7k
                              Op<PT>>::vector_constant(col_left->get_data(),
301
12.7k
                                                       col_right->get_element(0), vec_res);
302
303
12.7k
            block.replace_by_position(result, std::move(col_res));
304
12.7k
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
12.7k
        return Status::OK();
317
12.7k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
639
                            const ColumnPtr& col_right_ptr) const {
274
639
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
639
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
639
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
639
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
639
        DCHECK(!(left_is_const && right_is_const));
281
282
639
        if (!left_is_const && !right_is_const) {
283
36
            auto col_res = ColumnUInt8::create();
284
285
36
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
36
            vec_res.resize(col_left->get_data().size());
287
36
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
36
                              typename PrimitiveTypeTraits<PT>::CppType,
289
36
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
36
                                                     vec_res);
291
292
36
            block.replace_by_position(result, std::move(col_res));
293
603
        } else if (!left_is_const && right_is_const) {
294
603
            auto col_res = ColumnUInt8::create();
295
296
603
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
603
            vec_res.resize(col_left->size());
298
603
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
603
                              typename PrimitiveTypeTraits<PT>::CppType,
300
603
                              Op<PT>>::vector_constant(col_left->get_data(),
301
603
                                                       col_right->get_element(0), vec_res);
302
303
603
            block.replace_by_position(result, std::move(col_res));
304
603
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
639
        return Status::OK();
317
639
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
52
                            const ColumnPtr& col_right_ptr) const {
274
52
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
52
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
52
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
52
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
52
        DCHECK(!(left_is_const && right_is_const));
281
282
52
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
52
        } else if (!left_is_const && right_is_const) {
294
52
            auto col_res = ColumnUInt8::create();
295
296
52
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
52
            vec_res.resize(col_left->size());
298
52
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
52
                              typename PrimitiveTypeTraits<PT>::CppType,
300
52
                              Op<PT>>::vector_constant(col_left->get_data(),
301
52
                                                       col_right->get_element(0), vec_res);
302
303
52
            block.replace_by_position(result, std::move(col_res));
304
52
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
52
        return Status::OK();
317
52
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
10
                            const ColumnPtr& col_right_ptr) const {
274
10
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
10
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
10
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
10
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
10
        DCHECK(!(left_is_const && right_is_const));
281
282
10
        if (!left_is_const && !right_is_const) {
283
0
            auto col_res = ColumnUInt8::create();
284
285
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
0
            vec_res.resize(col_left->get_data().size());
287
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
0
                              typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
0
                                                     vec_res);
291
292
0
            block.replace_by_position(result, std::move(col_res));
293
10
        } else if (!left_is_const && right_is_const) {
294
10
            auto col_res = ColumnUInt8::create();
295
296
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
10
            vec_res.resize(col_left->size());
298
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
10
                              typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              Op<PT>>::vector_constant(col_left->get_data(),
301
10
                                                       col_right->get_element(0), vec_res);
302
303
10
            block.replace_by_position(result, std::move(col_res));
304
10
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
10
        return Status::OK();
317
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
273
163
                            const ColumnPtr& col_right_ptr) const {
274
163
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
163
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
163
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
163
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
163
        DCHECK(!(left_is_const && right_is_const));
281
282
163
        if (!left_is_const && !right_is_const) {
283
19
            auto col_res = ColumnUInt8::create();
284
285
19
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
19
            vec_res.resize(col_left->get_data().size());
287
19
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
19
                              typename PrimitiveTypeTraits<PT>::CppType,
289
19
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
19
                                                     vec_res);
291
292
19
            block.replace_by_position(result, std::move(col_res));
293
144
        } else if (!left_is_const && right_is_const) {
294
144
            auto col_res = ColumnUInt8::create();
295
296
144
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
144
            vec_res.resize(col_left->size());
298
144
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
144
                              typename PrimitiveTypeTraits<PT>::CppType,
300
144
                              Op<PT>>::vector_constant(col_left->get_data(),
301
144
                                                       col_right->get_element(0), vec_res);
302
303
144
            block.replace_by_position(result, std::move(col_res));
304
144
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
163
        return Status::OK();
317
163
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
273
139
                            const ColumnPtr& col_right_ptr) const {
274
139
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
275
139
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
276
277
139
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
278
139
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
279
280
139
        DCHECK(!(left_is_const && right_is_const));
281
282
139
        if (!left_is_const && !right_is_const) {
283
20
            auto col_res = ColumnUInt8::create();
284
285
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
286
20
            vec_res.resize(col_left->get_data().size());
287
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
288
20
                              typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
290
20
                                                     vec_res);
291
292
20
            block.replace_by_position(result, std::move(col_res));
293
119
        } else if (!left_is_const && right_is_const) {
294
119
            auto col_res = ColumnUInt8::create();
295
296
119
            ColumnUInt8::Container& vec_res = col_res->get_data();
297
119
            vec_res.resize(col_left->size());
298
119
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
299
119
                              typename PrimitiveTypeTraits<PT>::CppType,
300
119
                              Op<PT>>::vector_constant(col_left->get_data(),
301
119
                                                       col_right->get_element(0), vec_res);
302
303
119
            block.replace_by_position(result, std::move(col_res));
304
119
        } else if (left_is_const && !right_is_const) {
305
0
            auto col_res = ColumnUInt8::create();
306
307
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
308
0
            vec_res.resize(col_right->size());
309
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
310
0
                              typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
312
0
                                                       col_right->get_data(), vec_res);
313
314
0
            block.replace_by_position(result, std::move(col_res));
315
0
        }
316
139
        return Status::OK();
317
139
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
318
319
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
320
8.86k
                           const ColumnWithTypeAndName& col_right) const {
321
8.86k
        auto call = [&](const auto& type) -> bool {
322
8.85k
            using DispatchType = std::decay_t<decltype(type)>;
323
8.85k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
8.85k
                    block, result, col_left, col_right);
325
8.85k
            return true;
326
8.85k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
223
        auto call = [&](const auto& type) -> bool {
322
223
            using DispatchType = std::decay_t<decltype(type)>;
323
223
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
223
                    block, result, col_left, col_right);
325
223
            return true;
326
223
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
250
        auto call = [&](const auto& type) -> bool {
322
250
            using DispatchType = std::decay_t<decltype(type)>;
323
250
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
250
                    block, result, col_left, col_right);
325
250
            return true;
326
250
        };
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
321
1.19k
        auto call = [&](const auto& type) -> bool {
322
1.19k
            using DispatchType = std::decay_t<decltype(type)>;
323
1.19k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
1.19k
                    block, result, col_left, col_right);
325
1.19k
            return true;
326
1.19k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
321
30
        auto call = [&](const auto& type) -> bool {
322
30
            using DispatchType = std::decay_t<decltype(type)>;
323
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
30
                    block, result, col_left, col_right);
325
30
            return true;
326
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
321
61
        auto call = [&](const auto& type) -> bool {
322
61
            using DispatchType = std::decay_t<decltype(type)>;
323
61
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
61
                    block, result, col_left, col_right);
325
61
            return true;
326
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
321
324
        auto call = [&](const auto& type) -> bool {
322
324
            using DispatchType = std::decay_t<decltype(type)>;
323
324
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
324
                    block, result, col_left, col_right);
325
324
            return true;
326
324
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
321
30
        auto call = [&](const auto& type) -> bool {
322
30
            using DispatchType = std::decay_t<decltype(type)>;
323
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
30
                    block, result, col_left, col_right);
325
30
            return true;
326
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
28
        auto call = [&](const auto& type) -> bool {
322
28
            using DispatchType = std::decay_t<decltype(type)>;
323
28
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
28
                    block, result, col_left, col_right);
325
28
            return true;
326
28
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
1.33k
        auto call = [&](const auto& type) -> bool {
322
1.33k
            using DispatchType = std::decay_t<decltype(type)>;
323
1.33k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
1.33k
                    block, result, col_left, col_right);
325
1.33k
            return true;
326
1.33k
        };
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
321
1.72k
        auto call = [&](const auto& type) -> bool {
322
1.72k
            using DispatchType = std::decay_t<decltype(type)>;
323
1.72k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
1.72k
                    block, result, col_left, col_right);
325
1.72k
            return true;
326
1.72k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
321
2
        auto call = [&](const auto& type) -> bool {
322
2
            using DispatchType = std::decay_t<decltype(type)>;
323
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
2
                    block, result, col_left, col_right);
325
2
            return true;
326
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
8
        auto call = [&](const auto& type) -> bool {
322
8
            using DispatchType = std::decay_t<decltype(type)>;
323
8
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
8
                    block, result, col_left, col_right);
325
8
            return true;
326
8
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
330
        auto call = [&](const auto& type) -> bool {
322
330
            using DispatchType = std::decay_t<decltype(type)>;
323
330
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
330
                    block, result, col_left, col_right);
325
330
            return true;
326
330
        };
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
321
36
        auto call = [&](const auto& type) -> bool {
322
36
            using DispatchType = std::decay_t<decltype(type)>;
323
36
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
36
                    block, result, col_left, col_right);
325
36
            return true;
326
36
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
321
27
        auto call = [&](const auto& type) -> bool {
322
27
            using DispatchType = std::decay_t<decltype(type)>;
323
27
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
27
                    block, result, col_left, col_right);
325
27
            return true;
326
27
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
186
        auto call = [&](const auto& type) -> bool {
322
186
            using DispatchType = std::decay_t<decltype(type)>;
323
186
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
186
                    block, result, col_left, col_right);
325
186
            return true;
326
186
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
218
        auto call = [&](const auto& type) -> bool {
322
218
            using DispatchType = std::decay_t<decltype(type)>;
323
218
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
218
                    block, result, col_left, col_right);
325
218
            return true;
326
218
        };
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
321
443
        auto call = [&](const auto& type) -> bool {
322
443
            using DispatchType = std::decay_t<decltype(type)>;
323
443
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
443
                    block, result, col_left, col_right);
325
443
            return true;
326
443
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
321
1
        auto call = [&](const auto& type) -> bool {
322
1
            using DispatchType = std::decay_t<decltype(type)>;
323
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
1
                    block, result, col_left, col_right);
325
1
            return true;
326
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
321
7
        auto call = [&](const auto& type) -> bool {
322
7
            using DispatchType = std::decay_t<decltype(type)>;
323
7
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
7
                    block, result, col_left, col_right);
325
7
            return true;
326
7
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
321
1.62k
        auto call = [&](const auto& type) -> bool {
322
1.62k
            using DispatchType = std::decay_t<decltype(type)>;
323
1.62k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
1.62k
                    block, result, col_left, col_right);
325
1.62k
            return true;
326
1.62k
        };
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
321
755
        auto call = [&](const auto& type) -> bool {
322
755
            using DispatchType = std::decay_t<decltype(type)>;
323
755
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
755
                    block, result, col_left, col_right);
325
755
            return true;
326
755
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
321
22
        auto call = [&](const auto& type) -> bool {
322
22
            using DispatchType = std::decay_t<decltype(type)>;
323
22
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
22
                    block, result, col_left, col_right);
325
22
            return true;
326
22
        };
327
328
8.86k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
8.86k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
8.86k
        return Status::OK();
339
8.86k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
1.70k
                           const ColumnWithTypeAndName& col_right) const {
321
1.70k
        auto call = [&](const auto& type) -> bool {
322
1.70k
            using DispatchType = std::decay_t<decltype(type)>;
323
1.70k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
1.70k
                    block, result, col_left, col_right);
325
1.70k
            return true;
326
1.70k
        };
327
328
1.70k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
1.70k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
1.70k
        return Status::OK();
339
1.70k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
415
                           const ColumnWithTypeAndName& col_right) const {
321
415
        auto call = [&](const auto& type) -> bool {
322
415
            using DispatchType = std::decay_t<decltype(type)>;
323
415
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
415
                    block, result, col_left, col_right);
325
415
            return true;
326
415
        };
327
328
415
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
415
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
415
        return Status::OK();
339
415
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
3.08k
                           const ColumnWithTypeAndName& col_right) const {
321
3.08k
        auto call = [&](const auto& type) -> bool {
322
3.08k
            using DispatchType = std::decay_t<decltype(type)>;
323
3.08k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
3.08k
                    block, result, col_left, col_right);
325
3.08k
            return true;
326
3.08k
        };
327
328
3.08k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
3.08k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
3.08k
        return Status::OK();
339
3.08k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
401
                           const ColumnWithTypeAndName& col_right) const {
321
401
        auto call = [&](const auto& type) -> bool {
322
401
            using DispatchType = std::decay_t<decltype(type)>;
323
401
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
401
                    block, result, col_left, col_right);
325
401
            return true;
326
401
        };
327
328
401
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
401
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
401
        return Status::OK();
339
401
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
848
                           const ColumnWithTypeAndName& col_right) const {
321
848
        auto call = [&](const auto& type) -> bool {
322
848
            using DispatchType = std::decay_t<decltype(type)>;
323
848
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
848
                    block, result, col_left, col_right);
325
848
            return true;
326
848
        };
327
328
848
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
848
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
848
        return Status::OK();
339
848
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
320
2.40k
                           const ColumnWithTypeAndName& col_right) const {
321
2.40k
        auto call = [&](const auto& type) -> bool {
322
2.40k
            using DispatchType = std::decay_t<decltype(type)>;
323
2.40k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
324
2.40k
                    block, result, col_left, col_right);
325
2.40k
            return true;
326
2.40k
        };
327
328
2.40k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
329
0
            return Status::RuntimeError(
330
0
                    "type of left column {} is not equal to type of right column {}",
331
0
                    col_left.type->get_name(), col_right.type->get_name());
332
0
        }
333
334
2.40k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
335
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
336
0
                                        col_left.type->get_name(), col_right.type->get_name());
337
0
        }
338
2.40k
        return Status::OK();
339
2.40k
    }
340
341
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
342
24.5k
                          const IColumn* c1) const {
343
24.5k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
24.5k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
24.5k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
24.5k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
24.5k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
24.5k
        DCHECK(!(c0_const && c1_const));
352
24.5k
        const ColumnString::Chars* c0_const_chars = nullptr;
353
24.5k
        const ColumnString::Chars* c1_const_chars = nullptr;
354
24.5k
        ColumnString::Offset c0_const_size = 0;
355
24.5k
        ColumnString::Offset c1_const_size = 0;
356
357
24.5k
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
24.5k
        if (c1_const) {
371
23.6k
            const ColumnString* c1_const_string =
372
23.6k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
23.6k
            if (c1_const_string) {
375
23.6k
                c1_const_chars = &c1_const_string->get_chars();
376
23.6k
                c1_const_size = c1_const_string->get_offsets()[0];
377
23.6k
            } else {
378
3
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
3
                                            c1->get_name(), name);
380
3
            }
381
23.6k
        }
382
383
24.5k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
24.5k
        auto c_res = ColumnUInt8::create();
386
24.5k
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
24.5k
        vec_res.resize(c0->size());
388
389
24.5k
        if (c0_string && c1_string) {
390
819
            StringImpl::string_vector_string_vector(
391
819
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
819
                    c1_string->get_offsets(), vec_res);
393
23.6k
        } else if (c0_string && c1_const) {
394
23.6k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
23.6k
                                               *c1_const_chars, c1_const_size, vec_res);
396
18.4E
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
18.4E
        } else {
401
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
18.4E
                                        c0->get_name(), c1->get_name(), name);
403
18.4E
        }
404
24.5k
        block.replace_by_position(result, std::move(c_res));
405
24.5k
        return Status::OK();
406
24.5k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
20.7k
                          const IColumn* c1) const {
343
20.7k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
20.7k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
20.7k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
20.7k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
20.7k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
20.7k
        DCHECK(!(c0_const && c1_const));
352
20.7k
        const ColumnString::Chars* c0_const_chars = nullptr;
353
20.7k
        const ColumnString::Chars* c1_const_chars = nullptr;
354
20.7k
        ColumnString::Offset c0_const_size = 0;
355
20.7k
        ColumnString::Offset c1_const_size = 0;
356
357
20.7k
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
20.7k
        if (c1_const) {
371
20.3k
            const ColumnString* c1_const_string =
372
20.3k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
20.3k
            if (c1_const_string) {
375
20.3k
                c1_const_chars = &c1_const_string->get_chars();
376
20.3k
                c1_const_size = c1_const_string->get_offsets()[0];
377
20.3k
            } else {
378
1
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
1
                                            c1->get_name(), name);
380
1
            }
381
20.3k
        }
382
383
20.7k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
20.7k
        auto c_res = ColumnUInt8::create();
386
20.7k
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
20.7k
        vec_res.resize(c0->size());
388
389
20.7k
        if (c0_string && c1_string) {
390
436
            StringImpl::string_vector_string_vector(
391
436
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
436
                    c1_string->get_offsets(), vec_res);
393
20.3k
        } else if (c0_string && c1_const) {
394
20.3k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
20.3k
                                               *c1_const_chars, c1_const_size, vec_res);
396
18.4E
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
18.4E
        } else {
401
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
18.4E
                                        c0->get_name(), c1->get_name(), name);
403
18.4E
        }
404
20.7k
        block.replace_by_position(result, std::move(c_res));
405
20.7k
        return Status::OK();
406
20.7k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
1.29k
                          const IColumn* c1) const {
343
1.29k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
1.29k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
1.29k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
1.29k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
1.29k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
1.29k
        DCHECK(!(c0_const && c1_const));
352
1.29k
        const ColumnString::Chars* c0_const_chars = nullptr;
353
1.29k
        const ColumnString::Chars* c1_const_chars = nullptr;
354
1.29k
        ColumnString::Offset c0_const_size = 0;
355
1.29k
        ColumnString::Offset c1_const_size = 0;
356
357
1.29k
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
1.29k
        if (c1_const) {
371
1.28k
            const ColumnString* c1_const_string =
372
1.28k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
1.28k
            if (c1_const_string) {
375
1.28k
                c1_const_chars = &c1_const_string->get_chars();
376
1.28k
                c1_const_size = c1_const_string->get_offsets()[0];
377
1.28k
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
1.28k
        }
382
383
1.29k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
1.29k
        auto c_res = ColumnUInt8::create();
386
1.29k
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
1.29k
        vec_res.resize(c0->size());
388
389
1.29k
        if (c0_string && c1_string) {
390
1
            StringImpl::string_vector_string_vector(
391
1
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
1
                    c1_string->get_offsets(), vec_res);
393
1.28k
        } else if (c0_string && c1_const) {
394
1.28k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
1.28k
                                               *c1_const_chars, c1_const_size, vec_res);
396
1.28k
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
0
        } else {
401
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
0
                                        c0->get_name(), c1->get_name(), name);
403
0
        }
404
1.29k
        block.replace_by_position(result, std::move(c_res));
405
1.29k
        return Status::OK();
406
1.29k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
212
                          const IColumn* c1) const {
343
212
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
212
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
212
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
212
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
212
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
212
        DCHECK(!(c0_const && c1_const));
352
212
        const ColumnString::Chars* c0_const_chars = nullptr;
353
212
        const ColumnString::Chars* c1_const_chars = nullptr;
354
212
        ColumnString::Offset c0_const_size = 0;
355
212
        ColumnString::Offset c1_const_size = 0;
356
357
212
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
212
        if (c1_const) {
371
210
            const ColumnString* c1_const_string =
372
210
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
210
            if (c1_const_string) {
375
210
                c1_const_chars = &c1_const_string->get_chars();
376
210
                c1_const_size = c1_const_string->get_offsets()[0];
377
210
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
210
        }
382
383
212
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
212
        auto c_res = ColumnUInt8::create();
386
212
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
212
        vec_res.resize(c0->size());
388
389
212
        if (c0_string && c1_string) {
390
2
            StringImpl::string_vector_string_vector(
391
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
2
                    c1_string->get_offsets(), vec_res);
393
210
        } else if (c0_string && c1_const) {
394
210
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
210
                                               *c1_const_chars, c1_const_size, vec_res);
396
210
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
0
        } else {
401
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
0
                                        c0->get_name(), c1->get_name(), name);
403
0
        }
404
212
        block.replace_by_position(result, std::move(c_res));
405
212
        return Status::OK();
406
212
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
724
                          const IColumn* c1) const {
343
724
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
724
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
724
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
724
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
724
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
724
        DCHECK(!(c0_const && c1_const));
352
724
        const ColumnString::Chars* c0_const_chars = nullptr;
353
724
        const ColumnString::Chars* c1_const_chars = nullptr;
354
724
        ColumnString::Offset c0_const_size = 0;
355
724
        ColumnString::Offset c1_const_size = 0;
356
357
724
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
724
        if (c1_const) {
371
681
            const ColumnString* c1_const_string =
372
681
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
681
            if (c1_const_string) {
375
681
                c1_const_chars = &c1_const_string->get_chars();
376
681
                c1_const_size = c1_const_string->get_offsets()[0];
377
681
            } else {
378
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
0
                                            c1->get_name(), name);
380
0
            }
381
681
        }
382
383
724
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
724
        auto c_res = ColumnUInt8::create();
386
724
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
724
        vec_res.resize(c0->size());
388
389
724
        if (c0_string && c1_string) {
390
43
            StringImpl::string_vector_string_vector(
391
43
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
43
                    c1_string->get_offsets(), vec_res);
393
681
        } else if (c0_string && c1_const) {
394
681
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
681
                                               *c1_const_chars, c1_const_size, vec_res);
396
681
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
0
        } else {
401
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
0
                                        c0->get_name(), c1->get_name(), name);
403
0
        }
404
724
        block.replace_by_position(result, std::move(c_res));
405
724
        return Status::OK();
406
724
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
599
                          const IColumn* c1) const {
343
599
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
599
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
599
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
599
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
600
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
599
        DCHECK(!(c0_const && c1_const));
352
599
        const ColumnString::Chars* c0_const_chars = nullptr;
353
599
        const ColumnString::Chars* c1_const_chars = nullptr;
354
599
        ColumnString::Offset c0_const_size = 0;
355
599
        ColumnString::Offset c1_const_size = 0;
356
357
599
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
599
        if (c1_const) {
371
263
            const ColumnString* c1_const_string =
372
263
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
263
            if (c1_const_string) {
375
262
                c1_const_chars = &c1_const_string->get_chars();
376
262
                c1_const_size = c1_const_string->get_offsets()[0];
377
262
            } else {
378
1
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
1
                                            c1->get_name(), name);
380
1
            }
381
263
        }
382
383
598
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
598
        auto c_res = ColumnUInt8::create();
386
598
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
598
        vec_res.resize(c0->size());
388
389
600
        if (c0_string && c1_string) {
390
337
            StringImpl::string_vector_string_vector(
391
337
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
337
                    c1_string->get_offsets(), vec_res);
393
337
        } else if (c0_string && c1_const) {
394
263
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
263
                                               *c1_const_chars, c1_const_size, vec_res);
396
18.4E
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
18.4E
        } else {
401
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
18.4E
                                        c0->get_name(), c1->get_name(), name);
403
18.4E
        }
404
600
        block.replace_by_position(result, std::move(c_res));
405
600
        return Status::OK();
406
598
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
342
902
                          const IColumn* c1) const {
343
902
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
344
902
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
345
902
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
346
902
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
347
903
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
348
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
349
0
                                        c0->get_name(), c1->get_name(), name);
350
0
        }
351
902
        DCHECK(!(c0_const && c1_const));
352
902
        const ColumnString::Chars* c0_const_chars = nullptr;
353
902
        const ColumnString::Chars* c1_const_chars = nullptr;
354
902
        ColumnString::Offset c0_const_size = 0;
355
902
        ColumnString::Offset c1_const_size = 0;
356
357
902
        if (c0_const) {
358
0
            const ColumnString* c0_const_string =
359
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
360
361
0
            if (c0_const_string) {
362
0
                c0_const_chars = &c0_const_string->get_chars();
363
0
                c0_const_size = c0_const_string->get_offsets()[0];
364
0
            } else {
365
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
366
0
                                            c0->get_name(), name);
367
0
            }
368
0
        }
369
370
903
        if (c1_const) {
371
903
            const ColumnString* c1_const_string =
372
903
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
373
374
903
            if (c1_const_string) {
375
902
                c1_const_chars = &c1_const_string->get_chars();
376
902
                c1_const_size = c1_const_string->get_offsets()[0];
377
902
            } else {
378
1
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
379
1
                                            c1->get_name(), name);
380
1
            }
381
903
        }
382
383
901
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
384
385
901
        auto c_res = ColumnUInt8::create();
386
901
        ColumnUInt8::Container& vec_res = c_res->get_data();
387
901
        vec_res.resize(c0->size());
388
389
904
        if (c0_string && c1_string) {
390
0
            StringImpl::string_vector_string_vector(
391
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
392
0
                    c1_string->get_offsets(), vec_res);
393
904
        } else if (c0_string && c1_const) {
394
904
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
395
904
                                               *c1_const_chars, c1_const_size, vec_res);
396
18.4E
        } else if (c0_const && c1_string) {
397
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
398
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
399
0
                                               vec_res);
400
18.4E
        } else {
401
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
402
18.4E
                                        c0->get_name(), c1->get_name(), name);
403
18.4E
        }
404
904
        block.replace_by_position(result, std::move(c_res));
405
904
        return Status::OK();
406
901
    }
407
408
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
409
145
                                         const IColumn* c1) const {
410
145
        bool c0_const = is_column_const(*c0);
411
145
        bool c1_const = is_column_const(*c1);
412
413
145
        DCHECK(!(c0_const && c1_const));
414
415
145
        auto c_res = ColumnUInt8::create();
416
145
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
145
        vec_res.resize(c0->size());
418
419
145
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
145
        } else if (c1_const) {
422
136
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
136
        } else {
424
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
9
        }
426
427
145
        block.replace_by_position(result, std::move(c_res));
428
145
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
17
                                         const IColumn* c1) const {
410
17
        bool c0_const = is_column_const(*c0);
411
17
        bool c1_const = is_column_const(*c1);
412
413
17
        DCHECK(!(c0_const && c1_const));
414
415
17
        auto c_res = ColumnUInt8::create();
416
17
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
17
        vec_res.resize(c0->size());
418
419
17
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
17
        } else if (c1_const) {
422
13
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
13
        } else {
424
4
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
4
        }
426
427
17
        block.replace_by_position(result, std::move(c_res));
428
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
8
                                         const IColumn* c1) const {
410
8
        bool c0_const = is_column_const(*c0);
411
8
        bool c1_const = is_column_const(*c1);
412
413
8
        DCHECK(!(c0_const && c1_const));
414
415
8
        auto c_res = ColumnUInt8::create();
416
8
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
8
        vec_res.resize(c0->size());
418
419
8
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
8
        } else if (c1_const) {
422
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
8
        } else {
424
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
0
        }
426
427
8
        block.replace_by_position(result, std::move(c_res));
428
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
9
                                         const IColumn* c1) const {
410
9
        bool c0_const = is_column_const(*c0);
411
9
        bool c1_const = is_column_const(*c1);
412
413
9
        DCHECK(!(c0_const && c1_const));
414
415
9
        auto c_res = ColumnUInt8::create();
416
9
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
9
        vec_res.resize(c0->size());
418
419
9
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
9
        } else if (c1_const) {
422
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
8
        } else {
424
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
1
        }
426
427
9
        block.replace_by_position(result, std::move(c_res));
428
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
43
                                         const IColumn* c1) const {
410
43
        bool c0_const = is_column_const(*c0);
411
43
        bool c1_const = is_column_const(*c1);
412
413
43
        DCHECK(!(c0_const && c1_const));
414
415
43
        auto c_res = ColumnUInt8::create();
416
43
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
43
        vec_res.resize(c0->size());
418
419
43
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
43
        } else if (c1_const) {
422
42
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
42
        } else {
424
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
1
        }
426
427
43
        block.replace_by_position(result, std::move(c_res));
428
43
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
11
                                         const IColumn* c1) const {
410
11
        bool c0_const = is_column_const(*c0);
411
11
        bool c1_const = is_column_const(*c1);
412
413
11
        DCHECK(!(c0_const && c1_const));
414
415
11
        auto c_res = ColumnUInt8::create();
416
11
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
11
        vec_res.resize(c0->size());
418
419
11
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
11
        } else if (c1_const) {
422
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
8
        } else {
424
3
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
3
        }
426
427
11
        block.replace_by_position(result, std::move(c_res));
428
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
409
57
                                         const IColumn* c1) const {
410
57
        bool c0_const = is_column_const(*c0);
411
57
        bool c1_const = is_column_const(*c1);
412
413
57
        DCHECK(!(c0_const && c1_const));
414
415
57
        auto c_res = ColumnUInt8::create();
416
57
        ColumnUInt8::Container& vec_res = c_res->get_data();
417
57
        vec_res.resize(c0->size());
418
419
57
        if (c0_const) {
420
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
421
57
        } else if (c1_const) {
422
57
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
423
57
        } else {
424
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
425
0
        }
426
427
57
        block.replace_by_position(result, std::move(c_res));
428
57
    }
429
430
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
431
145
                           const ColumnWithTypeAndName& c1) const {
432
145
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
145
        return Status::OK();
434
145
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
17
                           const ColumnWithTypeAndName& c1) const {
432
17
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
17
        return Status::OK();
434
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
8
                           const ColumnWithTypeAndName& c1) const {
432
8
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
8
        return Status::OK();
434
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
9
                           const ColumnWithTypeAndName& c1) const {
432
9
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
9
        return Status::OK();
434
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
43
                           const ColumnWithTypeAndName& c1) const {
432
43
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
43
        return Status::OK();
434
43
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
11
                           const ColumnWithTypeAndName& c1) const {
432
11
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
11
        return Status::OK();
434
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
431
57
                           const ColumnWithTypeAndName& c1) const {
432
57
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
433
57
        return Status::OK();
434
57
    }
435
436
public:
437
221
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
437
63
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
437
37
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
437
39
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
437
80
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
437
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
437
1
    String get_name() const override { return name; }
438
439
462k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
439
420k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
439
1.34k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
439
6.30k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
439
15.4k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
439
3.14k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
439
15.9k
    size_t get_number_of_arguments() const override { return 2; }
440
441
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
442
462k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
462k
        return std::make_shared<DataTypeUInt8>();
444
462k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
420k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
420k
        return std::make_shared<DataTypeUInt8>();
444
420k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
1.34k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
1.34k
        return std::make_shared<DataTypeUInt8>();
444
1.34k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
6.30k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
6.30k
        return std::make_shared<DataTypeUInt8>();
444
6.30k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
15.4k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
15.4k
        return std::make_shared<DataTypeUInt8>();
444
15.4k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
3.14k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
3.14k
        return std::make_shared<DataTypeUInt8>();
444
3.14k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
442
15.9k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
443
15.9k
        return std::make_shared<DataTypeUInt8>();
444
15.9k
    }
445
446
    Status evaluate_inverted_index(
447
            const ColumnsWithTypeAndName& arguments,
448
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
449
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
450
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
451
1.72k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
1.72k
        DCHECK(arguments.size() == 1);
453
1.72k
        DCHECK(data_type_with_names.size() == 1);
454
1.72k
        DCHECK(iterators.size() == 1);
455
1.72k
        auto* iter = iterators[0];
456
1.72k
        auto data_type_with_name = data_type_with_names[0];
457
1.72k
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
1.72k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
428
            return Status::OK();
462
428
        }
463
1.29k
        segment_v2::InvertedIndexQueryType query_type;
464
1.29k
        std::string_view name_view(name);
465
1.29k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
843
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
843
        } else if (name_view == NameLess::name) {
468
111
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
338
        } else if (name_view == NameLessOrEquals::name) {
470
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
240
        } else if (name_view == NameGreater::name) {
472
114
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
135
        } else if (name_view == NameGreaterOrEquals::name) {
474
135
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
18.4E
        } else {
476
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
18.4E
        }
478
479
1.30k
        if (segment_v2::is_range_query(query_type) &&
480
1.30k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
171
            return Status::OK();
483
171
        }
484
1.13k
        Field param_value;
485
1.13k
        arguments[0].column->get(0, param_value);
486
1.13k
        if (param_value.is_null()) {
487
2
            return Status::OK();
488
2
        }
489
1.12k
        auto param_type = arguments[0].type->get_primitive_type();
490
1.12k
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
1.12k
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
1.12k
                param_type, &param_value, query_param));
493
494
1.12k
        segment_v2::InvertedIndexParam param;
495
1.12k
        param.column_name = data_type_with_name.first;
496
1.12k
        param.column_type = data_type_with_name.second;
497
1.12k
        param.query_value = query_param->get_value();
498
1.12k
        param.query_type = query_type;
499
1.12k
        param.num_rows = num_rows;
500
1.12k
        param.roaring = std::make_shared<roaring::Roaring>();
501
1.12k
        param.analyzer_ctx = analyzer_ctx;
502
1.12k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
982
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
982
        if (iter->has_null()) {
505
980
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
980
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
980
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
980
        }
509
982
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
982
        bitmap_result = result;
511
982
        bitmap_result.mask_out_null();
512
513
982
        if (name_view == NameNotEquals::name) {
514
63
            roaring::Roaring full_result;
515
63
            full_result.addRange(0, num_rows);
516
63
            bitmap_result.op_not(&full_result);
517
63
        }
518
519
982
        return Status::OK();
520
982
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
836
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
836
        DCHECK(arguments.size() == 1);
453
836
        DCHECK(data_type_with_names.size() == 1);
454
836
        DCHECK(iterators.size() == 1);
455
836
        auto* iter = iterators[0];
456
836
        auto data_type_with_name = data_type_with_names[0];
457
836
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
836
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
70
            return Status::OK();
462
70
        }
463
766
        segment_v2::InvertedIndexQueryType query_type;
464
766
        std::string_view name_view(name);
465
773
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
773
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
18.4E
        } else if (name_view == NameLess::name) {
468
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
18.4E
        } else if (name_view == NameLessOrEquals::name) {
470
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
18.4E
        } else if (name_view == NameGreater::name) {
472
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
474
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
18.4E
        } else {
476
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
18.4E
        }
478
479
773
        if (segment_v2::is_range_query(query_type) &&
480
773
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
0
            return Status::OK();
483
0
        }
484
773
        Field param_value;
485
773
        arguments[0].column->get(0, param_value);
486
773
        if (param_value.is_null()) {
487
2
            return Status::OK();
488
2
        }
489
771
        auto param_type = arguments[0].type->get_primitive_type();
490
771
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
771
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
771
                param_type, &param_value, query_param));
493
494
771
        segment_v2::InvertedIndexParam param;
495
771
        param.column_name = data_type_with_name.first;
496
771
        param.column_type = data_type_with_name.second;
497
771
        param.query_value = query_param->get_value();
498
771
        param.query_type = query_type;
499
771
        param.num_rows = num_rows;
500
771
        param.roaring = std::make_shared<roaring::Roaring>();
501
771
        param.analyzer_ctx = analyzer_ctx;
502
771
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
731
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
731
        if (iter->has_null()) {
505
731
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
731
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
731
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
731
        }
509
731
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
731
        bitmap_result = result;
511
731
        bitmap_result.mask_out_null();
512
513
731
        if (name_view == NameNotEquals::name) {
514
0
            roaring::Roaring full_result;
515
0
            full_result.addRange(0, num_rows);
516
0
            bitmap_result.op_not(&full_result);
517
0
        }
518
519
731
        return Status::OK();
520
731
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
77
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
77
        DCHECK(arguments.size() == 1);
453
77
        DCHECK(data_type_with_names.size() == 1);
454
77
        DCHECK(iterators.size() == 1);
455
77
        auto* iter = iterators[0];
456
77
        auto data_type_with_name = data_type_with_names[0];
457
77
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
77
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
8
            return Status::OK();
462
8
        }
463
69
        segment_v2::InvertedIndexQueryType query_type;
464
69
        std::string_view name_view(name);
465
70
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
70
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
18.4E
        } else if (name_view == NameLess::name) {
468
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
18.4E
        } else if (name_view == NameLessOrEquals::name) {
470
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
18.4E
        } else if (name_view == NameGreater::name) {
472
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
474
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
18.4E
        } else {
476
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
18.4E
        }
478
479
70
        if (segment_v2::is_range_query(query_type) &&
480
70
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
0
            return Status::OK();
483
0
        }
484
70
        Field param_value;
485
70
        arguments[0].column->get(0, param_value);
486
70
        if (param_value.is_null()) {
487
0
            return Status::OK();
488
0
        }
489
70
        auto param_type = arguments[0].type->get_primitive_type();
490
70
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
70
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
70
                param_type, &param_value, query_param));
493
494
70
        segment_v2::InvertedIndexParam param;
495
70
        param.column_name = data_type_with_name.first;
496
70
        param.column_type = data_type_with_name.second;
497
70
        param.query_value = query_param->get_value();
498
70
        param.query_type = query_type;
499
70
        param.num_rows = num_rows;
500
70
        param.roaring = std::make_shared<roaring::Roaring>();
501
70
        param.analyzer_ctx = analyzer_ctx;
502
70
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
63
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
63
        if (iter->has_null()) {
505
63
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
63
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
63
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
63
        }
509
63
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
63
        bitmap_result = result;
511
63
        bitmap_result.mask_out_null();
512
513
63
        if (name_view == NameNotEquals::name) {
514
63
            roaring::Roaring full_result;
515
63
            full_result.addRange(0, num_rows);
516
63
            bitmap_result.op_not(&full_result);
517
63
        }
518
519
63
        return Status::OK();
520
63
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
176
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
176
        DCHECK(arguments.size() == 1);
453
176
        DCHECK(data_type_with_names.size() == 1);
454
176
        DCHECK(iterators.size() == 1);
455
176
        auto* iter = iterators[0];
456
176
        auto data_type_with_name = data_type_with_names[0];
457
176
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
176
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
62
            return Status::OK();
462
62
        }
463
114
        segment_v2::InvertedIndexQueryType query_type;
464
114
        std::string_view name_view(name);
465
114
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
114
        } else if (name_view == NameLess::name) {
468
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
114
        } else if (name_view == NameLessOrEquals::name) {
470
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
114
        } else if (name_view == NameGreater::name) {
472
114
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
114
        } else if (name_view == NameGreaterOrEquals::name) {
474
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
0
        } else {
476
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
0
        }
478
479
114
        if (segment_v2::is_range_query(query_type) &&
480
114
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
28
            return Status::OK();
483
28
        }
484
86
        Field param_value;
485
86
        arguments[0].column->get(0, param_value);
486
86
        if (param_value.is_null()) {
487
0
            return Status::OK();
488
0
        }
489
86
        auto param_type = arguments[0].type->get_primitive_type();
490
86
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
86
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
86
                param_type, &param_value, query_param));
493
494
86
        segment_v2::InvertedIndexParam param;
495
86
        param.column_name = data_type_with_name.first;
496
86
        param.column_type = data_type_with_name.second;
497
86
        param.query_value = query_param->get_value();
498
86
        param.query_type = query_type;
499
86
        param.num_rows = num_rows;
500
86
        param.roaring = std::make_shared<roaring::Roaring>();
501
86
        param.analyzer_ctx = analyzer_ctx;
502
86
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
67
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
67
        if (iter->has_null()) {
505
67
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
67
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
67
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
67
        }
509
67
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
67
        bitmap_result = result;
511
67
        bitmap_result.mask_out_null();
512
513
67
        if (name_view == NameNotEquals::name) {
514
0
            roaring::Roaring full_result;
515
0
            full_result.addRange(0, num_rows);
516
0
            bitmap_result.op_not(&full_result);
517
0
        }
518
519
67
        return Status::OK();
520
67
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
248
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
248
        DCHECK(arguments.size() == 1);
453
248
        DCHECK(data_type_with_names.size() == 1);
454
248
        DCHECK(iterators.size() == 1);
455
248
        auto* iter = iterators[0];
456
248
        auto data_type_with_name = data_type_with_names[0];
457
248
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
248
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
114
            return Status::OK();
462
114
        }
463
134
        segment_v2::InvertedIndexQueryType query_type;
464
134
        std::string_view name_view(name);
465
135
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
134
        } else if (name_view == NameLess::name) {
468
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
134
        } else if (name_view == NameLessOrEquals::name) {
470
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
134
        } else if (name_view == NameGreater::name) {
472
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
135
        } else if (name_view == NameGreaterOrEquals::name) {
474
135
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
18.4E
        } else {
476
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
18.4E
        }
478
479
135
        if (segment_v2::is_range_query(query_type) &&
480
135
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
59
            return Status::OK();
483
59
        }
484
76
        Field param_value;
485
76
        arguments[0].column->get(0, param_value);
486
76
        if (param_value.is_null()) {
487
0
            return Status::OK();
488
0
        }
489
76
        auto param_type = arguments[0].type->get_primitive_type();
490
76
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
76
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
76
                param_type, &param_value, query_param));
493
494
76
        segment_v2::InvertedIndexParam param;
495
76
        param.column_name = data_type_with_name.first;
496
76
        param.column_type = data_type_with_name.second;
497
76
        param.query_value = query_param->get_value();
498
76
        param.query_type = query_type;
499
76
        param.num_rows = num_rows;
500
76
        param.roaring = std::make_shared<roaring::Roaring>();
501
76
        param.analyzer_ctx = analyzer_ctx;
502
76
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
36
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
36
        if (iter->has_null()) {
505
34
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
34
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
34
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
34
        }
509
36
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
36
        bitmap_result = result;
511
36
        bitmap_result.mask_out_null();
512
513
36
        if (name_view == NameNotEquals::name) {
514
0
            roaring::Roaring full_result;
515
0
            full_result.addRange(0, num_rows);
516
0
            bitmap_result.op_not(&full_result);
517
0
        }
518
519
36
        return Status::OK();
520
36
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
172
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
172
        DCHECK(arguments.size() == 1);
453
172
        DCHECK(data_type_with_names.size() == 1);
454
172
        DCHECK(iterators.size() == 1);
455
172
        auto* iter = iterators[0];
456
172
        auto data_type_with_name = data_type_with_names[0];
457
172
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
172
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
61
            return Status::OK();
462
61
        }
463
111
        segment_v2::InvertedIndexQueryType query_type;
464
111
        std::string_view name_view(name);
465
111
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
111
        } else if (name_view == NameLess::name) {
468
111
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
111
        } else if (name_view == NameLessOrEquals::name) {
470
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
0
        } else if (name_view == NameGreater::name) {
472
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
0
        } else if (name_view == NameGreaterOrEquals::name) {
474
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
0
        } else {
476
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
0
        }
478
479
111
        if (segment_v2::is_range_query(query_type) &&
480
111
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
26
            return Status::OK();
483
26
        }
484
85
        Field param_value;
485
85
        arguments[0].column->get(0, param_value);
486
85
        if (param_value.is_null()) {
487
0
            return Status::OK();
488
0
        }
489
85
        auto param_type = arguments[0].type->get_primitive_type();
490
85
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
85
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
85
                param_type, &param_value, query_param));
493
494
85
        segment_v2::InvertedIndexParam param;
495
85
        param.column_name = data_type_with_name.first;
496
85
        param.column_type = data_type_with_name.second;
497
85
        param.query_value = query_param->get_value();
498
85
        param.query_type = query_type;
499
85
        param.num_rows = num_rows;
500
85
        param.roaring = std::make_shared<roaring::Roaring>();
501
85
        param.analyzer_ctx = analyzer_ctx;
502
85
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
66
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
67
        if (iter->has_null()) {
505
67
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
67
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
67
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
67
        }
509
66
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
66
        bitmap_result = result;
511
66
        bitmap_result.mask_out_null();
512
513
66
        if (name_view == NameNotEquals::name) {
514
0
            roaring::Roaring full_result;
515
0
            full_result.addRange(0, num_rows);
516
0
            bitmap_result.op_not(&full_result);
517
0
        }
518
519
66
        return Status::OK();
520
66
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
451
211
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
452
211
        DCHECK(arguments.size() == 1);
453
211
        DCHECK(data_type_with_names.size() == 1);
454
211
        DCHECK(iterators.size() == 1);
455
211
        auto* iter = iterators[0];
456
211
        auto data_type_with_name = data_type_with_names[0];
457
211
        if (iter == nullptr) {
458
0
            return Status::OK();
459
0
        }
460
211
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
461
113
            return Status::OK();
462
113
        }
463
98
        segment_v2::InvertedIndexQueryType query_type;
464
98
        std::string_view name_view(name);
465
98
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
466
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
467
98
        } else if (name_view == NameLess::name) {
468
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
469
98
        } else if (name_view == NameLessOrEquals::name) {
470
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
471
98
        } else if (name_view == NameGreater::name) {
472
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
473
0
        } else if (name_view == NameGreaterOrEquals::name) {
474
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
475
0
        } else {
476
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
477
0
        }
478
479
98
        if (segment_v2::is_range_query(query_type) &&
480
98
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
481
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
482
58
            return Status::OK();
483
58
        }
484
40
        Field param_value;
485
40
        arguments[0].column->get(0, param_value);
486
40
        if (param_value.is_null()) {
487
0
            return Status::OK();
488
0
        }
489
40
        auto param_type = arguments[0].type->get_primitive_type();
490
40
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
491
40
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
492
40
                param_type, &param_value, query_param));
493
494
40
        segment_v2::InvertedIndexParam param;
495
40
        param.column_name = data_type_with_name.first;
496
40
        param.column_type = data_type_with_name.second;
497
40
        param.query_value = query_param->get_value();
498
40
        param.query_type = query_type;
499
40
        param.num_rows = num_rows;
500
40
        param.roaring = std::make_shared<roaring::Roaring>();
501
40
        param.analyzer_ctx = analyzer_ctx;
502
40
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
503
19
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
504
19
        if (iter->has_null()) {
505
18
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
506
18
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
507
18
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
508
18
        }
509
19
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
510
19
        bitmap_result = result;
511
19
        bitmap_result.mask_out_null();
512
513
19
        if (name_view == NameNotEquals::name) {
514
0
            roaring::Roaring full_result;
515
0
            full_result.addRange(0, num_rows);
516
0
            bitmap_result.op_not(&full_result);
517
0
        }
518
519
19
        return Status::OK();
520
19
    }
521
522
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
523
141k
                        uint32_t result, size_t input_rows_count) const override {
524
141k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
141k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
141k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
141k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
141k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
141k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
141k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
141k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
141k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
141k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
0
                block.get_by_position(result).column =
546
0
                        DataTypeUInt8()
547
0
                                .create_column_const(input_rows_count,
548
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
0
                                ->convert_to_full_column_if_const();
550
0
                return Status::OK();
551
0
            } else {
552
0
                block.get_by_position(result).column =
553
0
                        DataTypeUInt8()
554
0
                                .create_column_const(input_rows_count,
555
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
0
                                ->convert_to_full_column_if_const();
557
0
                return Status::OK();
558
0
            }
559
0
        }
560
561
248k
        auto can_compare = [](PrimitiveType t) -> bool {
562
248k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
248k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
75.9k
        auto can_compare = [](PrimitiveType t) -> bool {
562
75.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
75.9k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
8.63k
        auto can_compare = [](PrimitiveType t) -> bool {
562
8.63k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
8.63k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
59.2k
        auto can_compare = [](PrimitiveType t) -> bool {
562
59.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
59.2k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
33.5k
        auto can_compare = [](PrimitiveType t) -> bool {
562
33.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
33.5k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
17.9k
        auto can_compare = [](PrimitiveType t) -> bool {
562
17.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
17.9k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
561
53.1k
        auto can_compare = [](PrimitiveType t) -> bool {
562
53.1k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
53.1k
        };
564
565
141k
        if (can_compare(left_type->get_primitive_type()) &&
566
141k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
107k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
107k
        }
574
575
141k
        auto compare_type = left_type->get_primitive_type();
576
141k
        switch (compare_type) {
577
2.05k
        case TYPE_BOOLEAN:
578
2.05k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
16.6k
        case TYPE_DATEV2:
580
16.6k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
2.40k
        case TYPE_DATETIMEV2:
582
2.40k
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
16
        case TYPE_TIMESTAMPTZ:
584
16
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
5.72k
        case TYPE_TINYINT:
586
5.72k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
2.01k
        case TYPE_SMALLINT:
588
2.01k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
45.3k
        case TYPE_INT:
590
45.3k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
28.2k
        case TYPE_BIGINT:
592
28.2k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
632
        case TYPE_LARGEINT:
594
632
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
72
        case TYPE_IPV4:
596
72
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
48
        case TYPE_IPV6:
598
48
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
857
        case TYPE_FLOAT:
600
857
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
3.48k
        case TYPE_DOUBLE:
602
3.48k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
4
        case TYPE_TIMEV2:
604
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
452
        case TYPE_DECIMAL32:
607
4.27k
        case TYPE_DECIMAL64:
608
8.74k
        case TYPE_DECIMAL128I:
609
8.86k
        case TYPE_DECIMAL256:
610
8.86k
            return execute_decimal(block, result, col_with_type_and_name_left,
611
8.86k
                                   col_with_type_and_name_right);
612
1.72k
        case TYPE_CHAR:
613
10.3k
        case TYPE_VARCHAR:
614
24.5k
        case TYPE_STRING:
615
24.5k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
145
        default:
617
145
            return execute_generic(block, result, col_with_type_and_name_left,
618
145
                                   col_with_type_and_name_right);
619
141k
        }
620
0
        return Status::OK();
621
141k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
49.2k
                        uint32_t result, size_t input_rows_count) const override {
524
49.2k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
49.2k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
49.2k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
49.2k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
49.2k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
49.2k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
49.2k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
49.2k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
49.2k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
49.2k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
0
                block.get_by_position(result).column =
546
0
                        DataTypeUInt8()
547
0
                                .create_column_const(input_rows_count,
548
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
0
                                ->convert_to_full_column_if_const();
550
0
                return Status::OK();
551
            } else {
552
                block.get_by_position(result).column =
553
                        DataTypeUInt8()
554
                                .create_column_const(input_rows_count,
555
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
                                ->convert_to_full_column_if_const();
557
                return Status::OK();
558
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
49.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
49.2k
        };
564
565
49.2k
        if (can_compare(left_type->get_primitive_type()) &&
566
49.2k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
26.7k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
26.7k
        }
574
575
49.2k
        auto compare_type = left_type->get_primitive_type();
576
49.2k
        switch (compare_type) {
577
1.61k
        case TYPE_BOOLEAN:
578
1.61k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
1.21k
        case TYPE_DATEV2:
580
1.21k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
680
        case TYPE_DATETIMEV2:
582
680
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
3
        case TYPE_TIMESTAMPTZ:
584
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
3.98k
        case TYPE_TINYINT:
586
3.98k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
613
        case TYPE_SMALLINT:
588
613
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
7.26k
        case TYPE_INT:
590
7.26k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
10.6k
        case TYPE_BIGINT:
592
10.6k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
134
        case TYPE_LARGEINT:
594
134
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
33
        case TYPE_IPV4:
596
33
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
30
        case TYPE_IPV6:
598
30
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
108
        case TYPE_FLOAT:
600
108
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
348
        case TYPE_DOUBLE:
602
348
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
4
        case TYPE_TIMEV2:
604
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
223
        case TYPE_DECIMAL32:
607
473
        case TYPE_DECIMAL64:
608
1.67k
        case TYPE_DECIMAL128I:
609
1.70k
        case TYPE_DECIMAL256:
610
1.70k
            return execute_decimal(block, result, col_with_type_and_name_left,
611
1.70k
                                   col_with_type_and_name_right);
612
1.41k
        case TYPE_CHAR:
613
8.96k
        case TYPE_VARCHAR:
614
20.7k
        case TYPE_STRING:
615
20.7k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
17
        default:
617
17
            return execute_generic(block, result, col_with_type_and_name_left,
618
17
                                   col_with_type_and_name_right);
619
49.2k
        }
620
0
        return Status::OK();
621
49.2k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
5.17k
                        uint32_t result, size_t input_rows_count) const override {
524
5.17k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
5.17k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
5.17k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
5.17k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
5.17k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
5.17k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
5.17k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
5.17k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
5.17k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
5.17k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
                block.get_by_position(result).column =
546
                        DataTypeUInt8()
547
                                .create_column_const(input_rows_count,
548
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
                                ->convert_to_full_column_if_const();
550
                return Status::OK();
551
0
            } else {
552
0
                block.get_by_position(result).column =
553
0
                        DataTypeUInt8()
554
0
                                .create_column_const(input_rows_count,
555
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
0
                                ->convert_to_full_column_if_const();
557
0
                return Status::OK();
558
0
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
5.17k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
5.17k
        };
564
565
5.17k
        if (can_compare(left_type->get_primitive_type()) &&
566
5.17k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
3.46k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
3.46k
        }
574
575
5.17k
        auto compare_type = left_type->get_primitive_type();
576
5.17k
        switch (compare_type) {
577
0
        case TYPE_BOOLEAN:
578
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
53
        case TYPE_DATEV2:
580
53
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
2
        case TYPE_DATETIMEV2:
582
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
0
        case TYPE_TIMESTAMPTZ:
584
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
92
        case TYPE_TINYINT:
586
92
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
4
        case TYPE_SMALLINT:
588
4
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
1.69k
        case TYPE_INT:
590
1.69k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
1.50k
        case TYPE_BIGINT:
592
1.50k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
0
        case TYPE_LARGEINT:
594
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
0
        case TYPE_IPV4:
596
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
0
        case TYPE_IPV6:
598
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
48
        case TYPE_FLOAT:
600
48
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
60
        case TYPE_DOUBLE:
602
60
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
0
        case TYPE_DECIMAL32:
607
61
        case TYPE_DECIMAL64:
608
385
        case TYPE_DECIMAL128I:
609
415
        case TYPE_DECIMAL256:
610
415
            return execute_decimal(block, result, col_with_type_and_name_left,
611
415
                                   col_with_type_and_name_right);
612
9
        case TYPE_CHAR:
613
257
        case TYPE_VARCHAR:
614
1.29k
        case TYPE_STRING:
615
1.29k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
8
        default:
617
8
            return execute_generic(block, result, col_with_type_and_name_left,
618
8
                                   col_with_type_and_name_right);
619
5.17k
        }
620
0
        return Status::OK();
621
5.17k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
31.3k
                        uint32_t result, size_t input_rows_count) const override {
524
31.3k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
31.3k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
31.3k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
31.3k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
31.3k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
31.3k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
31.3k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
31.3k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
31.3k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
31.3k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
                block.get_by_position(result).column =
546
                        DataTypeUInt8()
547
                                .create_column_const(input_rows_count,
548
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
                                ->convert_to_full_column_if_const();
550
                return Status::OK();
551
0
            } else {
552
0
                block.get_by_position(result).column =
553
0
                        DataTypeUInt8()
554
0
                                .create_column_const(input_rows_count,
555
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
0
                                ->convert_to_full_column_if_const();
557
0
                return Status::OK();
558
0
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
31.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
31.3k
        };
564
565
31.3k
        if (can_compare(left_type->get_primitive_type()) &&
566
31.3k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
27.9k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
27.9k
        }
574
575
31.3k
        auto compare_type = left_type->get_primitive_type();
576
31.3k
        switch (compare_type) {
577
0
        case TYPE_BOOLEAN:
578
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
1.15k
        case TYPE_DATEV2:
580
1.15k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
92
        case TYPE_DATETIMEV2:
582
92
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
3
        case TYPE_TIMESTAMPTZ:
584
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
750
        case TYPE_TINYINT:
586
750
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
1.00k
        case TYPE_SMALLINT:
588
1.00k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
8.87k
        case TYPE_INT:
590
8.87k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
13.2k
        case TYPE_BIGINT:
592
13.2k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
224
        case TYPE_LARGEINT:
594
224
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
2
        case TYPE_IPV4:
596
2
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
1
        case TYPE_IPV6:
598
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
228
        case TYPE_FLOAT:
600
228
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
2.45k
        case TYPE_DOUBLE:
602
2.45k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
28
        case TYPE_DECIMAL32:
607
1.36k
        case TYPE_DECIMAL64:
608
3.08k
        case TYPE_DECIMAL128I:
609
3.08k
        case TYPE_DECIMAL256:
610
3.08k
            return execute_decimal(block, result, col_with_type_and_name_left,
611
3.08k
                                   col_with_type_and_name_right);
612
21
        case TYPE_CHAR:
613
83
        case TYPE_VARCHAR:
614
212
        case TYPE_STRING:
615
212
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
9
        default:
617
9
            return execute_generic(block, result, col_with_type_and_name_left,
618
9
                                   col_with_type_and_name_right);
619
31.3k
        }
620
0
        return Status::OK();
621
31.3k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
17.3k
                        uint32_t result, size_t input_rows_count) const override {
524
17.3k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
17.3k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
17.3k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
17.3k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
17.3k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
17.3k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
17.3k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
17.3k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
17.3k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
17.3k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
0
                block.get_by_position(result).column =
546
0
                        DataTypeUInt8()
547
0
                                .create_column_const(input_rows_count,
548
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
0
                                ->convert_to_full_column_if_const();
550
0
                return Status::OK();
551
            } else {
552
                block.get_by_position(result).column =
553
                        DataTypeUInt8()
554
                                .create_column_const(input_rows_count,
555
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
                                ->convert_to_full_column_if_const();
557
                return Status::OK();
558
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
17.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
17.3k
        };
564
565
17.3k
        if (can_compare(left_type->get_primitive_type()) &&
566
17.3k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
16.2k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
16.2k
        }
574
575
17.3k
        auto compare_type = left_type->get_primitive_type();
576
17.3k
        switch (compare_type) {
577
178
        case TYPE_BOOLEAN:
578
178
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
1.55k
        case TYPE_DATEV2:
580
1.55k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
711
        case TYPE_DATETIMEV2:
582
711
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
3
        case TYPE_TIMESTAMPTZ:
584
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
37
        case TYPE_TINYINT:
586
37
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
64
        case TYPE_SMALLINT:
588
64
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
12.7k
        case TYPE_INT:
590
12.7k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
505
        case TYPE_BIGINT:
592
505
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
56
        case TYPE_LARGEINT:
594
56
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
11
        case TYPE_IPV4:
596
11
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
1
        case TYPE_IPV6:
598
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
166
        case TYPE_FLOAT:
600
166
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
167
        case TYPE_DOUBLE:
602
167
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
8
        case TYPE_DECIMAL32:
607
338
        case TYPE_DECIMAL64:
608
374
        case TYPE_DECIMAL128I:
609
401
        case TYPE_DECIMAL256:
610
401
            return execute_decimal(block, result, col_with_type_and_name_left,
611
401
                                   col_with_type_and_name_right);
612
38
        case TYPE_CHAR:
613
266
        case TYPE_VARCHAR:
614
724
        case TYPE_STRING:
615
724
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
43
        default:
617
43
            return execute_generic(block, result, col_with_type_and_name_left,
618
43
                                   col_with_type_and_name_right);
619
17.3k
        }
620
0
        return Status::OK();
621
17.3k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
9.68k
                        uint32_t result, size_t input_rows_count) const override {
524
9.68k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
9.68k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
9.68k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
9.68k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
9.68k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
9.68k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
9.68k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
9.68k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
9.68k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
9.68k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
                block.get_by_position(result).column =
546
                        DataTypeUInt8()
547
                                .create_column_const(input_rows_count,
548
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
                                ->convert_to_full_column_if_const();
550
                return Status::OK();
551
0
            } else {
552
0
                block.get_by_position(result).column =
553
0
                        DataTypeUInt8()
554
0
                                .create_column_const(input_rows_count,
555
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
0
                                ->convert_to_full_column_if_const();
557
0
                return Status::OK();
558
0
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
9.68k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
9.68k
        };
564
565
9.68k
        if (can_compare(left_type->get_primitive_type()) &&
566
9.68k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
8.22k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
8.22k
        }
574
575
9.68k
        auto compare_type = left_type->get_primitive_type();
576
9.68k
        switch (compare_type) {
577
81
        case TYPE_BOOLEAN:
578
81
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
2.24k
        case TYPE_DATEV2:
580
2.24k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
543
        case TYPE_DATETIMEV2:
582
543
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
4
        case TYPE_TIMESTAMPTZ:
584
4
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
812
        case TYPE_TINYINT:
586
812
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
240
        case TYPE_SMALLINT:
588
240
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
2.00k
        case TYPE_INT:
590
2.00k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
1.63k
        case TYPE_BIGINT:
592
1.63k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
166
        case TYPE_LARGEINT:
594
166
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
16
        case TYPE_IPV4:
596
16
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
16
        case TYPE_IPV6:
598
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
144
        case TYPE_FLOAT:
600
144
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
315
        case TYPE_DOUBLE:
602
315
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
186
        case TYPE_DECIMAL32:
607
404
        case TYPE_DECIMAL64:
608
847
        case TYPE_DECIMAL128I:
609
848
        case TYPE_DECIMAL256:
610
848
            return execute_decimal(block, result, col_with_type_and_name_left,
611
848
                                   col_with_type_and_name_right);
612
156
        case TYPE_CHAR:
613
305
        case TYPE_VARCHAR:
614
600
        case TYPE_STRING:
615
600
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
11
        default:
617
11
            return execute_generic(block, result, col_with_type_and_name_left,
618
11
                                   col_with_type_and_name_right);
619
9.68k
        }
620
0
        return Status::OK();
621
9.68k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
523
28.2k
                        uint32_t result, size_t input_rows_count) const override {
524
28.2k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
525
28.2k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
526
527
28.2k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
528
28.2k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
529
28.2k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
530
28.2k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
531
532
28.2k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
533
28.2k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
534
535
        /// The case when arguments are the same (tautological comparison). Return constant.
536
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
537
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
538
28.2k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
539
28.2k
            col_left_untyped == col_right_untyped) {
540
            /// Always true: =, <=, >=
541
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
542
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
543
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
544
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
545
0
                block.get_by_position(result).column =
546
0
                        DataTypeUInt8()
547
0
                                .create_column_const(input_rows_count,
548
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
549
0
                                ->convert_to_full_column_if_const();
550
0
                return Status::OK();
551
            } else {
552
                block.get_by_position(result).column =
553
                        DataTypeUInt8()
554
                                .create_column_const(input_rows_count,
555
                                                     Field::create_field<TYPE_BOOLEAN>(0))
556
                                ->convert_to_full_column_if_const();
557
                return Status::OK();
558
            }
559
0
        }
560
561
0
        auto can_compare = [](PrimitiveType t) -> bool {
562
28.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
563
28.2k
        };
564
565
28.2k
        if (can_compare(left_type->get_primitive_type()) &&
566
28.2k
            can_compare(right_type->get_primitive_type())) {
567
            // check left type equals right type TODO: remove this after FE is aware of scales difference
568
24.9k
            if (!left_type->equals_ignore_precision(*right_type)) {
569
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
570
0
                                            get_name(), left_type->get_name(),
571
0
                                            right_type->get_name());
572
0
            }
573
24.9k
        }
574
575
28.2k
        auto compare_type = left_type->get_primitive_type();
576
28.2k
        switch (compare_type) {
577
178
        case TYPE_BOOLEAN:
578
178
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
579
10.4k
        case TYPE_DATEV2:
580
10.4k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
581
372
        case TYPE_DATETIMEV2:
582
372
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
583
3
        case TYPE_TIMESTAMPTZ:
584
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
585
48
        case TYPE_TINYINT:
586
48
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
587
90
        case TYPE_SMALLINT:
588
90
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
589
12.7k
        case TYPE_INT:
590
12.7k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
591
639
        case TYPE_BIGINT:
592
639
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
593
52
        case TYPE_LARGEINT:
594
52
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
595
10
        case TYPE_IPV4:
596
10
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
597
0
        case TYPE_IPV6:
598
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
599
163
        case TYPE_FLOAT:
600
163
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
601
139
        case TYPE_DOUBLE:
602
139
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
603
0
        case TYPE_TIMEV2:
604
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
605
0
        case TYPE_DECIMALV2:
606
7
        case TYPE_DECIMAL32:
607
1.63k
        case TYPE_DECIMAL64:
608
2.38k
        case TYPE_DECIMAL128I:
609
2.40k
        case TYPE_DECIMAL256:
610
2.40k
            return execute_decimal(block, result, col_with_type_and_name_left,
611
2.40k
                                   col_with_type_and_name_right);
612
85
        case TYPE_CHAR:
613
439
        case TYPE_VARCHAR:
614
904
        case TYPE_STRING:
615
904
            return execute_string(block, result, col_left_untyped, col_right_untyped);
616
57
        default:
617
57
            return execute_generic(block, result, col_with_type_and_name_left,
618
57
                                   col_with_type_and_name_right);
619
28.2k
        }
620
0
        return Status::OK();
621
28.2k
    }
622
};
623
624
} // namespace doris