Coverage Report

Created: 2026-05-22 06:40

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/field.h"
38
#include "core/memcmp_small.h"
39
#include "core/value/vdatetime_value.h"
40
#include "exprs/function/function.h"
41
#include "exprs/function/function_helpers.h"
42
#include "exprs/function/functions_logical.h"
43
#include "storage/index/index_reader_helper.h"
44
45
namespace doris {
46
47
/** Comparison functions: ==, !=, <, >, <=, >=.
48
  * The comparison functions always return 0 or 1 (UInt8).
49
  *
50
  * You can compare the following types:
51
  * - numbers and decimals;
52
  * - strings and fixed strings;
53
  * - dates;
54
  * - datetimes;
55
  *   within each group, but not from different groups;
56
  * - tuples (lexicographic comparison).
57
  *
58
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
59
  */
60
61
template <typename A, typename B, typename Op>
62
struct NumComparisonImpl {
63
    /// 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.
64
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
65
7.94k
                                        PaddedPODArray<UInt8>& c) {
66
7.94k
        size_t size = a.size();
67
7.94k
        const A* __restrict a_pos = a.data();
68
7.94k
        const B* __restrict b_pos = b.data();
69
7.94k
        UInt8* __restrict c_pos = c.data();
70
7.94k
        const A* __restrict a_end = a_pos + size;
71
72
4.76M
        while (a_pos < a_end) {
73
4.75M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.75M
            ++a_pos;
75
4.75M
            ++b_pos;
76
4.75M
            ++c_pos;
77
4.75M
        }
78
7.94k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
76
                                        PaddedPODArray<UInt8>& c) {
66
76
        size_t size = a.size();
67
76
        const A* __restrict a_pos = a.data();
68
76
        const B* __restrict b_pos = b.data();
69
76
        UInt8* __restrict c_pos = c.data();
70
76
        const A* __restrict a_end = a_pos + size;
71
72
152
        while (a_pos < a_end) {
73
76
            *c_pos = Op::apply(*a_pos, *b_pos);
74
76
            ++a_pos;
75
76
            ++b_pos;
76
76
            ++c_pos;
77
76
        }
78
76
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
229
                                        PaddedPODArray<UInt8>& c) {
66
229
        size_t size = a.size();
67
229
        const A* __restrict a_pos = a.data();
68
229
        const B* __restrict b_pos = b.data();
69
229
        UInt8* __restrict c_pos = c.data();
70
229
        const A* __restrict a_end = a_pos + size;
71
72
464
        while (a_pos < a_end) {
73
235
            *c_pos = Op::apply(*a_pos, *b_pos);
74
235
            ++a_pos;
75
235
            ++b_pos;
76
235
            ++c_pos;
77
235
        }
78
229
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
274
                                        PaddedPODArray<UInt8>& c) {
66
274
        size_t size = a.size();
67
274
        const A* __restrict a_pos = a.data();
68
274
        const B* __restrict b_pos = b.data();
69
274
        UInt8* __restrict c_pos = c.data();
70
274
        const A* __restrict a_end = a_pos + size;
71
72
566
        while (a_pos < a_end) {
73
292
            *c_pos = Op::apply(*a_pos, *b_pos);
74
292
            ++a_pos;
75
292
            ++b_pos;
76
292
            ++c_pos;
77
292
        }
78
274
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
13
        while (a_pos < a_end) {
73
10
            *c_pos = Op::apply(*a_pos, *b_pos);
74
10
            ++a_pos;
75
10
            ++b_pos;
76
10
            ++c_pos;
77
10
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
163
                                        PaddedPODArray<UInt8>& c) {
66
163
        size_t size = a.size();
67
163
        const A* __restrict a_pos = a.data();
68
163
        const B* __restrict b_pos = b.data();
69
163
        UInt8* __restrict c_pos = c.data();
70
163
        const A* __restrict a_end = a_pos + size;
71
72
468
        while (a_pos < a_end) {
73
305
            *c_pos = Op::apply(*a_pos, *b_pos);
74
305
            ++a_pos;
75
305
            ++b_pos;
76
305
            ++c_pos;
77
305
        }
78
163
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
84
                                        PaddedPODArray<UInt8>& c) {
66
84
        size_t size = a.size();
67
84
        const A* __restrict a_pos = a.data();
68
84
        const B* __restrict b_pos = b.data();
69
84
        UInt8* __restrict c_pos = c.data();
70
84
        const A* __restrict a_end = a_pos + size;
71
72
168
        while (a_pos < a_end) {
73
84
            *c_pos = Op::apply(*a_pos, *b_pos);
74
84
            ++a_pos;
75
84
            ++b_pos;
76
84
            ++c_pos;
77
84
        }
78
84
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
340
                                        PaddedPODArray<UInt8>& c) {
66
340
        size_t size = a.size();
67
340
        const A* __restrict a_pos = a.data();
68
340
        const B* __restrict b_pos = b.data();
69
340
        UInt8* __restrict c_pos = c.data();
70
340
        const A* __restrict a_end = a_pos + size;
71
72
2.09k
        while (a_pos < a_end) {
73
1.75k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.75k
            ++a_pos;
75
1.75k
            ++b_pos;
76
1.75k
            ++c_pos;
77
1.75k
        }
78
340
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
266
                                        PaddedPODArray<UInt8>& c) {
66
266
        size_t size = a.size();
67
266
        const A* __restrict a_pos = a.data();
68
266
        const B* __restrict b_pos = b.data();
69
266
        UInt8* __restrict c_pos = c.data();
70
266
        const A* __restrict a_end = a_pos + size;
71
72
1.66k
        while (a_pos < a_end) {
73
1.40k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.40k
            ++a_pos;
75
1.40k
            ++b_pos;
76
1.40k
            ++c_pos;
77
1.40k
        }
78
266
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
84
                                        PaddedPODArray<UInt8>& c) {
66
84
        size_t size = a.size();
67
84
        const A* __restrict a_pos = a.data();
68
84
        const B* __restrict b_pos = b.data();
69
84
        UInt8* __restrict c_pos = c.data();
70
84
        const A* __restrict a_end = a_pos + size;
71
72
168
        while (a_pos < a_end) {
73
84
            *c_pos = Op::apply(*a_pos, *b_pos);
74
84
            ++a_pos;
75
84
            ++b_pos;
76
84
            ++c_pos;
77
84
        }
78
84
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
24
                                        PaddedPODArray<UInt8>& c) {
66
24
        size_t size = a.size();
67
24
        const A* __restrict a_pos = a.data();
68
24
        const B* __restrict b_pos = b.data();
69
24
        UInt8* __restrict c_pos = c.data();
70
24
        const A* __restrict a_end = a_pos + size;
71
72
48
        while (a_pos < a_end) {
73
24
            *c_pos = Op::apply(*a_pos, *b_pos);
74
24
            ++a_pos;
75
24
            ++b_pos;
76
24
            ++c_pos;
77
24
        }
78
24
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
104
                                        PaddedPODArray<UInt8>& c) {
66
104
        size_t size = a.size();
67
104
        const A* __restrict a_pos = a.data();
68
104
        const B* __restrict b_pos = b.data();
69
104
        UInt8* __restrict c_pos = c.data();
70
104
        const A* __restrict a_end = a_pos + size;
71
72
227
        while (a_pos < a_end) {
73
123
            *c_pos = Op::apply(*a_pos, *b_pos);
74
123
            ++a_pos;
75
123
            ++b_pos;
76
123
            ++c_pos;
77
123
        }
78
104
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
105
                                        PaddedPODArray<UInt8>& c) {
66
105
        size_t size = a.size();
67
105
        const A* __restrict a_pos = a.data();
68
105
        const B* __restrict b_pos = b.data();
69
105
        UInt8* __restrict c_pos = c.data();
70
105
        const A* __restrict a_end = a_pos + size;
71
72
231
        while (a_pos < a_end) {
73
126
            *c_pos = Op::apply(*a_pos, *b_pos);
74
126
            ++a_pos;
75
126
            ++b_pos;
76
126
            ++c_pos;
77
126
        }
78
105
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
4
                                        PaddedPODArray<UInt8>& c) {
66
4
        size_t size = a.size();
67
4
        const A* __restrict a_pos = a.data();
68
4
        const B* __restrict b_pos = b.data();
69
4
        UInt8* __restrict c_pos = c.data();
70
4
        const A* __restrict a_end = a_pos + size;
71
72
8
        while (a_pos < a_end) {
73
4
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4
            ++a_pos;
75
4
            ++b_pos;
76
4
            ++c_pos;
77
4
        }
78
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
65
39
                                        PaddedPODArray<UInt8>& c) {
66
39
        size_t size = a.size();
67
39
        const A* __restrict a_pos = a.data();
68
39
        const B* __restrict b_pos = b.data();
69
39
        UInt8* __restrict c_pos = c.data();
70
39
        const A* __restrict a_end = a_pos + size;
71
72
108
        while (a_pos < a_end) {
73
69
            *c_pos = Op::apply(*a_pos, *b_pos);
74
69
            ++a_pos;
75
69
            ++b_pos;
76
69
            ++c_pos;
77
69
        }
78
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
65
56
                                        PaddedPODArray<UInt8>& c) {
66
56
        size_t size = a.size();
67
56
        const A* __restrict a_pos = a.data();
68
56
        const B* __restrict b_pos = b.data();
69
56
        UInt8* __restrict c_pos = c.data();
70
56
        const A* __restrict a_end = a_pos + size;
71
72
252
        while (a_pos < a_end) {
73
196
            *c_pos = Op::apply(*a_pos, *b_pos);
74
196
            ++a_pos;
75
196
            ++b_pos;
76
196
            ++c_pos;
77
196
        }
78
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
65
570
                                        PaddedPODArray<UInt8>& c) {
66
570
        size_t size = a.size();
67
570
        const A* __restrict a_pos = a.data();
68
570
        const B* __restrict b_pos = b.data();
69
570
        UInt8* __restrict c_pos = c.data();
70
570
        const A* __restrict a_end = a_pos + size;
71
72
297k
        while (a_pos < a_end) {
73
297k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
297k
            ++a_pos;
75
297k
            ++b_pos;
76
297k
            ++c_pos;
77
297k
        }
78
570
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
334
                                        PaddedPODArray<UInt8>& c) {
66
334
        size_t size = a.size();
67
334
        const A* __restrict a_pos = a.data();
68
334
        const B* __restrict b_pos = b.data();
69
334
        UInt8* __restrict c_pos = c.data();
70
334
        const A* __restrict a_end = a_pos + size;
71
72
5.76k
        while (a_pos < a_end) {
73
5.43k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.43k
            ++a_pos;
75
5.43k
            ++b_pos;
76
5.43k
            ++c_pos;
77
5.43k
        }
78
334
    }
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
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
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
65
1.15k
                                        PaddedPODArray<UInt8>& c) {
66
1.15k
        size_t size = a.size();
67
1.15k
        const A* __restrict a_pos = a.data();
68
1.15k
        const B* __restrict b_pos = b.data();
69
1.15k
        UInt8* __restrict c_pos = c.data();
70
1.15k
        const A* __restrict a_end = a_pos + size;
71
72
2.64M
        while (a_pos < a_end) {
73
2.64M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.64M
            ++a_pos;
75
2.64M
            ++b_pos;
76
2.64M
            ++c_pos;
77
2.64M
        }
78
1.15k
    }
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
65
2
                                        PaddedPODArray<UInt8>& c) {
66
2
        size_t size = a.size();
67
2
        const A* __restrict a_pos = a.data();
68
2
        const B* __restrict b_pos = b.data();
69
2
        UInt8* __restrict c_pos = c.data();
70
2
        const A* __restrict a_end = a_pos + size;
71
72
11
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
2
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
38
                                        PaddedPODArray<UInt8>& c) {
66
38
        size_t size = a.size();
67
38
        const A* __restrict a_pos = a.data();
68
38
        const B* __restrict b_pos = b.data();
69
38
        UInt8* __restrict c_pos = c.data();
70
38
        const A* __restrict a_end = a_pos + size;
71
72
322
        while (a_pos < a_end) {
73
284
            *c_pos = Op::apply(*a_pos, *b_pos);
74
284
            ++a_pos;
75
284
            ++b_pos;
76
284
            ++c_pos;
77
284
        }
78
38
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
110
                                        PaddedPODArray<UInt8>& c) {
66
110
        size_t size = a.size();
67
110
        const A* __restrict a_pos = a.data();
68
110
        const B* __restrict b_pos = b.data();
69
110
        UInt8* __restrict c_pos = c.data();
70
110
        const A* __restrict a_end = a_pos + size;
71
72
371
        while (a_pos < a_end) {
73
261
            *c_pos = Op::apply(*a_pos, *b_pos);
74
261
            ++a_pos;
75
261
            ++b_pos;
76
261
            ++c_pos;
77
261
        }
78
110
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
39
                                        PaddedPODArray<UInt8>& c) {
66
39
        size_t size = a.size();
67
39
        const A* __restrict a_pos = a.data();
68
39
        const B* __restrict b_pos = b.data();
69
39
        UInt8* __restrict c_pos = c.data();
70
39
        const A* __restrict a_end = a_pos + size;
71
72
235
        while (a_pos < a_end) {
73
196
            *c_pos = Op::apply(*a_pos, *b_pos);
74
196
            ++a_pos;
75
196
            ++b_pos;
76
196
            ++c_pos;
77
196
        }
78
39
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
64
                                        PaddedPODArray<UInt8>& c) {
66
64
        size_t size = a.size();
67
64
        const A* __restrict a_pos = a.data();
68
64
        const B* __restrict b_pos = b.data();
69
64
        UInt8* __restrict c_pos = c.data();
70
64
        const A* __restrict a_end = a_pos + size;
71
72
565
        while (a_pos < a_end) {
73
501
            *c_pos = Op::apply(*a_pos, *b_pos);
74
501
            ++a_pos;
75
501
            ++b_pos;
76
501
            ++c_pos;
77
501
        }
78
64
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
9
        while (a_pos < a_end) {
73
6
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6
            ++a_pos;
75
6
            ++b_pos;
76
6
            ++c_pos;
77
6
        }
78
3
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
32
                                        PaddedPODArray<UInt8>& c) {
66
32
        size_t size = a.size();
67
32
        const A* __restrict a_pos = a.data();
68
32
        const B* __restrict b_pos = b.data();
69
32
        UInt8* __restrict c_pos = c.data();
70
32
        const A* __restrict a_end = a_pos + size;
71
72
105
        while (a_pos < a_end) {
73
73
            *c_pos = Op::apply(*a_pos, *b_pos);
74
73
            ++a_pos;
75
73
            ++b_pos;
76
73
            ++c_pos;
77
73
        }
78
32
    }
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
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
8
                                        PaddedPODArray<UInt8>& c) {
66
8
        size_t size = a.size();
67
8
        const A* __restrict a_pos = a.data();
68
8
        const B* __restrict b_pos = b.data();
69
8
        UInt8* __restrict c_pos = c.data();
70
8
        const A* __restrict a_end = a_pos + size;
71
72
67
        while (a_pos < a_end) {
73
59
            *c_pos = Op::apply(*a_pos, *b_pos);
74
59
            ++a_pos;
75
59
            ++b_pos;
76
59
            ++c_pos;
77
59
        }
78
8
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
2
                                        PaddedPODArray<UInt8>& c) {
66
2
        size_t size = a.size();
67
2
        const A* __restrict a_pos = a.data();
68
2
        const B* __restrict b_pos = b.data();
69
2
        UInt8* __restrict c_pos = c.data();
70
2
        const A* __restrict a_end = a_pos + size;
71
72
11
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
2
    }
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
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
7
        while (a_pos < a_end) {
73
4
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4
            ++a_pos;
75
4
            ++b_pos;
76
4
            ++c_pos;
77
4
        }
78
3
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
9
                                        PaddedPODArray<UInt8>& c) {
66
9
        size_t size = a.size();
67
9
        const A* __restrict a_pos = a.data();
68
9
        const B* __restrict b_pos = b.data();
69
9
        UInt8* __restrict c_pos = c.data();
70
9
        const A* __restrict a_end = a_pos + size;
71
72
64
        while (a_pos < a_end) {
73
55
            *c_pos = Op::apply(*a_pos, *b_pos);
74
55
            ++a_pos;
75
55
            ++b_pos;
76
55
            ++c_pos;
77
55
        }
78
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
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
22
                                        PaddedPODArray<UInt8>& c) {
66
22
        size_t size = a.size();
67
22
        const A* __restrict a_pos = a.data();
68
22
        const B* __restrict b_pos = b.data();
69
22
        UInt8* __restrict c_pos = c.data();
70
22
        const A* __restrict a_end = a_pos + size;
71
72
65
        while (a_pos < a_end) {
73
43
            *c_pos = Op::apply(*a_pos, *b_pos);
74
43
            ++a_pos;
75
43
            ++b_pos;
76
43
            ++c_pos;
77
43
        }
78
22
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
81
                                        PaddedPODArray<UInt8>& c) {
66
81
        size_t size = a.size();
67
81
        const A* __restrict a_pos = a.data();
68
81
        const B* __restrict b_pos = b.data();
69
81
        UInt8* __restrict c_pos = c.data();
70
81
        const A* __restrict a_end = a_pos + size;
71
72
162
        while (a_pos < a_end) {
73
81
            *c_pos = Op::apply(*a_pos, *b_pos);
74
81
            ++a_pos;
75
81
            ++b_pos;
76
81
            ++c_pos;
77
81
        }
78
81
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.83k
                                        PaddedPODArray<UInt8>& c) {
66
1.83k
        size_t size = a.size();
67
1.83k
        const A* __restrict a_pos = a.data();
68
1.83k
        const B* __restrict b_pos = b.data();
69
1.83k
        UInt8* __restrict c_pos = c.data();
70
1.83k
        const A* __restrict a_end = a_pos + size;
71
72
1.79M
        while (a_pos < a_end) {
73
1.79M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.79M
            ++a_pos;
75
1.79M
            ++b_pos;
76
1.79M
            ++c_pos;
77
1.79M
        }
78
1.83k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
214
                                        PaddedPODArray<UInt8>& c) {
66
214
        size_t size = a.size();
67
214
        const A* __restrict a_pos = a.data();
68
214
        const B* __restrict b_pos = b.data();
69
214
        UInt8* __restrict c_pos = c.data();
70
214
        const A* __restrict a_end = a_pos + size;
71
72
428
        while (a_pos < a_end) {
73
214
            *c_pos = Op::apply(*a_pos, *b_pos);
74
214
            ++a_pos;
75
214
            ++b_pos;
76
214
            ++c_pos;
77
214
        }
78
214
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
2
                                        PaddedPODArray<UInt8>& c) {
66
2
        size_t size = a.size();
67
2
        const A* __restrict a_pos = a.data();
68
2
        const B* __restrict b_pos = b.data();
69
2
        UInt8* __restrict c_pos = c.data();
70
2
        const A* __restrict a_end = a_pos + size;
71
72
11
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
2
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
122
                                        PaddedPODArray<UInt8>& c) {
66
122
        size_t size = a.size();
67
122
        const A* __restrict a_pos = a.data();
68
122
        const B* __restrict b_pos = b.data();
69
122
        UInt8* __restrict c_pos = c.data();
70
122
        const A* __restrict a_end = a_pos + size;
71
72
244
        while (a_pos < a_end) {
73
122
            *c_pos = Op::apply(*a_pos, *b_pos);
74
122
            ++a_pos;
75
122
            ++b_pos;
76
122
            ++c_pos;
77
122
        }
78
122
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
102
                                        PaddedPODArray<UInt8>& c) {
66
102
        size_t size = a.size();
67
102
        const A* __restrict a_pos = a.data();
68
102
        const B* __restrict b_pos = b.data();
69
102
        UInt8* __restrict c_pos = c.data();
70
102
        const A* __restrict a_end = a_pos + size;
71
72
206
        while (a_pos < a_end) {
73
104
            *c_pos = Op::apply(*a_pos, *b_pos);
74
104
            ++a_pos;
75
104
            ++b_pos;
76
104
            ++c_pos;
77
104
        }
78
102
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
157
                                        PaddedPODArray<UInt8>& c) {
66
157
        size_t size = a.size();
67
157
        const A* __restrict a_pos = a.data();
68
157
        const B* __restrict b_pos = b.data();
69
157
        UInt8* __restrict c_pos = c.data();
70
157
        const A* __restrict a_end = a_pos + size;
71
72
805
        while (a_pos < a_end) {
73
648
            *c_pos = Op::apply(*a_pos, *b_pos);
74
648
            ++a_pos;
75
648
            ++b_pos;
76
648
            ++c_pos;
77
648
        }
78
157
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
198
                                        PaddedPODArray<UInt8>& c) {
66
198
        size_t size = a.size();
67
198
        const A* __restrict a_pos = a.data();
68
198
        const B* __restrict b_pos = b.data();
69
198
        UInt8* __restrict c_pos = c.data();
70
198
        const A* __restrict a_end = a_pos + size;
71
72
5.16k
        while (a_pos < a_end) {
73
4.96k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.96k
            ++a_pos;
75
4.96k
            ++b_pos;
76
4.96k
            ++c_pos;
77
4.96k
        }
78
198
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
122
                                        PaddedPODArray<UInt8>& c) {
66
122
        size_t size = a.size();
67
122
        const A* __restrict a_pos = a.data();
68
122
        const B* __restrict b_pos = b.data();
69
122
        UInt8* __restrict c_pos = c.data();
70
122
        const A* __restrict a_end = a_pos + size;
71
72
244
        while (a_pos < a_end) {
73
122
            *c_pos = Op::apply(*a_pos, *b_pos);
74
122
            ++a_pos;
75
122
            ++b_pos;
76
122
            ++c_pos;
77
122
        }
78
122
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
118
                                        PaddedPODArray<UInt8>& c) {
66
118
        size_t size = a.size();
67
118
        const A* __restrict a_pos = a.data();
68
118
        const B* __restrict b_pos = b.data();
69
118
        UInt8* __restrict c_pos = c.data();
70
118
        const A* __restrict a_end = a_pos + size;
71
72
255
        while (a_pos < a_end) {
73
137
            *c_pos = Op::apply(*a_pos, *b_pos);
74
137
            ++a_pos;
75
137
            ++b_pos;
76
137
            ++c_pos;
77
137
        }
78
118
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
120
                                        PaddedPODArray<UInt8>& c) {
66
120
        size_t size = a.size();
67
120
        const A* __restrict a_pos = a.data();
68
120
        const B* __restrict b_pos = b.data();
69
120
        UInt8* __restrict c_pos = c.data();
70
120
        const A* __restrict a_end = a_pos + size;
71
72
272
        while (a_pos < a_end) {
73
152
            *c_pos = Op::apply(*a_pos, *b_pos);
74
152
            ++a_pos;
75
152
            ++b_pos;
76
152
            ++c_pos;
77
152
        }
78
120
    }
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
65
399
                                        PaddedPODArray<UInt8>& c) {
66
399
        size_t size = a.size();
67
399
        const A* __restrict a_pos = a.data();
68
399
        const B* __restrict b_pos = b.data();
69
399
        UInt8* __restrict c_pos = c.data();
70
399
        const A* __restrict a_end = a_pos + size;
71
72
6.32k
        while (a_pos < a_end) {
73
5.92k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.92k
            ++a_pos;
75
5.92k
            ++b_pos;
76
5.92k
            ++c_pos;
77
5.92k
        }
78
399
    }
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
65
2
                                        PaddedPODArray<UInt8>& c) {
66
2
        size_t size = a.size();
67
2
        const A* __restrict a_pos = a.data();
68
2
        const B* __restrict b_pos = b.data();
69
2
        UInt8* __restrict c_pos = c.data();
70
2
        const A* __restrict a_end = a_pos + size;
71
72
11
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
2
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
5
        while (a_pos < a_end) {
73
4
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4
            ++a_pos;
75
4
            ++b_pos;
76
4
            ++c_pos;
77
4
        }
78
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
65
23
                                        PaddedPODArray<UInt8>& c) {
66
23
        size_t size = a.size();
67
23
        const A* __restrict a_pos = a.data();
68
23
        const B* __restrict b_pos = b.data();
69
23
        UInt8* __restrict c_pos = c.data();
70
23
        const A* __restrict a_end = a_pos + size;
71
72
105
        while (a_pos < a_end) {
73
82
            *c_pos = Op::apply(*a_pos, *b_pos);
74
82
            ++a_pos;
75
82
            ++b_pos;
76
82
            ++c_pos;
77
82
        }
78
23
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
30
                                        PaddedPODArray<UInt8>& c) {
66
30
        size_t size = a.size();
67
30
        const A* __restrict a_pos = a.data();
68
30
        const B* __restrict b_pos = b.data();
69
30
        UInt8* __restrict c_pos = c.data();
70
30
        const A* __restrict a_end = a_pos + size;
71
72
64
        while (a_pos < a_end) {
73
34
            *c_pos = Op::apply(*a_pos, *b_pos);
74
34
            ++a_pos;
75
34
            ++b_pos;
76
34
            ++c_pos;
77
34
        }
78
30
    }
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
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
79
80
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
81
236k
                                          PaddedPODArray<UInt8>& c) {
82
236k
        size_t size = a.size();
83
236k
        const A* __restrict a_pos = a.data();
84
236k
        UInt8* __restrict c_pos = c.data();
85
236k
        const A* __restrict a_end = a_pos + size;
86
87
207M
        while (a_pos < a_end) {
88
207M
            *c_pos = Op::apply(*a_pos, b);
89
207M
            ++a_pos;
90
207M
            ++c_pos;
91
207M
        }
92
236k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
1.53k
                                          PaddedPODArray<UInt8>& c) {
82
1.53k
        size_t size = a.size();
83
1.53k
        const A* __restrict a_pos = a.data();
84
1.53k
        UInt8* __restrict c_pos = c.data();
85
1.53k
        const A* __restrict a_end = a_pos + size;
86
87
5.00k
        while (a_pos < a_end) {
88
3.47k
            *c_pos = Op::apply(*a_pos, b);
89
3.47k
            ++a_pos;
90
3.47k
            ++c_pos;
91
3.47k
        }
92
1.53k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
1.01k
                                          PaddedPODArray<UInt8>& c) {
82
1.01k
        size_t size = a.size();
83
1.01k
        const A* __restrict a_pos = a.data();
84
1.01k
        UInt8* __restrict c_pos = c.data();
85
1.01k
        const A* __restrict a_end = a_pos + size;
86
87
205k
        while (a_pos < a_end) {
88
204k
            *c_pos = Op::apply(*a_pos, b);
89
204k
            ++a_pos;
90
204k
            ++c_pos;
91
204k
        }
92
1.01k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
367
                                          PaddedPODArray<UInt8>& c) {
82
367
        size_t size = a.size();
83
367
        const A* __restrict a_pos = a.data();
84
367
        UInt8* __restrict c_pos = c.data();
85
367
        const A* __restrict a_end = a_pos + size;
86
87
101k
        while (a_pos < a_end) {
88
100k
            *c_pos = Op::apply(*a_pos, b);
89
100k
            ++a_pos;
90
100k
            ++c_pos;
91
100k
        }
92
367
    }
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
81
6.72k
                                          PaddedPODArray<UInt8>& c) {
82
6.72k
        size_t size = a.size();
83
6.72k
        const A* __restrict a_pos = a.data();
84
6.72k
        UInt8* __restrict c_pos = c.data();
85
6.72k
        const A* __restrict a_end = a_pos + size;
86
87
9.15M
        while (a_pos < a_end) {
88
9.14M
            *c_pos = Op::apply(*a_pos, b);
89
9.14M
            ++a_pos;
90
9.14M
            ++c_pos;
91
9.14M
        }
92
6.72k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.35k
                                          PaddedPODArray<UInt8>& c) {
82
1.35k
        size_t size = a.size();
83
1.35k
        const A* __restrict a_pos = a.data();
84
1.35k
        UInt8* __restrict c_pos = c.data();
85
1.35k
        const A* __restrict a_end = a_pos + size;
86
87
127k
        while (a_pos < a_end) {
88
126k
            *c_pos = Op::apply(*a_pos, b);
89
126k
            ++a_pos;
90
126k
            ++c_pos;
91
126k
        }
92
1.35k
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
84.8k
                                          PaddedPODArray<UInt8>& c) {
82
84.8k
        size_t size = a.size();
83
84.8k
        const A* __restrict a_pos = a.data();
84
84.8k
        UInt8* __restrict c_pos = c.data();
85
84.8k
        const A* __restrict a_end = a_pos + size;
86
87
2.20M
        while (a_pos < a_end) {
88
2.12M
            *c_pos = Op::apply(*a_pos, b);
89
2.12M
            ++a_pos;
90
2.12M
            ++c_pos;
91
2.12M
        }
92
84.8k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
23.4k
                                          PaddedPODArray<UInt8>& c) {
82
23.4k
        size_t size = a.size();
83
23.4k
        const A* __restrict a_pos = a.data();
84
23.4k
        UInt8* __restrict c_pos = c.data();
85
23.4k
        const A* __restrict a_end = a_pos + size;
86
87
2.88M
        while (a_pos < a_end) {
88
2.85M
            *c_pos = Op::apply(*a_pos, b);
89
2.85M
            ++a_pos;
90
2.85M
            ++c_pos;
91
2.85M
        }
92
23.4k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
73
                                          PaddedPODArray<UInt8>& c) {
82
73
        size_t size = a.size();
83
73
        const A* __restrict a_pos = a.data();
84
73
        UInt8* __restrict c_pos = c.data();
85
73
        const A* __restrict a_end = a_pos + size;
86
87
101k
        while (a_pos < a_end) {
88
101k
            *c_pos = Op::apply(*a_pos, b);
89
101k
            ++a_pos;
90
101k
            ++c_pos;
91
101k
        }
92
73
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
16
                                          PaddedPODArray<UInt8>& c) {
82
16
        size_t size = a.size();
83
16
        const A* __restrict a_pos = a.data();
84
16
        UInt8* __restrict c_pos = c.data();
85
16
        const A* __restrict a_end = a_pos + size;
86
87
130
        while (a_pos < a_end) {
88
114
            *c_pos = Op::apply(*a_pos, b);
89
114
            ++a_pos;
90
114
            ++c_pos;
91
114
        }
92
16
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
6
                                          PaddedPODArray<UInt8>& c) {
82
6
        size_t size = a.size();
83
6
        const A* __restrict a_pos = a.data();
84
6
        UInt8* __restrict c_pos = c.data();
85
6
        const A* __restrict a_end = a_pos + size;
86
87
12
        while (a_pos < a_end) {
88
6
            *c_pos = Op::apply(*a_pos, b);
89
6
            ++a_pos;
90
6
            ++c_pos;
91
6
        }
92
6
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
4
                                          PaddedPODArray<UInt8>& c) {
82
4
        size_t size = a.size();
83
4
        const A* __restrict a_pos = a.data();
84
4
        UInt8* __restrict c_pos = c.data();
85
4
        const A* __restrict a_end = a_pos + size;
86
87
26
        while (a_pos < a_end) {
88
22
            *c_pos = Op::apply(*a_pos, b);
89
22
            ++a_pos;
90
22
            ++c_pos;
91
22
        }
92
4
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
277
                                          PaddedPODArray<UInt8>& c) {
82
277
        size_t size = a.size();
83
277
        const A* __restrict a_pos = a.data();
84
277
        UInt8* __restrict c_pos = c.data();
85
277
        const A* __restrict a_end = a_pos + size;
86
87
701k
        while (a_pos < a_end) {
88
701k
            *c_pos = Op::apply(*a_pos, b);
89
701k
            ++a_pos;
90
701k
            ++c_pos;
91
701k
        }
92
277
    }
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
81
39
                                          PaddedPODArray<UInt8>& c) {
82
39
        size_t size = a.size();
83
39
        const A* __restrict a_pos = a.data();
84
39
        UInt8* __restrict c_pos = c.data();
85
39
        const A* __restrict a_end = a_pos + size;
86
87
98
        while (a_pos < a_end) {
88
59
            *c_pos = Op::apply(*a_pos, b);
89
59
            ++a_pos;
90
59
            ++c_pos;
91
59
        }
92
39
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
2
                                          PaddedPODArray<UInt8>& c) {
82
2
        size_t size = a.size();
83
2
        const A* __restrict a_pos = a.data();
84
2
        UInt8* __restrict c_pos = c.data();
85
2
        const A* __restrict a_end = a_pos + size;
86
87
4
        while (a_pos < a_end) {
88
2
            *c_pos = Op::apply(*a_pos, b);
89
2
            ++a_pos;
90
2
            ++c_pos;
91
2
        }
92
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
81
44
                                          PaddedPODArray<UInt8>& c) {
82
44
        size_t size = a.size();
83
44
        const A* __restrict a_pos = a.data();
84
44
        UInt8* __restrict c_pos = c.data();
85
44
        const A* __restrict a_end = a_pos + size;
86
87
1.24k
        while (a_pos < a_end) {
88
1.19k
            *c_pos = Op::apply(*a_pos, b);
89
1.19k
            ++a_pos;
90
1.19k
            ++c_pos;
91
1.19k
        }
92
44
    }
_ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
26
                                          PaddedPODArray<UInt8>& c) {
82
26
        size_t size = a.size();
83
26
        const A* __restrict a_pos = a.data();
84
26
        UInt8* __restrict c_pos = c.data();
85
26
        const A* __restrict a_end = a_pos + size;
86
87
802
        while (a_pos < a_end) {
88
776
            *c_pos = Op::apply(*a_pos, b);
89
776
            ++a_pos;
90
776
            ++c_pos;
91
776
        }
92
26
    }
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
2.85k
                                          PaddedPODArray<UInt8>& c) {
82
2.85k
        size_t size = a.size();
83
2.85k
        const A* __restrict a_pos = a.data();
84
2.85k
        UInt8* __restrict c_pos = c.data();
85
2.85k
        const A* __restrict a_end = a_pos + size;
86
87
658k
        while (a_pos < a_end) {
88
655k
            *c_pos = Op::apply(*a_pos, b);
89
655k
            ++a_pos;
90
655k
            ++c_pos;
91
655k
        }
92
2.85k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
2.68k
                                          PaddedPODArray<UInt8>& c) {
82
2.68k
        size_t size = a.size();
83
2.68k
        const A* __restrict a_pos = a.data();
84
2.68k
        UInt8* __restrict c_pos = c.data();
85
2.68k
        const A* __restrict a_end = a_pos + size;
86
87
272k
        while (a_pos < a_end) {
88
270k
            *c_pos = Op::apply(*a_pos, b);
89
270k
            ++a_pos;
90
270k
            ++c_pos;
91
270k
        }
92
2.68k
    }
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
81
28
                                          PaddedPODArray<UInt8>& c) {
82
28
        size_t size = a.size();
83
28
        const A* __restrict a_pos = a.data();
84
28
        UInt8* __restrict c_pos = c.data();
85
28
        const A* __restrict a_end = a_pos + size;
86
87
70
        while (a_pos < a_end) {
88
42
            *c_pos = Op::apply(*a_pos, b);
89
42
            ++a_pos;
90
42
            ++c_pos;
91
42
        }
92
28
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
40
                                          PaddedPODArray<UInt8>& c) {
82
40
        size_t size = a.size();
83
40
        const A* __restrict a_pos = a.data();
84
40
        UInt8* __restrict c_pos = c.data();
85
40
        const A* __restrict a_end = a_pos + size;
86
87
282
        while (a_pos < a_end) {
88
242
            *c_pos = Op::apply(*a_pos, b);
89
242
            ++a_pos;
90
242
            ++c_pos;
91
242
        }
92
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
81
157
                                          PaddedPODArray<UInt8>& c) {
82
157
        size_t size = a.size();
83
157
        const A* __restrict a_pos = a.data();
84
157
        UInt8* __restrict c_pos = c.data();
85
157
        const A* __restrict a_end = a_pos + size;
86
87
743
        while (a_pos < a_end) {
88
586
            *c_pos = Op::apply(*a_pos, b);
89
586
            ++a_pos;
90
586
            ++c_pos;
91
586
        }
92
157
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
592
                                          PaddedPODArray<UInt8>& c) {
82
592
        size_t size = a.size();
83
592
        const A* __restrict a_pos = a.data();
84
592
        UInt8* __restrict c_pos = c.data();
85
592
        const A* __restrict a_end = a_pos + size;
86
87
1.34M
        while (a_pos < a_end) {
88
1.34M
            *c_pos = Op::apply(*a_pos, b);
89
1.34M
            ++a_pos;
90
1.34M
            ++c_pos;
91
1.34M
        }
92
592
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
94
                                          PaddedPODArray<UInt8>& c) {
82
94
        size_t size = a.size();
83
94
        const A* __restrict a_pos = a.data();
84
94
        UInt8* __restrict c_pos = c.data();
85
94
        const A* __restrict a_end = a_pos + size;
86
87
210
        while (a_pos < a_end) {
88
116
            *c_pos = Op::apply(*a_pos, b);
89
116
            ++a_pos;
90
116
            ++c_pos;
91
116
        }
92
94
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
337
                                          PaddedPODArray<UInt8>& c) {
82
337
        size_t size = a.size();
83
337
        const A* __restrict a_pos = a.data();
84
337
        UInt8* __restrict c_pos = c.data();
85
337
        const A* __restrict a_end = a_pos + size;
86
87
45.4k
        while (a_pos < a_end) {
88
45.1k
            *c_pos = Op::apply(*a_pos, b);
89
45.1k
            ++a_pos;
90
45.1k
            ++c_pos;
91
45.1k
        }
92
337
    }
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
81
1
                                          PaddedPODArray<UInt8>& c) {
82
1
        size_t size = a.size();
83
1
        const A* __restrict a_pos = a.data();
84
1
        UInt8* __restrict c_pos = c.data();
85
1
        const A* __restrict a_end = a_pos + size;
86
87
8
        while (a_pos < a_end) {
88
7
            *c_pos = Op::apply(*a_pos, b);
89
7
            ++a_pos;
90
7
            ++c_pos;
91
7
        }
92
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.03k
                                          PaddedPODArray<UInt8>& c) {
82
1.03k
        size_t size = a.size();
83
1.03k
        const A* __restrict a_pos = a.data();
84
1.03k
        UInt8* __restrict c_pos = c.data();
85
1.03k
        const A* __restrict a_end = a_pos + size;
86
87
6.35k
        while (a_pos < a_end) {
88
5.32k
            *c_pos = Op::apply(*a_pos, b);
89
5.32k
            ++a_pos;
90
5.32k
            ++c_pos;
91
5.32k
        }
92
1.03k
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
2.01k
                                          PaddedPODArray<UInt8>& c) {
82
2.01k
        size_t size = a.size();
83
2.01k
        const A* __restrict a_pos = a.data();
84
2.01k
        UInt8* __restrict c_pos = c.data();
85
2.01k
        const A* __restrict a_end = a_pos + size;
86
87
7.72k
        while (a_pos < a_end) {
88
5.70k
            *c_pos = Op::apply(*a_pos, b);
89
5.70k
            ++a_pos;
90
5.70k
            ++c_pos;
91
5.70k
        }
92
2.01k
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.57k
                                          PaddedPODArray<UInt8>& c) {
82
1.57k
        size_t size = a.size();
83
1.57k
        const A* __restrict a_pos = a.data();
84
1.57k
        UInt8* __restrict c_pos = c.data();
85
1.57k
        const A* __restrict a_end = a_pos + size;
86
87
10.5k
        while (a_pos < a_end) {
88
8.94k
            *c_pos = Op::apply(*a_pos, b);
89
8.94k
            ++a_pos;
90
8.94k
            ++c_pos;
91
8.94k
        }
92
1.57k
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
496
                                          PaddedPODArray<UInt8>& c) {
82
496
        size_t size = a.size();
83
496
        const A* __restrict a_pos = a.data();
84
496
        UInt8* __restrict c_pos = c.data();
85
496
        const A* __restrict a_end = a_pos + size;
86
87
13.8k
        while (a_pos < a_end) {
88
13.3k
            *c_pos = Op::apply(*a_pos, b);
89
13.3k
            ++a_pos;
90
13.3k
            ++c_pos;
91
13.3k
        }
92
496
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
26.1k
                                          PaddedPODArray<UInt8>& c) {
82
26.1k
        size_t size = a.size();
83
26.1k
        const A* __restrict a_pos = a.data();
84
26.1k
        UInt8* __restrict c_pos = c.data();
85
26.1k
        const A* __restrict a_end = a_pos + size;
86
87
6.70M
        while (a_pos < a_end) {
88
6.67M
            *c_pos = Op::apply(*a_pos, b);
89
6.67M
            ++a_pos;
90
6.67M
            ++c_pos;
91
6.67M
        }
92
26.1k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
8.65k
                                          PaddedPODArray<UInt8>& c) {
82
8.65k
        size_t size = a.size();
83
8.65k
        const A* __restrict a_pos = a.data();
84
8.65k
        UInt8* __restrict c_pos = c.data();
85
8.65k
        const A* __restrict a_end = a_pos + size;
86
87
5.37M
        while (a_pos < a_end) {
88
5.36M
            *c_pos = Op::apply(*a_pos, b);
89
5.36M
            ++a_pos;
90
5.36M
            ++c_pos;
91
5.36M
        }
92
8.65k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
13.4k
                                          PaddedPODArray<UInt8>& c) {
82
13.4k
        size_t size = a.size();
83
13.4k
        const A* __restrict a_pos = a.data();
84
13.4k
        UInt8* __restrict c_pos = c.data();
85
13.4k
        const A* __restrict a_end = a_pos + size;
86
87
172k
        while (a_pos < a_end) {
88
158k
            *c_pos = Op::apply(*a_pos, b);
89
158k
            ++a_pos;
90
158k
            ++c_pos;
91
158k
        }
92
13.4k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.55k
                                          PaddedPODArray<UInt8>& c) {
82
1.55k
        size_t size = a.size();
83
1.55k
        const A* __restrict a_pos = a.data();
84
1.55k
        UInt8* __restrict c_pos = c.data();
85
1.55k
        const A* __restrict a_end = a_pos + size;
86
87
4.74k
        while (a_pos < a_end) {
88
3.19k
            *c_pos = Op::apply(*a_pos, b);
89
3.19k
            ++a_pos;
90
3.19k
            ++c_pos;
91
3.19k
        }
92
1.55k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
278
                                          PaddedPODArray<UInt8>& c) {
82
278
        size_t size = a.size();
83
278
        const A* __restrict a_pos = a.data();
84
278
        UInt8* __restrict c_pos = c.data();
85
278
        const A* __restrict a_end = a_pos + size;
86
87
1.91k
        while (a_pos < a_end) {
88
1.63k
            *c_pos = Op::apply(*a_pos, b);
89
1.63k
            ++a_pos;
90
1.63k
            ++c_pos;
91
1.63k
        }
92
278
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
99
                                          PaddedPODArray<UInt8>& c) {
82
99
        size_t size = a.size();
83
99
        const A* __restrict a_pos = a.data();
84
99
        UInt8* __restrict c_pos = c.data();
85
99
        const A* __restrict a_end = a_pos + size;
86
87
86.2k
        while (a_pos < a_end) {
88
86.1k
            *c_pos = Op::apply(*a_pos, b);
89
86.1k
            ++a_pos;
90
86.1k
            ++c_pos;
91
86.1k
        }
92
99
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1
                                          PaddedPODArray<UInt8>& c) {
82
1
        size_t size = a.size();
83
1
        const A* __restrict a_pos = a.data();
84
1
        UInt8* __restrict c_pos = c.data();
85
1
        const A* __restrict a_end = a_pos + size;
86
87
9
        while (a_pos < a_end) {
88
8
            *c_pos = Op::apply(*a_pos, b);
89
8
            ++a_pos;
90
8
            ++c_pos;
91
8
        }
92
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
81
216
                                          PaddedPODArray<UInt8>& c) {
82
216
        size_t size = a.size();
83
216
        const A* __restrict a_pos = a.data();
84
216
        UInt8* __restrict c_pos = c.data();
85
216
        const A* __restrict a_end = a_pos + size;
86
87
3.77k
        while (a_pos < a_end) {
88
3.55k
            *c_pos = Op::apply(*a_pos, b);
89
3.55k
            ++a_pos;
90
3.55k
            ++c_pos;
91
3.55k
        }
92
216
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
26
                                          PaddedPODArray<UInt8>& c) {
82
26
        size_t size = a.size();
83
26
        const A* __restrict a_pos = a.data();
84
26
        UInt8* __restrict c_pos = c.data();
85
26
        const A* __restrict a_end = a_pos + size;
86
87
64
        while (a_pos < a_end) {
88
38
            *c_pos = Op::apply(*a_pos, b);
89
38
            ++a_pos;
90
38
            ++c_pos;
91
38
        }
92
26
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
2.47k
                                          PaddedPODArray<UInt8>& c) {
82
2.47k
        size_t size = a.size();
83
2.47k
        const A* __restrict a_pos = a.data();
84
2.47k
        UInt8* __restrict c_pos = c.data();
85
2.47k
        const A* __restrict a_end = a_pos + size;
86
87
346k
        while (a_pos < a_end) {
88
344k
            *c_pos = Op::apply(*a_pos, b);
89
344k
            ++a_pos;
90
344k
            ++c_pos;
91
344k
        }
92
2.47k
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
216
                                          PaddedPODArray<UInt8>& c) {
82
216
        size_t size = a.size();
83
216
        const A* __restrict a_pos = a.data();
84
216
        UInt8* __restrict c_pos = c.data();
85
216
        const A* __restrict a_end = a_pos + size;
86
87
316k
        while (a_pos < a_end) {
88
316k
            *c_pos = Op::apply(*a_pos, b);
89
316k
            ++a_pos;
90
316k
            ++c_pos;
91
316k
        }
92
216
    }
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
81
147
                                          PaddedPODArray<UInt8>& c) {
82
147
        size_t size = a.size();
83
147
        const A* __restrict a_pos = a.data();
84
147
        UInt8* __restrict c_pos = c.data();
85
147
        const A* __restrict a_end = a_pos + size;
86
87
134k
        while (a_pos < a_end) {
88
134k
            *c_pos = Op::apply(*a_pos, b);
89
134k
            ++a_pos;
90
134k
            ++c_pos;
91
134k
        }
92
147
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
393
                                          PaddedPODArray<UInt8>& c) {
82
393
        size_t size = a.size();
83
393
        const A* __restrict a_pos = a.data();
84
393
        UInt8* __restrict c_pos = c.data();
85
393
        const A* __restrict a_end = a_pos + size;
86
87
129k
        while (a_pos < a_end) {
88
128k
            *c_pos = Op::apply(*a_pos, b);
89
128k
            ++a_pos;
90
128k
            ++c_pos;
91
128k
        }
92
393
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
1.67k
                                          PaddedPODArray<UInt8>& c) {
82
1.67k
        size_t size = a.size();
83
1.67k
        const A* __restrict a_pos = a.data();
84
1.67k
        UInt8* __restrict c_pos = c.data();
85
1.67k
        const A* __restrict a_end = a_pos + size;
86
87
4.68M
        while (a_pos < a_end) {
88
4.68M
            *c_pos = Op::apply(*a_pos, b);
89
4.68M
            ++a_pos;
90
4.68M
            ++c_pos;
91
4.68M
        }
92
1.67k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
10.3k
                                          PaddedPODArray<UInt8>& c) {
82
10.3k
        size_t size = a.size();
83
10.3k
        const A* __restrict a_pos = a.data();
84
10.3k
        UInt8* __restrict c_pos = c.data();
85
10.3k
        const A* __restrict a_end = a_pos + size;
86
87
75.3M
        while (a_pos < a_end) {
88
75.3M
            *c_pos = Op::apply(*a_pos, b);
89
75.3M
            ++a_pos;
90
75.3M
            ++c_pos;
91
75.3M
        }
92
10.3k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
611
                                          PaddedPODArray<UInt8>& c) {
82
611
        size_t size = a.size();
83
611
        const A* __restrict a_pos = a.data();
84
611
        UInt8* __restrict c_pos = c.data();
85
611
        const A* __restrict a_end = a_pos + size;
86
87
30.6k
        while (a_pos < a_end) {
88
30.0k
            *c_pos = Op::apply(*a_pos, b);
89
30.0k
            ++a_pos;
90
30.0k
            ++c_pos;
91
30.0k
        }
92
611
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
545
                                          PaddedPODArray<UInt8>& c) {
82
545
        size_t size = a.size();
83
545
        const A* __restrict a_pos = a.data();
84
545
        UInt8* __restrict c_pos = c.data();
85
545
        const A* __restrict a_end = a_pos + size;
86
87
32.6k
        while (a_pos < a_end) {
88
32.1k
            *c_pos = Op::apply(*a_pos, b);
89
32.1k
            ++a_pos;
90
32.1k
            ++c_pos;
91
32.1k
        }
92
545
    }
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
81
114
                                          PaddedPODArray<UInt8>& c) {
82
114
        size_t size = a.size();
83
114
        const A* __restrict a_pos = a.data();
84
114
        UInt8* __restrict c_pos = c.data();
85
114
        const A* __restrict a_end = a_pos + size;
86
87
140k
        while (a_pos < a_end) {
88
140k
            *c_pos = Op::apply(*a_pos, b);
89
140k
            ++a_pos;
90
140k
            ++c_pos;
91
140k
        }
92
114
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
397
                                          PaddedPODArray<UInt8>& c) {
82
397
        size_t size = a.size();
83
397
        const A* __restrict a_pos = a.data();
84
397
        UInt8* __restrict c_pos = c.data();
85
397
        const A* __restrict a_end = a_pos + size;
86
87
125k
        while (a_pos < a_end) {
88
125k
            *c_pos = Op::apply(*a_pos, b);
89
125k
            ++a_pos;
90
125k
            ++c_pos;
91
125k
        }
92
397
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
169
                                          PaddedPODArray<UInt8>& c) {
82
169
        size_t size = a.size();
83
169
        const A* __restrict a_pos = a.data();
84
169
        UInt8* __restrict c_pos = c.data();
85
169
        const A* __restrict a_end = a_pos + size;
86
87
170k
        while (a_pos < a_end) {
88
170k
            *c_pos = Op::apply(*a_pos, b);
89
170k
            ++a_pos;
90
170k
            ++c_pos;
91
170k
        }
92
169
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
436
                                          PaddedPODArray<UInt8>& c) {
82
436
        size_t size = a.size();
83
436
        const A* __restrict a_pos = a.data();
84
436
        UInt8* __restrict c_pos = c.data();
85
436
        const A* __restrict a_end = a_pos + size;
86
87
95.3k
        while (a_pos < a_end) {
88
94.9k
            *c_pos = Op::apply(*a_pos, b);
89
94.9k
            ++a_pos;
90
94.9k
            ++c_pos;
91
94.9k
        }
92
436
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
14.1k
                                          PaddedPODArray<UInt8>& c) {
82
14.1k
        size_t size = a.size();
83
14.1k
        const A* __restrict a_pos = a.data();
84
14.1k
        UInt8* __restrict c_pos = c.data();
85
14.1k
        const A* __restrict a_end = a_pos + size;
86
87
45.1M
        while (a_pos < a_end) {
88
45.1M
            *c_pos = Op::apply(*a_pos, b);
89
45.1M
            ++a_pos;
90
45.1M
            ++c_pos;
91
45.1M
        }
92
14.1k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
20.3k
                                          PaddedPODArray<UInt8>& c) {
82
20.3k
        size_t size = a.size();
83
20.3k
        const A* __restrict a_pos = a.data();
84
20.3k
        UInt8* __restrict c_pos = c.data();
85
20.3k
        const A* __restrict a_end = a_pos + size;
86
87
49.4M
        while (a_pos < a_end) {
88
49.4M
            *c_pos = Op::apply(*a_pos, b);
89
49.4M
            ++a_pos;
90
49.4M
            ++c_pos;
91
49.4M
        }
92
20.3k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
835
                                          PaddedPODArray<UInt8>& c) {
82
835
        size_t size = a.size();
83
835
        const A* __restrict a_pos = a.data();
84
835
        UInt8* __restrict c_pos = c.data();
85
835
        const A* __restrict a_end = a_pos + size;
86
87
41.1k
        while (a_pos < a_end) {
88
40.3k
            *c_pos = Op::apply(*a_pos, b);
89
40.3k
            ++a_pos;
90
40.3k
            ++c_pos;
91
40.3k
        }
92
835
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
905
                                          PaddedPODArray<UInt8>& c) {
82
905
        size_t size = a.size();
83
905
        const A* __restrict a_pos = a.data();
84
905
        UInt8* __restrict c_pos = c.data();
85
905
        const A* __restrict a_end = a_pos + size;
86
87
42.2k
        while (a_pos < a_end) {
88
41.3k
            *c_pos = Op::apply(*a_pos, b);
89
41.3k
            ++a_pos;
90
41.3k
            ++c_pos;
91
41.3k
        }
92
905
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
41
                                          PaddedPODArray<UInt8>& c) {
82
41
        size_t size = a.size();
83
41
        const A* __restrict a_pos = a.data();
84
41
        UInt8* __restrict c_pos = c.data();
85
41
        const A* __restrict a_end = a_pos + size;
86
87
96.5k
        while (a_pos < a_end) {
88
96.5k
            *c_pos = Op::apply(*a_pos, b);
89
96.5k
            ++a_pos;
90
96.5k
            ++c_pos;
91
96.5k
        }
92
41
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
39
                                          PaddedPODArray<UInt8>& c) {
82
39
        size_t size = a.size();
83
39
        const A* __restrict a_pos = a.data();
84
39
        UInt8* __restrict c_pos = c.data();
85
39
        const A* __restrict a_end = a_pos + size;
86
87
112k
        while (a_pos < a_end) {
88
112k
            *c_pos = Op::apply(*a_pos, b);
89
112k
            ++a_pos;
90
112k
            ++c_pos;
91
112k
        }
92
39
    }
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
10
                                          PaddedPODArray<UInt8>& c) {
82
10
        size_t size = a.size();
83
10
        const A* __restrict a_pos = a.data();
84
10
        UInt8* __restrict c_pos = c.data();
85
10
        const A* __restrict a_end = a_pos + size;
86
87
110
        while (a_pos < a_end) {
88
100
            *c_pos = Op::apply(*a_pos, b);
89
100
            ++a_pos;
90
100
            ++c_pos;
91
100
        }
92
10
    }
_ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
10
                                          PaddedPODArray<UInt8>& c) {
82
10
        size_t size = a.size();
83
10
        const A* __restrict a_pos = a.data();
84
10
        UInt8* __restrict c_pos = c.data();
85
10
        const A* __restrict a_end = a_pos + size;
86
87
110
        while (a_pos < a_end) {
88
100
            *c_pos = Op::apply(*a_pos, b);
89
100
            ++a_pos;
90
100
            ++c_pos;
91
100
        }
92
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
81
108
                                          PaddedPODArray<UInt8>& c) {
82
108
        size_t size = a.size();
83
108
        const A* __restrict a_pos = a.data();
84
108
        UInt8* __restrict c_pos = c.data();
85
108
        const A* __restrict a_end = a_pos + size;
86
87
218
        while (a_pos < a_end) {
88
110
            *c_pos = Op::apply(*a_pos, b);
89
110
            ++a_pos;
90
110
            ++c_pos;
91
110
        }
92
108
    }
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
104
                                          PaddedPODArray<UInt8>& c) {
82
104
        size_t size = a.size();
83
104
        const A* __restrict a_pos = a.data();
84
104
        UInt8* __restrict c_pos = c.data();
85
104
        const A* __restrict a_end = a_pos + size;
86
87
208
        while (a_pos < a_end) {
88
104
            *c_pos = Op::apply(*a_pos, b);
89
104
            ++a_pos;
90
104
            ++c_pos;
91
104
        }
92
104
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
120
                                          PaddedPODArray<UInt8>& c) {
82
120
        size_t size = a.size();
83
120
        const A* __restrict a_pos = a.data();
84
120
        UInt8* __restrict c_pos = c.data();
85
120
        const A* __restrict a_end = a_pos + size;
86
87
276k
        while (a_pos < a_end) {
88
276k
            *c_pos = Op::apply(*a_pos, b);
89
276k
            ++a_pos;
90
276k
            ++c_pos;
91
276k
        }
92
120
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
118
                                          PaddedPODArray<UInt8>& c) {
82
118
        size_t size = a.size();
83
118
        const A* __restrict a_pos = a.data();
84
118
        UInt8* __restrict c_pos = c.data();
85
118
        const A* __restrict a_end = a_pos + size;
86
87
275k
        while (a_pos < a_end) {
88
275k
            *c_pos = Op::apply(*a_pos, b);
89
275k
            ++a_pos;
90
275k
            ++c_pos;
91
275k
        }
92
118
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
93
94
33.7k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
33.7k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
33.7k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
276
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
276
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
276
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
36
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
36
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
36
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
27.4k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
27.4k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
27.4k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
730
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
730
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
730
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
16
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
16
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
16
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
748
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
748
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
748
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
252
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
252
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
252
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
228
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
228
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
228
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
2.83k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
2.83k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
2.83k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
107
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
107
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
107
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
53
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
53
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
53
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
94
6
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
6
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
6
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
264
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
264
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
264
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
25
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
25
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
25
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
84
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
84
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
84
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
77
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
77
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
77
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
94
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
5
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
574
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
574
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
574
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
48
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
48
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
48
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
1
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
1
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
97
};
98
99
/// Generic version, implemented for columns of same type.
100
template <typename Op>
101
struct GenericComparisonImpl {
102
9
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
20
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
11
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
11
        }
106
9
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
4
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
10
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
6
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
6
        }
106
4
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
1
        }
106
1
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
1
        }
106
1
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
3
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
6
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
3
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
3
        }
106
3
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
107
108
150
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
150
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
503k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
503k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
503k
        }
113
150
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
13
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
13
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
31
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
18
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
18
        }
113
13
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
8
        }
113
8
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
8
        }
113
8
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
8
        }
113
8
    }
_ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
58
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
58
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
267k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
267k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
267k
        }
113
58
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
55
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
55
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
235k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
235k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
235k
        }
113
55
    }
114
115
0
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
116
0
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
117
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
118
};
119
120
template <typename Op>
121
struct StringComparisonImpl {
122
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
123
                                                      const ColumnString::Offsets& a_offsets,
124
                                                      const ColumnString::Chars& b_data,
125
                                                      const ColumnString::Offsets& b_offsets,
126
373
                                                      PaddedPODArray<UInt8>& c) {
127
373
        size_t size = a_offsets.size();
128
373
        ColumnString::Offset prev_a_offset = 0;
129
373
        ColumnString::Offset prev_b_offset = 0;
130
373
        const auto* a_pos = a_data.data();
131
373
        const auto* b_pos = b_data.data();
132
133
949
        for (size_t i = 0; i < size; ++i) {
134
576
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
576
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
576
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
576
                             0);
138
139
576
            prev_a_offset = a_offsets[i];
140
576
            prev_b_offset = b_offsets[i];
141
576
        }
142
373
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
2
                                                      PaddedPODArray<UInt8>& c) {
127
2
        size_t size = a_offsets.size();
128
2
        ColumnString::Offset prev_a_offset = 0;
129
2
        ColumnString::Offset prev_b_offset = 0;
130
2
        const auto* a_pos = a_data.data();
131
2
        const auto* b_pos = b_data.data();
132
133
49
        for (size_t i = 0; i < size; ++i) {
134
47
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
47
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
47
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
47
                             0);
138
139
47
            prev_a_offset = a_offsets[i];
140
47
            prev_b_offset = b_offsets[i];
141
47
        }
142
2
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
36
                                                      PaddedPODArray<UInt8>& c) {
127
36
        size_t size = a_offsets.size();
128
36
        ColumnString::Offset prev_a_offset = 0;
129
36
        ColumnString::Offset prev_b_offset = 0;
130
36
        const auto* a_pos = a_data.data();
131
36
        const auto* b_pos = b_data.data();
132
133
230
        for (size_t i = 0; i < size; ++i) {
134
194
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
194
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
194
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
194
                             0);
138
139
194
            prev_a_offset = a_offsets[i];
140
194
            prev_b_offset = b_offsets[i];
141
194
        }
142
36
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
335
                                                      PaddedPODArray<UInt8>& c) {
127
335
        size_t size = a_offsets.size();
128
335
        ColumnString::Offset prev_a_offset = 0;
129
335
        ColumnString::Offset prev_b_offset = 0;
130
335
        const auto* a_pos = a_data.data();
131
335
        const auto* b_pos = b_data.data();
132
133
670
        for (size_t i = 0; i < size; ++i) {
134
335
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
335
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
335
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
335
                             0);
138
139
335
            prev_a_offset = a_offsets[i];
140
335
            prev_b_offset = b_offsets[i];
141
335
        }
142
335
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
143
144
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
145
                                                 const ColumnString::Offsets& a_offsets,
146
                                                 const ColumnString::Chars& b_data,
147
                                                 ColumnString::Offset b_size,
148
2.92k
                                                 PaddedPODArray<UInt8>& c) {
149
2.92k
        size_t size = a_offsets.size();
150
2.92k
        ColumnString::Offset prev_a_offset = 0;
151
2.92k
        const auto* a_pos = a_data.data();
152
2.92k
        const auto* b_pos = b_data.data();
153
154
1.45M
        for (size_t i = 0; i < size; ++i) {
155
1.44M
            c[i] = Op::apply(
156
1.44M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
1.44M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
1.44M
                    0);
159
160
1.44M
            prev_a_offset = a_offsets[i];
161
1.44M
        }
162
2.92k
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
198
                                                 PaddedPODArray<UInt8>& c) {
149
198
        size_t size = a_offsets.size();
150
198
        ColumnString::Offset prev_a_offset = 0;
151
198
        const auto* a_pos = a_data.data();
152
198
        const auto* b_pos = b_data.data();
153
154
323k
        for (size_t i = 0; i < size; ++i) {
155
323k
            c[i] = Op::apply(
156
323k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
323k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
323k
                    0);
159
160
323k
            prev_a_offset = a_offsets[i];
161
323k
        }
162
198
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
253
                                                 PaddedPODArray<UInt8>& c) {
149
253
        size_t size = a_offsets.size();
150
253
        ColumnString::Offset prev_a_offset = 0;
151
253
        const auto* a_pos = a_data.data();
152
253
        const auto* b_pos = b_data.data();
153
154
70.9k
        for (size_t i = 0; i < size; ++i) {
155
70.7k
            c[i] = Op::apply(
156
70.7k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
70.7k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
70.7k
                    0);
159
160
70.7k
            prev_a_offset = a_offsets[i];
161
70.7k
        }
162
253
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
655
                                                 PaddedPODArray<UInt8>& c) {
149
655
        size_t size = a_offsets.size();
150
655
        ColumnString::Offset prev_a_offset = 0;
151
655
        const auto* a_pos = a_data.data();
152
655
        const auto* b_pos = b_data.data();
153
154
524k
        for (size_t i = 0; i < size; ++i) {
155
523k
            c[i] = Op::apply(
156
523k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
523k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
523k
                    0);
159
160
523k
            prev_a_offset = a_offsets[i];
161
523k
        }
162
655
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
1.81k
                                                 PaddedPODArray<UInt8>& c) {
149
1.81k
        size_t size = a_offsets.size();
150
1.81k
        ColumnString::Offset prev_a_offset = 0;
151
1.81k
        const auto* a_pos = a_data.data();
152
1.81k
        const auto* b_pos = b_data.data();
153
154
531k
        for (size_t i = 0; i < size; ++i) {
155
529k
            c[i] = Op::apply(
156
529k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
529k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
529k
                    0);
159
160
529k
            prev_a_offset = a_offsets[i];
161
529k
        }
162
1.81k
    }
163
164
    static void constant_string_vector(const ColumnString::Chars& a_data,
165
                                       ColumnString::Offset a_size,
166
                                       const ColumnString::Chars& b_data,
167
                                       const ColumnString::Offsets& b_offsets,
168
6
                                       PaddedPODArray<UInt8>& c) {
169
6
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
170
6
                                                                               a_data, a_size, c);
171
6
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Line
Count
Source
168
6
                                       PaddedPODArray<UInt8>& c) {
169
6
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
170
6
                                                                               a_data, a_size, c);
171
6
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
172
};
173
174
template <bool positive>
175
struct StringEqualsImpl {
176
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
177
                                                      const ColumnString::Offsets& a_offsets,
178
                                                      const ColumnString::Chars& b_data,
179
                                                      const ColumnString::Offsets& b_offsets,
180
440
                                                      PaddedPODArray<UInt8>& c) {
181
440
        size_t size = a_offsets.size();
182
440
        ColumnString::Offset prev_a_offset = 0;
183
440
        ColumnString::Offset prev_b_offset = 0;
184
440
        const auto* a_pos = a_data.data();
185
440
        const auto* b_pos = b_data.data();
186
187
1.35k
        for (size_t i = 0; i < size; ++i) {
188
911
            auto a_size = a_offsets[i] - prev_a_offset;
189
911
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
911
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
911
                                                               b_pos + prev_b_offset, b_size);
193
194
911
            prev_a_offset = a_offsets[i];
195
911
            prev_b_offset = b_offsets[i];
196
911
        }
197
440
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
439
                                                      PaddedPODArray<UInt8>& c) {
181
439
        size_t size = a_offsets.size();
182
439
        ColumnString::Offset prev_a_offset = 0;
183
439
        ColumnString::Offset prev_b_offset = 0;
184
439
        const auto* a_pos = a_data.data();
185
439
        const auto* b_pos = b_data.data();
186
187
1.34k
        for (size_t i = 0; i < size; ++i) {
188
907
            auto a_size = a_offsets[i] - prev_a_offset;
189
907
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
907
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
907
                                                               b_pos + prev_b_offset, b_size);
193
194
907
            prev_a_offset = a_offsets[i];
195
907
            prev_b_offset = b_offsets[i];
196
907
        }
197
439
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
1
                                                      PaddedPODArray<UInt8>& c) {
181
1
        size_t size = a_offsets.size();
182
1
        ColumnString::Offset prev_a_offset = 0;
183
1
        ColumnString::Offset prev_b_offset = 0;
184
1
        const auto* a_pos = a_data.data();
185
1
        const auto* b_pos = b_data.data();
186
187
5
        for (size_t i = 0; i < size; ++i) {
188
4
            auto a_size = a_offsets[i] - prev_a_offset;
189
4
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
4
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
4
                                                               b_pos + prev_b_offset, b_size);
193
194
4
            prev_a_offset = a_offsets[i];
195
4
            prev_b_offset = b_offsets[i];
196
4
        }
197
1
    }
198
199
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
200
                                                 const ColumnString::Offsets& a_offsets,
201
                                                 const ColumnString::Chars& b_data,
202
                                                 ColumnString::Offset b_size,
203
23.5k
                                                 PaddedPODArray<UInt8>& c) {
204
23.5k
        size_t size = a_offsets.size();
205
23.5k
        if (b_size == 0) {
206
1
            auto* __restrict data = c.data();
207
1
            auto* __restrict offsets = a_offsets.data();
208
209
1
            ColumnString::Offset prev_a_offset = 0;
210
4
            for (size_t i = 0; i < size; ++i) {
211
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
3
                prev_a_offset = offsets[i];
213
3
            }
214
23.5k
        } else {
215
23.5k
            ColumnString::Offset prev_a_offset = 0;
216
23.5k
            const auto* a_pos = a_data.data();
217
23.5k
            const auto* b_pos = b_data.data();
218
8.83M
            for (size_t i = 0; i < size; ++i) {
219
8.81M
                auto a_size = a_offsets[i] - prev_a_offset;
220
8.81M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
8.81M
                                                                   b_pos, b_size);
222
8.81M
                prev_a_offset = a_offsets[i];
223
8.81M
            }
224
23.5k
        }
225
23.5k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
22.0k
                                                 PaddedPODArray<UInt8>& c) {
204
22.0k
        size_t size = a_offsets.size();
205
22.0k
        if (b_size == 0) {
206
0
            auto* __restrict data = c.data();
207
0
            auto* __restrict offsets = a_offsets.data();
208
209
0
            ColumnString::Offset prev_a_offset = 0;
210
0
            for (size_t i = 0; i < size; ++i) {
211
0
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
0
                prev_a_offset = offsets[i];
213
0
            }
214
22.0k
        } else {
215
22.0k
            ColumnString::Offset prev_a_offset = 0;
216
22.0k
            const auto* a_pos = a_data.data();
217
22.0k
            const auto* b_pos = b_data.data();
218
7.88M
            for (size_t i = 0; i < size; ++i) {
219
7.85M
                auto a_size = a_offsets[i] - prev_a_offset;
220
7.85M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
7.85M
                                                                   b_pos, b_size);
222
7.85M
                prev_a_offset = a_offsets[i];
223
7.85M
            }
224
22.0k
        }
225
22.0k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
1.50k
                                                 PaddedPODArray<UInt8>& c) {
204
1.50k
        size_t size = a_offsets.size();
205
1.50k
        if (b_size == 0) {
206
1
            auto* __restrict data = c.data();
207
1
            auto* __restrict offsets = a_offsets.data();
208
209
1
            ColumnString::Offset prev_a_offset = 0;
210
4
            for (size_t i = 0; i < size; ++i) {
211
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
3
                prev_a_offset = offsets[i];
213
3
            }
214
1.49k
        } else {
215
1.49k
            ColumnString::Offset prev_a_offset = 0;
216
1.49k
            const auto* a_pos = a_data.data();
217
1.49k
            const auto* b_pos = b_data.data();
218
955k
            for (size_t i = 0; i < size; ++i) {
219
953k
                auto a_size = a_offsets[i] - prev_a_offset;
220
953k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
953k
                                                                   b_pos, b_size);
222
953k
                prev_a_offset = a_offsets[i];
223
953k
            }
224
1.49k
        }
225
1.50k
    }
226
227
    static void NO_INLINE constant_string_vector(const ColumnString::Chars& a_data,
228
                                                 ColumnString::Offset a_size,
229
                                                 const ColumnString::Chars& b_data,
230
                                                 const ColumnString::Offsets& b_offsets,
231
0
                                                 PaddedPODArray<UInt8>& c) {
232
0
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
233
0
    }
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
234
};
235
236
template <PrimitiveType PT>
237
struct StringComparisonImpl<EqualsOp<PT>> : StringEqualsImpl<true> {};
238
239
template <PrimitiveType PT>
240
struct StringComparisonImpl<NotEqualsOp<PT>> : StringEqualsImpl<false> {};
241
242
struct NameEquals {
243
    static constexpr auto name = "eq";
244
};
245
struct NameNotEquals {
246
    static constexpr auto name = "ne";
247
};
248
struct NameLess {
249
    static constexpr auto name = "lt";
250
};
251
struct NameGreater {
252
    static constexpr auto name = "gt";
253
};
254
struct NameLessOrEquals {
255
    static constexpr auto name = "le";
256
};
257
struct NameGreaterOrEquals {
258
    static constexpr auto name = "ge";
259
};
260
261
template <template <PrimitiveType> class Op, typename Name>
262
class FunctionComparison : public IFunction {
263
public:
264
    static constexpr auto name = Name::name;
265
462k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
265
426k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
265
1.33k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
265
6.25k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
265
10.6k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
265
3.13k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
265
14.0k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
266
267
462k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
267
427k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
267
1.33k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
267
6.25k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
267
10.6k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
267
3.13k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
267
14.0k
    FunctionComparison() = default;
268
269
1.22M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
269
1.18M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
269
1.18k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
269
6.56k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
269
17.7k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
269
3.25k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
269
16.7k
    double execute_cost() const override { return 0.5; }
270
271
private:
272
    template <PrimitiveType PT>
273
    Status execute_num_type(Block& block, uint32_t result, const ColumnPtr& col_left_ptr,
274
244k
                            const ColumnPtr& col_right_ptr) const {
275
244k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
244k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
244k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
244k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
244k
        DCHECK(!(left_is_const && right_is_const));
282
283
244k
        if (!left_is_const && !right_is_const) {
284
7.93k
            auto col_res = ColumnUInt8::create();
285
286
7.93k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
7.93k
            vec_res.resize(col_left->get_data().size());
288
7.93k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
7.93k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
7.93k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
7.93k
                                                     vec_res);
292
293
7.93k
            block.replace_by_position(result, std::move(col_res));
294
236k
        } else if (!left_is_const && right_is_const) {
295
202k
            auto col_res = ColumnUInt8::create();
296
297
202k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
202k
            vec_res.resize(col_left->size());
299
202k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
202k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
202k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
202k
                                                       col_right->get_element(0), vec_res);
303
304
202k
            block.replace_by_position(result, std::move(col_res));
305
202k
        } else if (left_is_const && !right_is_const) {
306
33.7k
            auto col_res = ColumnUInt8::create();
307
308
33.7k
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
33.7k
            vec_res.resize(col_right->size());
310
33.7k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
33.7k
                              typename PrimitiveTypeTraits<PT>::CppType,
312
33.7k
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
33.7k
                                                       col_right->get_data(), vec_res);
314
315
33.7k
            block.replace_by_position(result, std::move(col_res));
316
33.7k
        }
317
244k
        return Status::OK();
318
244k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.60k
                            const ColumnPtr& col_right_ptr) const {
275
1.60k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.60k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.60k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.60k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.60k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.60k
        if (!left_is_const && !right_is_const) {
284
76
            auto col_res = ColumnUInt8::create();
285
286
76
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
76
            vec_res.resize(col_left->get_data().size());
288
76
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
76
                              typename PrimitiveTypeTraits<PT>::CppType,
290
76
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
76
                                                     vec_res);
292
293
76
            block.replace_by_position(result, std::move(col_res));
294
1.53k
        } else if (!left_is_const && right_is_const) {
295
1.53k
            auto col_res = ColumnUInt8::create();
296
297
1.53k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.53k
            vec_res.resize(col_left->size());
299
1.53k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.53k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.53k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.53k
                                                       col_right->get_element(0), vec_res);
303
304
1.53k
            block.replace_by_position(result, std::move(col_res));
305
1.53k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.60k
        return Status::OK();
318
1.60k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.23k
                            const ColumnPtr& col_right_ptr) const {
275
1.23k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.23k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.23k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.23k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.23k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.23k
        if (!left_is_const && !right_is_const) {
284
228
            auto col_res = ColumnUInt8::create();
285
286
228
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
228
            vec_res.resize(col_left->get_data().size());
288
228
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
228
                              typename PrimitiveTypeTraits<PT>::CppType,
290
228
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
228
                                                     vec_res);
292
293
228
            block.replace_by_position(result, std::move(col_res));
294
1.01k
        } else if (!left_is_const && right_is_const) {
295
1.01k
            auto col_res = ColumnUInt8::create();
296
297
1.01k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.01k
            vec_res.resize(col_left->size());
299
1.01k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.01k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.01k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.01k
                                                       col_right->get_element(0), vec_res);
303
304
1.01k
            block.replace_by_position(result, std::move(col_res));
305
1.01k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.23k
        return Status::OK();
318
1.23k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
639
                            const ColumnPtr& col_right_ptr) const {
275
639
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
639
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
639
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
639
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
639
        DCHECK(!(left_is_const && right_is_const));
282
283
640
        if (!left_is_const && !right_is_const) {
284
274
            auto col_res = ColumnUInt8::create();
285
286
274
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
274
            vec_res.resize(col_left->get_data().size());
288
274
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
274
                              typename PrimitiveTypeTraits<PT>::CppType,
290
274
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
274
                                                     vec_res);
292
293
274
            block.replace_by_position(result, std::move(col_res));
294
367
        } else if (!left_is_const && right_is_const) {
295
367
            auto col_res = ColumnUInt8::create();
296
297
367
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
367
            vec_res.resize(col_left->size());
299
367
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
367
                              typename PrimitiveTypeTraits<PT>::CppType,
301
367
                              Op<PT>>::vector_constant(col_left->get_data(),
302
367
                                                       col_right->get_element(0), vec_res);
303
304
367
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
639
        return Status::OK();
318
639
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
6.88k
                            const ColumnPtr& col_right_ptr) const {
275
6.88k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
6.88k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
6.88k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
6.88k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
6.88k
        DCHECK(!(left_is_const && right_is_const));
282
283
6.88k
        if (!left_is_const && !right_is_const) {
284
163
            auto col_res = ColumnUInt8::create();
285
286
163
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
163
            vec_res.resize(col_left->get_data().size());
288
163
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
163
                              typename PrimitiveTypeTraits<PT>::CppType,
290
163
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
163
                                                     vec_res);
292
293
163
            block.replace_by_position(result, std::move(col_res));
294
6.71k
        } else if (!left_is_const && right_is_const) {
295
6.44k
            auto col_res = ColumnUInt8::create();
296
297
6.44k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6.44k
            vec_res.resize(col_left->size());
299
6.44k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6.44k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6.44k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6.44k
                                                       col_right->get_element(0), vec_res);
303
304
6.44k
            block.replace_by_position(result, std::move(col_res));
305
6.44k
        } else if (left_is_const && !right_is_const) {
306
276
            auto col_res = ColumnUInt8::create();
307
308
276
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
276
            vec_res.resize(col_right->size());
310
276
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
276
                              typename PrimitiveTypeTraits<PT>::CppType,
312
276
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
276
                                                       col_right->get_data(), vec_res);
314
315
276
            block.replace_by_position(result, std::move(col_res));
316
276
        }
317
6.88k
        return Status::OK();
318
6.88k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.43k
                            const ColumnPtr& col_right_ptr) const {
275
1.43k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.43k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.43k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.43k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.43k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.43k
        if (!left_is_const && !right_is_const) {
284
84
            auto col_res = ColumnUInt8::create();
285
286
84
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
84
            vec_res.resize(col_left->get_data().size());
288
84
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
84
                              typename PrimitiveTypeTraits<PT>::CppType,
290
84
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
84
                                                     vec_res);
292
293
84
            block.replace_by_position(result, std::move(col_res));
294
1.35k
        } else if (!left_is_const && right_is_const) {
295
1.31k
            auto col_res = ColumnUInt8::create();
296
297
1.31k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.31k
            vec_res.resize(col_left->size());
299
1.31k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.31k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.31k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.31k
                                                       col_right->get_element(0), vec_res);
303
304
1.31k
            block.replace_by_position(result, std::move(col_res));
305
1.31k
        } else if (left_is_const && !right_is_const) {
306
36
            auto col_res = ColumnUInt8::create();
307
308
36
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
36
            vec_res.resize(col_right->size());
310
36
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
36
                              typename PrimitiveTypeTraits<PT>::CppType,
312
36
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
36
                                                       col_right->get_data(), vec_res);
314
315
36
            block.replace_by_position(result, std::move(col_res));
316
36
        }
317
1.43k
        return Status::OK();
318
1.43k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
85.1k
                            const ColumnPtr& col_right_ptr) const {
275
85.1k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
85.1k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
85.1k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
85.1k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
85.1k
        DCHECK(!(left_is_const && right_is_const));
282
283
85.1k
        if (!left_is_const && !right_is_const) {
284
340
            auto col_res = ColumnUInt8::create();
285
286
340
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
340
            vec_res.resize(col_left->get_data().size());
288
340
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
340
                              typename PrimitiveTypeTraits<PT>::CppType,
290
340
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
340
                                                     vec_res);
292
293
340
            block.replace_by_position(result, std::move(col_res));
294
84.8k
        } else if (!left_is_const && right_is_const) {
295
57.4k
            auto col_res = ColumnUInt8::create();
296
297
57.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
57.4k
            vec_res.resize(col_left->size());
299
57.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
57.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
57.4k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
57.4k
                                                       col_right->get_element(0), vec_res);
303
304
57.4k
            block.replace_by_position(result, std::move(col_res));
305
57.4k
        } else if (left_is_const && !right_is_const) {
306
27.4k
            auto col_res = ColumnUInt8::create();
307
308
27.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
27.4k
            vec_res.resize(col_right->size());
310
27.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
27.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
312
27.4k
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
27.4k
                                                       col_right->get_data(), vec_res);
314
315
27.4k
            block.replace_by_position(result, std::move(col_res));
316
27.4k
        }
317
85.1k
        return Status::OK();
318
85.1k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
23.6k
                            const ColumnPtr& col_right_ptr) const {
275
23.6k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
23.6k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
23.6k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
23.6k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
23.6k
        DCHECK(!(left_is_const && right_is_const));
282
283
23.6k
        if (!left_is_const && !right_is_const) {
284
266
            auto col_res = ColumnUInt8::create();
285
286
266
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
266
            vec_res.resize(col_left->get_data().size());
288
266
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
266
                              typename PrimitiveTypeTraits<PT>::CppType,
290
266
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
266
                                                     vec_res);
292
293
266
            block.replace_by_position(result, std::move(col_res));
294
23.3k
        } else if (!left_is_const && right_is_const) {
295
22.6k
            auto col_res = ColumnUInt8::create();
296
297
22.6k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
22.6k
            vec_res.resize(col_left->size());
299
22.6k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
22.6k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
22.6k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
22.6k
                                                       col_right->get_element(0), vec_res);
303
304
22.6k
            block.replace_by_position(result, std::move(col_res));
305
22.6k
        } else if (left_is_const && !right_is_const) {
306
730
            auto col_res = ColumnUInt8::create();
307
308
730
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
730
            vec_res.resize(col_right->size());
310
730
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
730
                              typename PrimitiveTypeTraits<PT>::CppType,
312
730
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
730
                                                       col_right->get_data(), vec_res);
314
315
730
            block.replace_by_position(result, std::move(col_res));
316
730
        }
317
23.6k
        return Status::OK();
318
23.6k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
157
                            const ColumnPtr& col_right_ptr) const {
275
157
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
157
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
157
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
157
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
157
        DCHECK(!(left_is_const && right_is_const));
282
283
157
        if (!left_is_const && !right_is_const) {
284
84
            auto col_res = ColumnUInt8::create();
285
286
84
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
84
            vec_res.resize(col_left->get_data().size());
288
84
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
84
                              typename PrimitiveTypeTraits<PT>::CppType,
290
84
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
84
                                                     vec_res);
292
293
84
            block.replace_by_position(result, std::move(col_res));
294
84
        } else if (!left_is_const && right_is_const) {
295
57
            auto col_res = ColumnUInt8::create();
296
297
57
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
57
            vec_res.resize(col_left->size());
299
57
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
57
                              typename PrimitiveTypeTraits<PT>::CppType,
301
57
                              Op<PT>>::vector_constant(col_left->get_data(),
302
57
                                                       col_right->get_element(0), vec_res);
303
304
57
            block.replace_by_position(result, std::move(col_res));
305
57
        } else if (left_is_const && !right_is_const) {
306
16
            auto col_res = ColumnUInt8::create();
307
308
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
16
            vec_res.resize(col_right->size());
310
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
16
                              typename PrimitiveTypeTraits<PT>::CppType,
312
16
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
16
                                                       col_right->get_data(), vec_res);
314
315
16
            block.replace_by_position(result, std::move(col_res));
316
16
        }
317
157
        return Status::OK();
318
157
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
32
                            const ColumnPtr& col_right_ptr) const {
275
32
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
32
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
32
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
32
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
32
        DCHECK(!(left_is_const && right_is_const));
282
283
32
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
16
            auto col_res = ColumnUInt8::create();
296
297
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
16
            vec_res.resize(col_left->size());
299
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
16
                              typename PrimitiveTypeTraits<PT>::CppType,
301
16
                              Op<PT>>::vector_constant(col_left->get_data(),
302
16
                                                       col_right->get_element(0), vec_res);
303
304
16
            block.replace_by_position(result, std::move(col_res));
305
16
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
32
        return Status::OK();
318
32
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
30
                            const ColumnPtr& col_right_ptr) const {
275
30
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
30
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
30
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
30
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
30
        DCHECK(!(left_is_const && right_is_const));
282
283
30
        if (!left_is_const && !right_is_const) {
284
24
            auto col_res = ColumnUInt8::create();
285
286
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
24
            vec_res.resize(col_left->get_data().size());
288
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
24
                              typename PrimitiveTypeTraits<PT>::CppType,
290
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
24
                                                     vec_res);
292
293
24
            block.replace_by_position(result, std::move(col_res));
294
24
        } else if (!left_is_const && right_is_const) {
295
6
            auto col_res = ColumnUInt8::create();
296
297
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6
            vec_res.resize(col_left->size());
299
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6
                                                       col_right->get_element(0), vec_res);
303
304
6
            block.replace_by_position(result, std::move(col_res));
305
6
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
30
        return Status::OK();
318
30
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
108
                            const ColumnPtr& col_right_ptr) const {
275
108
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
108
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
108
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
108
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
108
        DCHECK(!(left_is_const && right_is_const));
282
283
108
        if (!left_is_const && !right_is_const) {
284
104
            auto col_res = ColumnUInt8::create();
285
286
104
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
104
            vec_res.resize(col_left->get_data().size());
288
104
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
104
                              typename PrimitiveTypeTraits<PT>::CppType,
290
104
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
104
                                                     vec_res);
292
293
104
            block.replace_by_position(result, std::move(col_res));
294
104
        } else if (!left_is_const && right_is_const) {
295
4
            auto col_res = ColumnUInt8::create();
296
297
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
4
            vec_res.resize(col_left->size());
299
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
4
                              typename PrimitiveTypeTraits<PT>::CppType,
301
4
                              Op<PT>>::vector_constant(col_left->get_data(),
302
4
                                                       col_right->get_element(0), vec_res);
303
304
4
            block.replace_by_position(result, std::move(col_res));
305
4
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
108
        return Status::OK();
318
108
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
382
                            const ColumnPtr& col_right_ptr) const {
275
382
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
382
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
382
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
382
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
382
        DCHECK(!(left_is_const && right_is_const));
282
283
382
        if (!left_is_const && !right_is_const) {
284
105
            auto col_res = ColumnUInt8::create();
285
286
105
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
105
            vec_res.resize(col_left->get_data().size());
288
105
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
105
                              typename PrimitiveTypeTraits<PT>::CppType,
290
105
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
105
                                                     vec_res);
292
293
105
            block.replace_by_position(result, std::move(col_res));
294
277
        } else if (!left_is_const && right_is_const) {
295
277
            auto col_res = ColumnUInt8::create();
296
297
277
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
277
            vec_res.resize(col_left->size());
299
277
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
277
                              typename PrimitiveTypeTraits<PT>::CppType,
301
277
                              Op<PT>>::vector_constant(col_left->get_data(),
302
277
                                                       col_right->get_element(0), vec_res);
303
304
277
            block.replace_by_position(result, std::move(col_res));
305
277
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
382
        return Status::OK();
318
382
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4
                            const ColumnPtr& col_right_ptr) const {
275
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4
        DCHECK(!(left_is_const && right_is_const));
282
283
4
        if (!left_is_const && !right_is_const) {
284
4
            auto col_res = ColumnUInt8::create();
285
286
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
4
            vec_res.resize(col_left->get_data().size());
288
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
4
                              typename PrimitiveTypeTraits<PT>::CppType,
290
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
4
                                                     vec_res);
292
293
4
            block.replace_by_position(result, std::move(col_res));
294
4
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
4
        return Status::OK();
318
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
274
78
                            const ColumnPtr& col_right_ptr) const {
275
78
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
78
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
78
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
78
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
78
        DCHECK(!(left_is_const && right_is_const));
282
283
78
        if (!left_is_const && !right_is_const) {
284
39
            auto col_res = ColumnUInt8::create();
285
286
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
39
            vec_res.resize(col_left->get_data().size());
288
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
39
                              typename PrimitiveTypeTraits<PT>::CppType,
290
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
39
                                                     vec_res);
292
293
39
            block.replace_by_position(result, std::move(col_res));
294
39
        } else if (!left_is_const && right_is_const) {
295
39
            auto col_res = ColumnUInt8::create();
296
297
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
39
            vec_res.resize(col_left->size());
299
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
39
                              typename PrimitiveTypeTraits<PT>::CppType,
301
39
                              Op<PT>>::vector_constant(col_left->get_data(),
302
39
                                                       col_right->get_element(0), vec_res);
303
304
39
            block.replace_by_position(result, std::move(col_res));
305
39
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
78
        return Status::OK();
318
78
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
2
        } else if (!left_is_const && right_is_const) {
295
2
            auto col_res = ColumnUInt8::create();
296
297
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2
            vec_res.resize(col_left->size());
299
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2
                                                       col_right->get_element(0), vec_res);
303
304
2
            block.replace_by_position(result, std::move(col_res));
305
2
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
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
274
100
                            const ColumnPtr& col_right_ptr) const {
275
100
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
100
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
100
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
100
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
100
        DCHECK(!(left_is_const && right_is_const));
282
283
100
        if (!left_is_const && !right_is_const) {
284
56
            auto col_res = ColumnUInt8::create();
285
286
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
56
            vec_res.resize(col_left->get_data().size());
288
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
56
                              typename PrimitiveTypeTraits<PT>::CppType,
290
56
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
56
                                                     vec_res);
292
293
56
            block.replace_by_position(result, std::move(col_res));
294
56
        } else if (!left_is_const && right_is_const) {
295
44
            auto col_res = ColumnUInt8::create();
296
297
44
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
44
            vec_res.resize(col_left->size());
299
44
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
44
                              typename PrimitiveTypeTraits<PT>::CppType,
301
44
                              Op<PT>>::vector_constant(col_left->get_data(),
302
44
                                                       col_right->get_element(0), vec_res);
303
304
44
            block.replace_by_position(result, std::move(col_res));
305
44
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
100
        return Status::OK();
318
100
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
26
                            const ColumnPtr& col_right_ptr) const {
275
26
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
26
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
26
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
26
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
26
        DCHECK(!(left_is_const && right_is_const));
282
283
26
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
26
        } else if (!left_is_const && right_is_const) {
295
26
            auto col_res = ColumnUInt8::create();
296
297
26
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
26
            vec_res.resize(col_left->size());
299
26
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
26
                              typename PrimitiveTypeTraits<PT>::CppType,
301
26
                              Op<PT>>::vector_constant(col_left->get_data(),
302
26
                                                       col_right->get_element(0), vec_res);
303
304
26
            block.replace_by_position(result, std::move(col_res));
305
26
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
26
        return Status::OK();
318
26
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3.42k
                            const ColumnPtr& col_right_ptr) const {
275
3.42k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.42k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.42k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.42k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.42k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.42k
        if (!left_is_const && !right_is_const) {
284
570
            auto col_res = ColumnUInt8::create();
285
286
570
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
570
            vec_res.resize(col_left->get_data().size());
288
570
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
570
                              typename PrimitiveTypeTraits<PT>::CppType,
290
570
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
570
                                                     vec_res);
292
293
570
            block.replace_by_position(result, std::move(col_res));
294
2.85k
        } else if (!left_is_const && right_is_const) {
295
2.85k
            auto col_res = ColumnUInt8::create();
296
297
2.85k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2.85k
            vec_res.resize(col_left->size());
299
2.85k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2.85k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2.85k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2.85k
                                                       col_right->get_element(0), vec_res);
303
304
2.85k
            block.replace_by_position(result, std::move(col_res));
305
2.85k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3.42k
        return Status::OK();
318
3.42k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3.01k
                            const ColumnPtr& col_right_ptr) const {
275
3.01k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.01k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.01k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.01k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.01k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.01k
        if (!left_is_const && !right_is_const) {
284
333
            auto col_res = ColumnUInt8::create();
285
286
333
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
333
            vec_res.resize(col_left->get_data().size());
288
333
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
333
                              typename PrimitiveTypeTraits<PT>::CppType,
290
333
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
333
                                                     vec_res);
292
293
333
            block.replace_by_position(result, std::move(col_res));
294
2.68k
        } else if (!left_is_const && right_is_const) {
295
1.93k
            auto col_res = ColumnUInt8::create();
296
297
1.93k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.93k
            vec_res.resize(col_left->size());
299
1.93k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.93k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.93k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.93k
                                                       col_right->get_element(0), vec_res);
303
304
1.93k
            block.replace_by_position(result, std::move(col_res));
305
1.93k
        } else if (left_is_const && !right_is_const) {
306
748
            auto col_res = ColumnUInt8::create();
307
308
748
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
748
            vec_res.resize(col_right->size());
310
748
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
748
                              typename PrimitiveTypeTraits<PT>::CppType,
312
748
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
748
                                                       col_right->get_data(), vec_res);
314
315
748
            block.replace_by_position(result, std::move(col_res));
316
748
        }
317
3.01k
        return Status::OK();
318
3.01k
    }
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
274
48
                            const ColumnPtr& col_right_ptr) const {
275
48
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
48
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
48
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
48
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
48
        DCHECK(!(left_is_const && right_is_const));
282
283
48
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
28
        } else if (!left_is_const && right_is_const) {
295
28
            auto col_res = ColumnUInt8::create();
296
297
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
28
            vec_res.resize(col_left->size());
299
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
28
                              typename PrimitiveTypeTraits<PT>::CppType,
301
28
                              Op<PT>>::vector_constant(col_left->get_data(),
302
28
                                                       col_right->get_element(0), vec_res);
303
304
28
            block.replace_by_position(result, std::move(col_res));
305
28
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
48
        return Status::OK();
318
48
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
60
                            const ColumnPtr& col_right_ptr) const {
275
60
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
60
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
60
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
60
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
60
        DCHECK(!(left_is_const && right_is_const));
282
283
60
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
40
        } else if (!left_is_const && right_is_const) {
295
40
            auto col_res = ColumnUInt8::create();
296
297
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
40
            vec_res.resize(col_left->size());
299
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
40
                              typename PrimitiveTypeTraits<PT>::CppType,
301
40
                              Op<PT>>::vector_constant(col_left->get_data(),
302
40
                                                       col_right->get_element(0), vec_res);
303
304
40
            block.replace_by_position(result, std::move(col_res));
305
40
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
60
        return Status::OK();
318
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
274
1.31k
                            const ColumnPtr& col_right_ptr) const {
275
1.31k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.31k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.31k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.31k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.31k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.31k
        if (!left_is_const && !right_is_const) {
284
1.15k
            auto col_res = ColumnUInt8::create();
285
286
1.15k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.15k
            vec_res.resize(col_left->get_data().size());
288
1.15k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.15k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.15k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.15k
                                                     vec_res);
292
293
1.15k
            block.replace_by_position(result, std::move(col_res));
294
1.15k
        } else if (!left_is_const && right_is_const) {
295
157
            auto col_res = ColumnUInt8::create();
296
297
157
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
157
            vec_res.resize(col_left->size());
299
157
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
157
                              typename PrimitiveTypeTraits<PT>::CppType,
301
157
                              Op<PT>>::vector_constant(col_left->get_data(),
302
157
                                                       col_right->get_element(0), vec_res);
303
304
157
            block.replace_by_position(result, std::move(col_res));
305
157
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.31k
        return Status::OK();
318
1.31k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
94
                            const ColumnPtr& col_right_ptr) const {
275
94
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
94
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
94
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
94
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
94
        DCHECK(!(left_is_const && right_is_const));
282
283
94
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
94
        } else if (!left_is_const && right_is_const) {
295
94
            auto col_res = ColumnUInt8::create();
296
297
94
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
94
            vec_res.resize(col_left->size());
299
94
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
94
                              typename PrimitiveTypeTraits<PT>::CppType,
301
94
                              Op<PT>>::vector_constant(col_left->get_data(),
302
94
                                                       col_right->get_element(0), vec_res);
303
304
94
            block.replace_by_position(result, std::move(col_res));
305
94
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
94
        return Status::OK();
318
94
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
2
            auto col_res = ColumnUInt8::create();
285
286
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
2
            vec_res.resize(col_left->get_data().size());
288
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
2
                              typename PrimitiveTypeTraits<PT>::CppType,
290
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
2
                                                     vec_res);
292
293
2
            block.replace_by_position(result, std::move(col_res));
294
2
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.06k
                            const ColumnPtr& col_right_ptr) const {
275
1.06k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.06k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.06k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.06k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.06k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.06k
        if (!left_is_const && !right_is_const) {
284
38
            auto col_res = ColumnUInt8::create();
285
286
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
38
            vec_res.resize(col_left->get_data().size());
288
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
38
                              typename PrimitiveTypeTraits<PT>::CppType,
290
38
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
38
                                                     vec_res);
292
293
38
            block.replace_by_position(result, std::move(col_res));
294
1.02k
        } else if (!left_is_const && right_is_const) {
295
770
            auto col_res = ColumnUInt8::create();
296
297
770
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
770
            vec_res.resize(col_left->size());
299
770
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
770
                              typename PrimitiveTypeTraits<PT>::CppType,
301
770
                              Op<PT>>::vector_constant(col_left->get_data(),
302
770
                                                       col_right->get_element(0), vec_res);
303
304
770
            block.replace_by_position(result, std::move(col_res));
305
770
        } else if (left_is_const && !right_is_const) {
306
252
            auto col_res = ColumnUInt8::create();
307
308
252
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
252
            vec_res.resize(col_right->size());
310
252
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
252
                              typename PrimitiveTypeTraits<PT>::CppType,
312
252
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
252
                                                       col_right->get_data(), vec_res);
314
315
252
            block.replace_by_position(result, std::move(col_res));
316
252
        }
317
1.06k
        return Status::OK();
318
1.06k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.91k
                            const ColumnPtr& col_right_ptr) const {
275
1.91k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.91k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.91k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.91k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.91k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.91k
        if (!left_is_const && !right_is_const) {
284
110
            auto col_res = ColumnUInt8::create();
285
286
110
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
110
            vec_res.resize(col_left->get_data().size());
288
110
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
110
                              typename PrimitiveTypeTraits<PT>::CppType,
290
110
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
110
                                                     vec_res);
292
293
110
            block.replace_by_position(result, std::move(col_res));
294
1.80k
        } else if (!left_is_const && right_is_const) {
295
1.57k
            auto col_res = ColumnUInt8::create();
296
297
1.57k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.57k
            vec_res.resize(col_left->size());
299
1.57k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.57k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.57k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.57k
                                                       col_right->get_element(0), vec_res);
303
304
1.57k
            block.replace_by_position(result, std::move(col_res));
305
1.57k
        } else if (left_is_const && !right_is_const) {
306
228
            auto col_res = ColumnUInt8::create();
307
308
228
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
228
            vec_res.resize(col_right->size());
310
228
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
228
                              typename PrimitiveTypeTraits<PT>::CppType,
312
228
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
228
                                                       col_right->get_data(), vec_res);
314
315
228
            block.replace_by_position(result, std::move(col_res));
316
228
        }
317
1.91k
        return Status::OK();
318
1.91k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
29.0k
                            const ColumnPtr& col_right_ptr) const {
275
29.0k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
29.0k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
29.0k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
29.0k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
29.0k
        DCHECK(!(left_is_const && right_is_const));
282
283
29.0k
        if (!left_is_const && !right_is_const) {
284
39
            auto col_res = ColumnUInt8::create();
285
286
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
39
            vec_res.resize(col_left->get_data().size());
288
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
39
                              typename PrimitiveTypeTraits<PT>::CppType,
290
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
39
                                                     vec_res);
292
293
39
            block.replace_by_position(result, std::move(col_res));
294
28.9k
        } else if (!left_is_const && right_is_const) {
295
26.1k
            auto col_res = ColumnUInt8::create();
296
297
26.1k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
26.1k
            vec_res.resize(col_left->size());
299
26.1k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
26.1k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
26.1k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
26.1k
                                                       col_right->get_element(0), vec_res);
303
304
26.1k
            block.replace_by_position(result, std::move(col_res));
305
26.1k
        } else if (left_is_const && !right_is_const) {
306
2.83k
            auto col_res = ColumnUInt8::create();
307
308
2.83k
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
2.83k
            vec_res.resize(col_right->size());
310
2.83k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
2.83k
                              typename PrimitiveTypeTraits<PT>::CppType,
312
2.83k
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
2.83k
                                                       col_right->get_data(), vec_res);
314
315
2.83k
            block.replace_by_position(result, std::move(col_res));
316
2.83k
        }
317
29.0k
        return Status::OK();
318
29.0k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
13.5k
                            const ColumnPtr& col_right_ptr) const {
275
13.5k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
13.5k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
13.5k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
13.5k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
13.5k
        DCHECK(!(left_is_const && right_is_const));
282
283
13.5k
        if (!left_is_const && !right_is_const) {
284
64
            auto col_res = ColumnUInt8::create();
285
286
64
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
64
            vec_res.resize(col_left->get_data().size());
288
64
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
64
                              typename PrimitiveTypeTraits<PT>::CppType,
290
64
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
64
                                                     vec_res);
292
293
64
            block.replace_by_position(result, std::move(col_res));
294
13.4k
        } else if (!left_is_const && right_is_const) {
295
13.3k
            auto col_res = ColumnUInt8::create();
296
297
13.3k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
13.3k
            vec_res.resize(col_left->size());
299
13.3k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
13.3k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
13.3k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
13.3k
                                                       col_right->get_element(0), vec_res);
303
304
13.3k
            block.replace_by_position(result, std::move(col_res));
305
13.3k
        } else if (left_is_const && !right_is_const) {
306
107
            auto col_res = ColumnUInt8::create();
307
308
107
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
107
            vec_res.resize(col_right->size());
310
107
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
107
                              typename PrimitiveTypeTraits<PT>::CppType,
312
107
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
107
                                                       col_right->get_data(), vec_res);
314
315
107
            block.replace_by_position(result, std::move(col_res));
316
107
        }
317
13.5k
        return Status::OK();
318
13.5k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
257
                            const ColumnPtr& col_right_ptr) const {
275
257
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
257
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
257
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
257
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
257
        DCHECK(!(left_is_const && right_is_const));
282
283
257
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
254
        } else if (!left_is_const && right_is_const) {
295
201
            auto col_res = ColumnUInt8::create();
296
297
201
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
201
            vec_res.resize(col_left->size());
299
201
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
201
                              typename PrimitiveTypeTraits<PT>::CppType,
301
201
                              Op<PT>>::vector_constant(col_left->get_data(),
302
201
                                                       col_right->get_element(0), vec_res);
303
304
201
            block.replace_by_position(result, std::move(col_res));
305
201
        } else if (left_is_const && !right_is_const) {
306
53
            auto col_res = ColumnUInt8::create();
307
308
53
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
53
            vec_res.resize(col_right->size());
310
53
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
53
                              typename PrimitiveTypeTraits<PT>::CppType,
312
53
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
53
                                                       col_right->get_data(), vec_res);
314
315
53
            block.replace_by_position(result, std::move(col_res));
316
53
        }
317
257
        return Status::OK();
318
257
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
1
            auto col_res = ColumnUInt8::create();
296
297
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1
            vec_res.resize(col_left->size());
299
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1
                                                       col_right->get_element(0), vec_res);
303
304
1
            block.replace_by_position(result, std::move(col_res));
305
1
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1
                            const ColumnPtr& col_right_ptr) const {
275
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1
        DCHECK(!(left_is_const && right_is_const));
282
283
1
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1
        return Status::OK();
318
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
236
                            const ColumnPtr& col_right_ptr) const {
275
236
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
236
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
236
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
236
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
236
        DCHECK(!(left_is_const && right_is_const));
282
283
236
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
216
        } else if (!left_is_const && right_is_const) {
295
216
            auto col_res = ColumnUInt8::create();
296
297
216
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
216
            vec_res.resize(col_left->size());
299
216
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
216
                              typename PrimitiveTypeTraits<PT>::CppType,
301
216
                              Op<PT>>::vector_constant(col_left->get_data(),
302
216
                                                       col_right->get_element(0), vec_res);
303
304
216
            block.replace_by_position(result, std::move(col_res));
305
216
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
236
        return Status::OK();
318
236
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.50k
                            const ColumnPtr& col_right_ptr) const {
275
2.50k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.50k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.50k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.50k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.50k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.50k
        if (!left_is_const && !right_is_const) {
284
32
            auto col_res = ColumnUInt8::create();
285
286
32
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
32
            vec_res.resize(col_left->get_data().size());
288
32
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
32
                              typename PrimitiveTypeTraits<PT>::CppType,
290
32
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
32
                                                     vec_res);
292
293
32
            block.replace_by_position(result, std::move(col_res));
294
2.47k
        } else if (!left_is_const && right_is_const) {
295
2.47k
            auto col_res = ColumnUInt8::create();
296
297
2.47k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2.47k
            vec_res.resize(col_left->size());
299
2.47k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2.47k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2.47k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2.47k
                                                       col_right->get_element(0), vec_res);
303
304
2.47k
            block.replace_by_position(result, std::move(col_res));
305
2.47k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2.50k
        return Status::OK();
318
2.50k
    }
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
274
145
                            const ColumnPtr& col_right_ptr) const {
275
145
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
145
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
145
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
145
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
145
        DCHECK(!(left_is_const && right_is_const));
282
283
145
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
145
        } else if (!left_is_const && right_is_const) {
295
145
            auto col_res = ColumnUInt8::create();
296
297
145
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
145
            vec_res.resize(col_left->size());
299
145
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
145
                              typename PrimitiveTypeTraits<PT>::CppType,
301
145
                              Op<PT>>::vector_constant(col_left->get_data(),
302
145
                                                       col_right->get_element(0), vec_res);
303
304
145
            block.replace_by_position(result, std::move(col_res));
305
145
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
145
        return Status::OK();
318
145
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.67k
                            const ColumnPtr& col_right_ptr) const {
275
1.67k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.67k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.67k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.67k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.67k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.67k
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1.66k
        } else if (!left_is_const && right_is_const) {
295
1.66k
            auto col_res = ColumnUInt8::create();
296
297
1.66k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.66k
            vec_res.resize(col_left->size());
299
1.66k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.66k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.66k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.66k
                                                       col_right->get_element(0), vec_res);
303
304
1.66k
            block.replace_by_position(result, std::move(col_res));
305
1.66k
        } else if (left_is_const && !right_is_const) {
306
6
            auto col_res = ColumnUInt8::create();
307
308
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
6
            vec_res.resize(col_right->size());
310
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
6
                              typename PrimitiveTypeTraits<PT>::CppType,
312
6
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
6
                                                       col_right->get_data(), vec_res);
314
315
6
            block.replace_by_position(result, std::move(col_res));
316
6
        }
317
1.67k
        return Status::OK();
318
1.67k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
619
                            const ColumnPtr& col_right_ptr) const {
275
619
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
619
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
619
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
619
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
619
        DCHECK(!(left_is_const && right_is_const));
282
283
619
        if (!left_is_const && !right_is_const) {
284
8
            auto col_res = ColumnUInt8::create();
285
286
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
8
            vec_res.resize(col_left->get_data().size());
288
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
8
                              typename PrimitiveTypeTraits<PT>::CppType,
290
8
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
8
                                                     vec_res);
292
293
8
            block.replace_by_position(result, std::move(col_res));
294
611
        } else if (!left_is_const && right_is_const) {
295
611
            auto col_res = ColumnUInt8::create();
296
297
611
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
611
            vec_res.resize(col_left->size());
299
611
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
611
                              typename PrimitiveTypeTraits<PT>::CppType,
301
611
                              Op<PT>>::vector_constant(col_left->get_data(),
302
611
                                                       col_right->get_element(0), vec_res);
303
304
611
            block.replace_by_position(result, std::move(col_res));
305
611
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
619
        return Status::OK();
318
619
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
2
            auto col_res = ColumnUInt8::create();
285
286
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
2
            vec_res.resize(col_left->get_data().size());
288
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
2
                              typename PrimitiveTypeTraits<PT>::CppType,
290
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
2
                                                     vec_res);
292
293
2
            block.replace_by_position(result, std::move(col_res));
294
2
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
2
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
114
                            const ColumnPtr& col_right_ptr) const {
275
114
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
114
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
114
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
114
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
114
        DCHECK(!(left_is_const && right_is_const));
282
283
114
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
114
        } else if (!left_is_const && right_is_const) {
295
114
            auto col_res = ColumnUInt8::create();
296
297
114
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
114
            vec_res.resize(col_left->size());
299
114
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
114
                              typename PrimitiveTypeTraits<PT>::CppType,
301
114
                              Op<PT>>::vector_constant(col_left->get_data(),
302
114
                                                       col_right->get_element(0), vec_res);
303
304
114
            block.replace_by_position(result, std::move(col_res));
305
114
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
114
        return Status::OK();
318
114
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
169
                            const ColumnPtr& col_right_ptr) const {
275
169
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
169
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
169
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
169
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
169
        DCHECK(!(left_is_const && right_is_const));
282
283
169
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
169
        } else if (!left_is_const && right_is_const) {
295
169
            auto col_res = ColumnUInt8::create();
296
297
169
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
169
            vec_res.resize(col_left->size());
299
169
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
169
                              typename PrimitiveTypeTraits<PT>::CppType,
301
169
                              Op<PT>>::vector_constant(col_left->get_data(),
302
169
                                                       col_right->get_element(0), vec_res);
303
304
169
            block.replace_by_position(result, std::move(col_res));
305
169
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
169
        return Status::OK();
318
169
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
13.5k
                            const ColumnPtr& col_right_ptr) const {
275
13.5k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
13.5k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
13.5k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
13.5k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
13.5k
        DCHECK(!(left_is_const && right_is_const));
282
283
13.5k
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
13.5k
        } else if (!left_is_const && right_is_const) {
295
13.5k
            auto col_res = ColumnUInt8::create();
296
297
13.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
13.5k
            vec_res.resize(col_left->size());
299
13.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
13.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
13.5k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
13.5k
                                                       col_right->get_element(0), vec_res);
303
304
13.5k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
13.5k
        return Status::OK();
318
13.5k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
795
                            const ColumnPtr& col_right_ptr) const {
275
795
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
795
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
795
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
795
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
795
        DCHECK(!(left_is_const && right_is_const));
282
283
796
        if (!left_is_const && !right_is_const) {
284
9
            auto col_res = ColumnUInt8::create();
285
286
9
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
9
            vec_res.resize(col_left->get_data().size());
288
9
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
9
                              typename PrimitiveTypeTraits<PT>::CppType,
290
9
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
9
                                                     vec_res);
292
293
9
            block.replace_by_position(result, std::move(col_res));
294
787
        } else if (!left_is_const && right_is_const) {
295
787
            auto col_res = ColumnUInt8::create();
296
297
787
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
787
            vec_res.resize(col_left->size());
299
787
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
787
                              typename PrimitiveTypeTraits<PT>::CppType,
301
787
                              Op<PT>>::vector_constant(col_left->get_data(),
302
787
                                                       col_right->get_element(0), vec_res);
303
304
787
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
795
        return Status::OK();
318
795
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
41
                            const ColumnPtr& col_right_ptr) const {
275
41
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
41
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
41
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
41
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
41
        DCHECK(!(left_is_const && right_is_const));
282
283
41
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
41
        } else if (!left_is_const && right_is_const) {
295
41
            auto col_res = ColumnUInt8::create();
296
297
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
41
            vec_res.resize(col_left->size());
299
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
41
                              typename PrimitiveTypeTraits<PT>::CppType,
301
41
                              Op<PT>>::vector_constant(col_left->get_data(),
302
41
                                                       col_right->get_element(0), vec_res);
303
304
41
            block.replace_by_position(result, std::move(col_res));
305
41
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
41
        return Status::OK();
318
41
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
11
                            const ColumnPtr& col_right_ptr) const {
275
11
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
11
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
11
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
11
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
11
        DCHECK(!(left_is_const && right_is_const));
282
283
11
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
10
        } else if (!left_is_const && right_is_const) {
295
10
            auto col_res = ColumnUInt8::create();
296
297
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10
            vec_res.resize(col_left->size());
299
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10
                                                       col_right->get_element(0), vec_res);
303
304
10
            block.replace_by_position(result, std::move(col_res));
305
10
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
11
        return Status::OK();
318
11
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1
                            const ColumnPtr& col_right_ptr) const {
275
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1
        DCHECK(!(left_is_const && right_is_const));
282
283
1
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1
        return Status::OK();
318
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
128
                            const ColumnPtr& col_right_ptr) const {
275
128
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
128
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
128
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
128
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
128
        DCHECK(!(left_is_const && right_is_const));
282
283
128
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
108
        } else if (!left_is_const && right_is_const) {
295
108
            auto col_res = ColumnUInt8::create();
296
297
108
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
108
            vec_res.resize(col_left->size());
299
108
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
108
                              typename PrimitiveTypeTraits<PT>::CppType,
301
108
                              Op<PT>>::vector_constant(col_left->get_data(),
302
108
                                                       col_right->get_element(0), vec_res);
303
304
108
            block.replace_by_position(result, std::move(col_res));
305
108
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
128
        return Status::OK();
318
128
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
140
                            const ColumnPtr& col_right_ptr) const {
275
140
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
140
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
140
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
140
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
140
        DCHECK(!(left_is_const && right_is_const));
282
283
140
        if (!left_is_const && !right_is_const) {
284
22
            auto col_res = ColumnUInt8::create();
285
286
22
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
22
            vec_res.resize(col_left->get_data().size());
288
22
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
22
                              typename PrimitiveTypeTraits<PT>::CppType,
290
22
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
22
                                                     vec_res);
292
293
22
            block.replace_by_position(result, std::move(col_res));
294
118
        } else if (!left_is_const && right_is_const) {
295
118
            auto col_res = ColumnUInt8::create();
296
297
118
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
118
            vec_res.resize(col_left->size());
299
118
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
118
                              typename PrimitiveTypeTraits<PT>::CppType,
301
118
                              Op<PT>>::vector_constant(col_left->get_data(),
302
118
                                                       col_right->get_element(0), vec_res);
303
304
118
            block.replace_by_position(result, std::move(col_res));
305
118
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
140
        return Status::OK();
318
140
    }
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
274
81
                            const ColumnPtr& col_right_ptr) const {
275
81
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
81
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
81
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
81
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
81
        DCHECK(!(left_is_const && right_is_const));
282
283
81
        if (!left_is_const && !right_is_const) {
284
81
            auto col_res = ColumnUInt8::create();
285
286
81
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
81
            vec_res.resize(col_left->get_data().size());
288
81
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
81
                              typename PrimitiveTypeTraits<PT>::CppType,
290
81
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
81
                                                     vec_res);
292
293
81
            block.replace_by_position(result, std::move(col_res));
294
81
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
81
        return Status::OK();
318
81
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.42k
                            const ColumnPtr& col_right_ptr) const {
275
2.42k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.42k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.42k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.42k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.42k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.42k
        if (!left_is_const && !right_is_const) {
284
1.83k
            auto col_res = ColumnUInt8::create();
285
286
1.83k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.83k
            vec_res.resize(col_left->get_data().size());
288
1.83k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.83k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.83k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.83k
                                                     vec_res);
292
293
1.83k
            block.replace_by_position(result, std::move(col_res));
294
1.83k
        } else if (!left_is_const && right_is_const) {
295
592
            auto col_res = ColumnUInt8::create();
296
297
592
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
592
            vec_res.resize(col_left->size());
299
592
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
592
                              typename PrimitiveTypeTraits<PT>::CppType,
301
592
                              Op<PT>>::vector_constant(col_left->get_data(),
302
592
                                                       col_right->get_element(0), vec_res);
303
304
592
            block.replace_by_position(result, std::move(col_res));
305
592
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2.42k
        return Status::OK();
318
2.42k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
551
                            const ColumnPtr& col_right_ptr) const {
275
551
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
551
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
551
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
551
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
551
        DCHECK(!(left_is_const && right_is_const));
282
283
551
        if (!left_is_const && !right_is_const) {
284
214
            auto col_res = ColumnUInt8::create();
285
286
214
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
214
            vec_res.resize(col_left->get_data().size());
288
214
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
214
                              typename PrimitiveTypeTraits<PT>::CppType,
290
214
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
214
                                                     vec_res);
292
293
214
            block.replace_by_position(result, std::move(col_res));
294
337
        } else if (!left_is_const && right_is_const) {
295
337
            auto col_res = ColumnUInt8::create();
296
297
337
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
337
            vec_res.resize(col_left->size());
299
337
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
337
                              typename PrimitiveTypeTraits<PT>::CppType,
301
337
                              Op<PT>>::vector_constant(col_left->get_data(),
302
337
                                                       col_right->get_element(0), vec_res);
303
304
337
            block.replace_by_position(result, std::move(col_res));
305
337
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
551
        return Status::OK();
318
551
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
2
            auto col_res = ColumnUInt8::create();
285
286
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
2
            vec_res.resize(col_left->get_data().size());
288
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
2
                              typename PrimitiveTypeTraits<PT>::CppType,
290
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
2
                                                     vec_res);
292
293
2
            block.replace_by_position(result, std::move(col_res));
294
2
        } else if (!left_is_const && right_is_const) {
295
1
            auto col_res = ColumnUInt8::create();
296
297
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1
            vec_res.resize(col_left->size());
299
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1
                                                       col_right->get_element(0), vec_res);
303
304
1
            block.replace_by_position(result, std::move(col_res));
305
1
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.15k
                            const ColumnPtr& col_right_ptr) const {
275
2.15k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.15k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.15k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.15k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.15k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.15k
        if (!left_is_const && !right_is_const) {
284
122
            auto col_res = ColumnUInt8::create();
285
286
122
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
122
            vec_res.resize(col_left->get_data().size());
288
122
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
122
                              typename PrimitiveTypeTraits<PT>::CppType,
290
122
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
122
                                                     vec_res);
292
293
122
            block.replace_by_position(result, std::move(col_res));
294
2.03k
        } else if (!left_is_const && right_is_const) {
295
1.76k
            auto col_res = ColumnUInt8::create();
296
297
1.76k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.76k
            vec_res.resize(col_left->size());
299
1.76k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.76k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.76k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.76k
                                                       col_right->get_element(0), vec_res);
303
304
1.76k
            block.replace_by_position(result, std::move(col_res));
305
1.76k
        } else if (left_is_const && !right_is_const) {
306
264
            auto col_res = ColumnUInt8::create();
307
308
264
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
264
            vec_res.resize(col_right->size());
310
264
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
264
                              typename PrimitiveTypeTraits<PT>::CppType,
312
264
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
264
                                                       col_right->get_data(), vec_res);
314
315
264
            block.replace_by_position(result, std::move(col_res));
316
264
        }
317
2.15k
        return Status::OK();
318
2.15k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
370
                            const ColumnPtr& col_right_ptr) const {
275
370
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
370
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
370
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
370
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
370
        DCHECK(!(left_is_const && right_is_const));
282
283
370
        if (!left_is_const && !right_is_const) {
284
102
            auto col_res = ColumnUInt8::create();
285
286
102
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
102
            vec_res.resize(col_left->get_data().size());
288
102
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
102
                              typename PrimitiveTypeTraits<PT>::CppType,
290
102
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
102
                                                     vec_res);
292
293
102
            block.replace_by_position(result, std::move(col_res));
294
268
        } else if (!left_is_const && right_is_const) {
295
268
            auto col_res = ColumnUInt8::create();
296
297
268
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
268
            vec_res.resize(col_left->size());
299
268
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
268
                              typename PrimitiveTypeTraits<PT>::CppType,
301
268
                              Op<PT>>::vector_constant(col_left->get_data(),
302
268
                                                       col_right->get_element(0), vec_res);
303
304
268
            block.replace_by_position(result, std::move(col_res));
305
268
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
370
        return Status::OK();
318
370
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
5.99k
                            const ColumnPtr& col_right_ptr) const {
275
5.99k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
5.99k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
5.99k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
5.99k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
5.99k
        DCHECK(!(left_is_const && right_is_const));
282
283
5.99k
        if (!left_is_const && !right_is_const) {
284
157
            auto col_res = ColumnUInt8::create();
285
286
157
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
157
            vec_res.resize(col_left->get_data().size());
288
157
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
157
                              typename PrimitiveTypeTraits<PT>::CppType,
290
157
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
157
                                                     vec_res);
292
293
157
            block.replace_by_position(result, std::move(col_res));
294
5.83k
        } else if (!left_is_const && right_is_const) {
295
5.81k
            auto col_res = ColumnUInt8::create();
296
297
5.81k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
5.81k
            vec_res.resize(col_left->size());
299
5.81k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
5.81k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
5.81k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
5.81k
                                                       col_right->get_element(0), vec_res);
303
304
5.81k
            block.replace_by_position(result, std::move(col_res));
305
5.81k
        } else if (left_is_const && !right_is_const) {
306
25
            auto col_res = ColumnUInt8::create();
307
308
25
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
25
            vec_res.resize(col_right->size());
310
25
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
25
                              typename PrimitiveTypeTraits<PT>::CppType,
312
25
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
25
                                                       col_right->get_data(), vec_res);
314
315
25
            block.replace_by_position(result, std::move(col_res));
316
25
        }
317
5.99k
        return Status::OK();
318
5.99k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.72k
                            const ColumnPtr& col_right_ptr) const {
275
1.72k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.72k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.72k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.72k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.72k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.72k
        if (!left_is_const && !right_is_const) {
284
198
            auto col_res = ColumnUInt8::create();
285
286
198
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
198
            vec_res.resize(col_left->get_data().size());
288
198
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
198
                              typename PrimitiveTypeTraits<PT>::CppType,
290
198
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
198
                                                     vec_res);
292
293
198
            block.replace_by_position(result, std::move(col_res));
294
1.52k
        } else if (!left_is_const && right_is_const) {
295
1.44k
            auto col_res = ColumnUInt8::create();
296
297
1.44k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.44k
            vec_res.resize(col_left->size());
299
1.44k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.44k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.44k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.44k
                                                       col_right->get_element(0), vec_res);
303
304
1.44k
            block.replace_by_position(result, std::move(col_res));
305
1.44k
        } else if (left_is_const && !right_is_const) {
306
84
            auto col_res = ColumnUInt8::create();
307
308
84
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
84
            vec_res.resize(col_right->size());
310
84
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
84
                              typename PrimitiveTypeTraits<PT>::CppType,
312
84
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
84
                                                       col_right->get_data(), vec_res);
314
315
84
            block.replace_by_position(result, std::move(col_res));
316
84
        }
317
1.72k
        return Status::OK();
318
1.72k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
245
                            const ColumnPtr& col_right_ptr) const {
275
245
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
245
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
245
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
245
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
245
        DCHECK(!(left_is_const && right_is_const));
282
283
245
        if (!left_is_const && !right_is_const) {
284
122
            auto col_res = ColumnUInt8::create();
285
286
122
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
122
            vec_res.resize(col_left->get_data().size());
288
122
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
122
                              typename PrimitiveTypeTraits<PT>::CppType,
290
122
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
122
                                                     vec_res);
292
293
122
            block.replace_by_position(result, std::move(col_res));
294
123
        } else if (!left_is_const && right_is_const) {
295
46
            auto col_res = ColumnUInt8::create();
296
297
46
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
46
            vec_res.resize(col_left->size());
299
46
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
46
                              typename PrimitiveTypeTraits<PT>::CppType,
301
46
                              Op<PT>>::vector_constant(col_left->get_data(),
302
46
                                                       col_right->get_element(0), vec_res);
303
304
46
            block.replace_by_position(result, std::move(col_res));
305
77
        } else if (left_is_const && !right_is_const) {
306
77
            auto col_res = ColumnUInt8::create();
307
308
77
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
77
            vec_res.resize(col_right->size());
310
77
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
77
                              typename PrimitiveTypeTraits<PT>::CppType,
312
77
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
77
                                                       col_right->get_data(), vec_res);
314
315
77
            block.replace_by_position(result, std::move(col_res));
316
77
        }
317
245
        return Status::OK();
318
245
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
16
                            const ColumnPtr& col_right_ptr) const {
275
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
16
        DCHECK(!(left_is_const && right_is_const));
282
283
16
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
16
        return Status::OK();
318
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
16
                            const ColumnPtr& col_right_ptr) const {
275
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
16
        DCHECK(!(left_is_const && right_is_const));
282
283
16
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
16
        return Status::OK();
318
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
144
                            const ColumnPtr& col_right_ptr) const {
275
144
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
144
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
144
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
144
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
144
        DCHECK(!(left_is_const && right_is_const));
282
283
144
        if (!left_is_const && !right_is_const) {
284
118
            auto col_res = ColumnUInt8::create();
285
286
118
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
118
            vec_res.resize(col_left->get_data().size());
288
118
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
118
                              typename PrimitiveTypeTraits<PT>::CppType,
290
118
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
118
                                                     vec_res);
292
293
118
            block.replace_by_position(result, std::move(col_res));
294
118
        } else if (!left_is_const && right_is_const) {
295
26
            auto col_res = ColumnUInt8::create();
296
297
26
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
26
            vec_res.resize(col_left->size());
299
26
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
26
                              typename PrimitiveTypeTraits<PT>::CppType,
301
26
                              Op<PT>>::vector_constant(col_left->get_data(),
302
26
                                                       col_right->get_element(0), vec_res);
303
304
26
            block.replace_by_position(result, std::move(col_res));
305
26
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
144
        return Status::OK();
318
144
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
334
                            const ColumnPtr& col_right_ptr) const {
275
334
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
334
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
334
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
334
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
334
        DCHECK(!(left_is_const && right_is_const));
282
283
335
        if (!left_is_const && !right_is_const) {
284
120
            auto col_res = ColumnUInt8::create();
285
286
120
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
120
            vec_res.resize(col_left->get_data().size());
288
120
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
120
                              typename PrimitiveTypeTraits<PT>::CppType,
290
120
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
120
                                                     vec_res);
292
293
120
            block.replace_by_position(result, std::move(col_res));
294
215
        } else if (!left_is_const && right_is_const) {
295
215
            auto col_res = ColumnUInt8::create();
296
297
215
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
215
            vec_res.resize(col_left->size());
299
215
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
215
                              typename PrimitiveTypeTraits<PT>::CppType,
301
215
                              Op<PT>>::vector_constant(col_left->get_data(),
302
215
                                                       col_right->get_element(0), vec_res);
303
304
215
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
334
        return Status::OK();
318
334
    }
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
274
393
                            const ColumnPtr& col_right_ptr) const {
275
393
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
393
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
393
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
393
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
393
        DCHECK(!(left_is_const && right_is_const));
282
283
393
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
393
        } else if (!left_is_const && right_is_const) {
295
393
            auto col_res = ColumnUInt8::create();
296
297
393
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
393
            vec_res.resize(col_left->size());
299
393
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
393
                              typename PrimitiveTypeTraits<PT>::CppType,
301
393
                              Op<PT>>::vector_constant(col_left->get_data(),
302
393
                                                       col_right->get_element(0), vec_res);
303
304
393
            block.replace_by_position(result, std::move(col_res));
305
393
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
393
        return Status::OK();
318
393
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
10.7k
                            const ColumnPtr& col_right_ptr) const {
275
10.7k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
10.7k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
10.7k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
10.7k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
10.7k
        DCHECK(!(left_is_const && right_is_const));
282
283
10.7k
        if (!left_is_const && !right_is_const) {
284
394
            auto col_res = ColumnUInt8::create();
285
286
394
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
394
            vec_res.resize(col_left->get_data().size());
288
394
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
394
                              typename PrimitiveTypeTraits<PT>::CppType,
290
394
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
394
                                                     vec_res);
292
293
394
            block.replace_by_position(result, std::move(col_res));
294
10.3k
        } else if (!left_is_const && right_is_const) {
295
10.3k
            auto col_res = ColumnUInt8::create();
296
297
10.3k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10.3k
            vec_res.resize(col_left->size());
299
10.3k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10.3k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10.3k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10.3k
                                                       col_right->get_element(0), vec_res);
303
304
10.3k
            block.replace_by_position(result, std::move(col_res));
305
10.3k
        } else if (left_is_const && !right_is_const) {
306
5
            auto col_res = ColumnUInt8::create();
307
308
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
5
            vec_res.resize(col_right->size());
310
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
5
                              typename PrimitiveTypeTraits<PT>::CppType,
312
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
5
                                                       col_right->get_data(), vec_res);
314
315
5
            block.replace_by_position(result, std::move(col_res));
316
5
        }
317
10.7k
        return Status::OK();
318
10.7k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
545
                            const ColumnPtr& col_right_ptr) const {
275
545
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
545
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
545
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
545
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
545
        DCHECK(!(left_is_const && right_is_const));
282
283
545
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
545
        } else if (!left_is_const && right_is_const) {
295
545
            auto col_res = ColumnUInt8::create();
296
297
545
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
545
            vec_res.resize(col_left->size());
299
545
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
545
                              typename PrimitiveTypeTraits<PT>::CppType,
301
545
                              Op<PT>>::vector_constant(col_left->get_data(),
302
545
                                                       col_right->get_element(0), vec_res);
303
304
545
            block.replace_by_position(result, std::move(col_res));
305
545
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
545
        return Status::OK();
318
545
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
2
            auto col_res = ColumnUInt8::create();
285
286
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
2
            vec_res.resize(col_left->get_data().size());
288
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
2
                              typename PrimitiveTypeTraits<PT>::CppType,
290
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
2
                                                     vec_res);
292
293
2
            block.replace_by_position(result, std::move(col_res));
294
2
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
2
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
398
                            const ColumnPtr& col_right_ptr) const {
275
398
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
398
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
398
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
398
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
398
        DCHECK(!(left_is_const && right_is_const));
282
283
398
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
397
        } else if (!left_is_const && right_is_const) {
295
397
            auto col_res = ColumnUInt8::create();
296
297
397
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
397
            vec_res.resize(col_left->size());
299
397
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
397
                              typename PrimitiveTypeTraits<PT>::CppType,
301
397
                              Op<PT>>::vector_constant(col_left->get_data(),
302
397
                                                       col_right->get_element(0), vec_res);
303
304
397
            block.replace_by_position(result, std::move(col_res));
305
397
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
398
        return Status::OK();
318
398
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
436
                            const ColumnPtr& col_right_ptr) const {
275
436
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
436
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
436
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
436
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
436
        DCHECK(!(left_is_const && right_is_const));
282
283
436
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
436
        } else if (!left_is_const && right_is_const) {
295
436
            auto col_res = ColumnUInt8::create();
296
297
436
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
436
            vec_res.resize(col_left->size());
299
436
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
436
                              typename PrimitiveTypeTraits<PT>::CppType,
301
436
                              Op<PT>>::vector_constant(col_left->get_data(),
302
436
                                                       col_right->get_element(0), vec_res);
303
304
436
            block.replace_by_position(result, std::move(col_res));
305
436
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
436
        return Status::OK();
318
436
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
20.9k
                            const ColumnPtr& col_right_ptr) const {
275
20.9k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
20.9k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
20.9k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
20.9k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
20.9k
        DCHECK(!(left_is_const && right_is_const));
282
283
20.9k
        if (!left_is_const && !right_is_const) {
284
23
            auto col_res = ColumnUInt8::create();
285
286
23
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
23
            vec_res.resize(col_left->get_data().size());
288
23
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
23
                              typename PrimitiveTypeTraits<PT>::CppType,
290
23
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
23
                                                     vec_res);
292
293
23
            block.replace_by_position(result, std::move(col_res));
294
20.9k
        } else if (!left_is_const && right_is_const) {
295
20.3k
            auto col_res = ColumnUInt8::create();
296
297
20.3k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
20.3k
            vec_res.resize(col_left->size());
299
20.3k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
20.3k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
20.3k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
20.3k
                                                       col_right->get_element(0), vec_res);
303
304
20.3k
            block.replace_by_position(result, std::move(col_res));
305
20.3k
        } else if (left_is_const && !right_is_const) {
306
574
            auto col_res = ColumnUInt8::create();
307
308
574
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
574
            vec_res.resize(col_right->size());
310
574
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
574
                              typename PrimitiveTypeTraits<PT>::CppType,
312
574
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
574
                                                       col_right->get_data(), vec_res);
314
315
574
            block.replace_by_position(result, std::move(col_res));
316
574
        }
317
20.9k
        return Status::OK();
318
20.9k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
983
                            const ColumnPtr& col_right_ptr) const {
275
983
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
983
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
983
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
983
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
983
        DCHECK(!(left_is_const && right_is_const));
282
283
983
        if (!left_is_const && !right_is_const) {
284
30
            auto col_res = ColumnUInt8::create();
285
286
30
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
30
            vec_res.resize(col_left->get_data().size());
288
30
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
30
                              typename PrimitiveTypeTraits<PT>::CppType,
290
30
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
30
                                                     vec_res);
292
293
30
            block.replace_by_position(result, std::move(col_res));
294
953
        } else if (!left_is_const && right_is_const) {
295
905
            auto col_res = ColumnUInt8::create();
296
297
905
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
905
            vec_res.resize(col_left->size());
299
905
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
905
                              typename PrimitiveTypeTraits<PT>::CppType,
301
905
                              Op<PT>>::vector_constant(col_left->get_data(),
302
905
                                                       col_right->get_element(0), vec_res);
303
304
905
            block.replace_by_position(result, std::move(col_res));
305
905
        } else if (left_is_const && !right_is_const) {
306
48
            auto col_res = ColumnUInt8::create();
307
308
48
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
48
            vec_res.resize(col_right->size());
310
48
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
48
                              typename PrimitiveTypeTraits<PT>::CppType,
312
48
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
48
                                                       col_right->get_data(), vec_res);
314
315
48
            block.replace_by_position(result, std::move(col_res));
316
48
        }
317
983
        return Status::OK();
318
983
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
39
                            const ColumnPtr& col_right_ptr) const {
275
39
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
39
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
39
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
39
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
39
        DCHECK(!(left_is_const && right_is_const));
282
283
39
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
39
        } else if (!left_is_const && right_is_const) {
295
39
            auto col_res = ColumnUInt8::create();
296
297
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
39
            vec_res.resize(col_left->size());
299
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
39
                              typename PrimitiveTypeTraits<PT>::CppType,
301
39
                              Op<PT>>::vector_constant(col_left->get_data(),
302
39
                                                       col_right->get_element(0), vec_res);
303
304
39
            block.replace_by_position(result, std::move(col_res));
305
39
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
39
        return Status::OK();
318
39
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
10
                            const ColumnPtr& col_right_ptr) const {
275
10
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
10
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
10
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
10
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
10
        DCHECK(!(left_is_const && right_is_const));
282
283
10
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
10
        } else if (!left_is_const && right_is_const) {
295
10
            auto col_res = ColumnUInt8::create();
296
297
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10
            vec_res.resize(col_left->size());
299
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10
                                                       col_right->get_element(0), vec_res);
303
304
10
            block.replace_by_position(result, std::move(col_res));
305
10
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
10
        return Status::OK();
318
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
274
124
                            const ColumnPtr& col_right_ptr) const {
275
124
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
124
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
124
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
124
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
124
        DCHECK(!(left_is_const && right_is_const));
282
283
124
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
104
        } else if (!left_is_const && right_is_const) {
295
102
            auto col_res = ColumnUInt8::create();
296
297
102
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
102
            vec_res.resize(col_left->size());
299
102
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
102
                              typename PrimitiveTypeTraits<PT>::CppType,
301
102
                              Op<PT>>::vector_constant(col_left->get_data(),
302
102
                                                       col_right->get_element(0), vec_res);
303
304
102
            block.replace_by_position(result, std::move(col_res));
305
102
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
124
        return Status::OK();
318
124
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
139
                            const ColumnPtr& col_right_ptr) const {
275
139
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
139
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
139
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
139
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
139
        DCHECK(!(left_is_const && right_is_const));
282
283
139
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
119
        } else if (!left_is_const && right_is_const) {
295
118
            auto col_res = ColumnUInt8::create();
296
297
118
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
118
            vec_res.resize(col_left->size());
299
118
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
118
                              typename PrimitiveTypeTraits<PT>::CppType,
301
118
                              Op<PT>>::vector_constant(col_left->get_data(),
302
118
                                                       col_right->get_element(0), vec_res);
303
304
118
            block.replace_by_position(result, std::move(col_res));
305
118
        } else if (left_is_const && !right_is_const) {
306
1
            auto col_res = ColumnUInt8::create();
307
308
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
1
            vec_res.resize(col_right->size());
310
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
1
                              typename PrimitiveTypeTraits<PT>::CppType,
312
1
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
1
                                                       col_right->get_data(), vec_res);
314
315
1
            block.replace_by_position(result, std::move(col_res));
316
1
        }
317
139
        return Status::OK();
318
139
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
319
320
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
321
146k
                           const ColumnWithTypeAndName& col_right) const {
322
146k
        auto call = [&](const auto& type) -> bool {
323
146k
            using DispatchType = std::decay_t<decltype(type)>;
324
146k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
146k
                    block, result, col_left, col_right);
326
146k
            return true;
327
146k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
241
        auto call = [&](const auto& type) -> bool {
323
241
            using DispatchType = std::decay_t<decltype(type)>;
324
241
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
241
                    block, result, col_left, col_right);
326
241
            return true;
327
241
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
265
        auto call = [&](const auto& type) -> bool {
323
265
            using DispatchType = std::decay_t<decltype(type)>;
324
265
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
265
                    block, result, col_left, col_right);
326
265
            return true;
327
265
        };
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
322
1.20k
        auto call = [&](const auto& type) -> bool {
323
1.20k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.20k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.20k
                    block, result, col_left, col_right);
326
1.20k
            return true;
327
1.20k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
30
        auto call = [&](const auto& type) -> bool {
323
30
            using DispatchType = std::decay_t<decltype(type)>;
324
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
30
                    block, result, col_left, col_right);
326
30
            return true;
327
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
322
58
        auto call = [&](const auto& type) -> bool {
323
58
            using DispatchType = std::decay_t<decltype(type)>;
324
58
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
58
                    block, result, col_left, col_right);
326
58
            return true;
327
58
        };
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
322
324
        auto call = [&](const auto& type) -> bool {
323
324
            using DispatchType = std::decay_t<decltype(type)>;
324
324
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
324
                    block, result, col_left, col_right);
326
324
            return true;
327
324
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
30
        auto call = [&](const auto& type) -> bool {
323
30
            using DispatchType = std::decay_t<decltype(type)>;
324
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
30
                    block, result, col_left, col_right);
326
30
            return true;
327
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
46
        auto call = [&](const auto& type) -> bool {
323
46
            using DispatchType = std::decay_t<decltype(type)>;
324
46
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
46
                    block, result, col_left, col_right);
326
46
            return true;
327
46
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
1.59k
        auto call = [&](const auto& type) -> bool {
323
1.59k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.59k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.59k
                    block, result, col_left, col_right);
326
1.59k
            return true;
327
1.59k
        };
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
322
1.40k
        auto call = [&](const auto& type) -> bool {
323
1.40k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.40k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.40k
                    block, result, col_left, col_right);
326
1.40k
            return true;
327
1.40k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
2
        auto call = [&](const auto& type) -> bool {
323
2
            using DispatchType = std::decay_t<decltype(type)>;
324
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
2
                    block, result, col_left, col_right);
326
2
            return true;
327
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
9
        auto call = [&](const auto& type) -> bool {
323
9
            using DispatchType = std::decay_t<decltype(type)>;
324
9
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
9
                    block, result, col_left, col_right);
326
9
            return true;
327
9
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
292
        auto call = [&](const auto& type) -> bool {
323
292
            using DispatchType = std::decay_t<decltype(type)>;
324
292
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
292
                    block, result, col_left, col_right);
326
292
            return true;
327
292
        };
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
322
70
        auto call = [&](const auto& type) -> bool {
323
70
            using DispatchType = std::decay_t<decltype(type)>;
324
70
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
70
                    block, result, col_left, col_right);
326
70
            return true;
327
70
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
21
        auto call = [&](const auto& type) -> bool {
323
21
            using DispatchType = std::decay_t<decltype(type)>;
324
21
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
21
                    block, result, col_left, col_right);
326
21
            return true;
327
21
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
188
        auto call = [&](const auto& type) -> bool {
323
188
            using DispatchType = std::decay_t<decltype(type)>;
324
188
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
188
                    block, result, col_left, col_right);
326
188
            return true;
327
188
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
230
        auto call = [&](const auto& type) -> bool {
323
230
            using DispatchType = std::decay_t<decltype(type)>;
324
230
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
230
                    block, result, col_left, col_right);
326
230
            return true;
327
230
        };
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
322
531
        auto call = [&](const auto& type) -> bool {
323
531
            using DispatchType = std::decay_t<decltype(type)>;
324
531
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
531
                    block, result, col_left, col_right);
326
531
            return true;
327
531
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
1
        auto call = [&](const auto& type) -> bool {
323
1
            using DispatchType = std::decay_t<decltype(type)>;
324
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1
                    block, result, col_left, col_right);
326
1
            return true;
327
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
5
        auto call = [&](const auto& type) -> bool {
323
5
            using DispatchType = std::decay_t<decltype(type)>;
324
5
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
5
                    block, result, col_left, col_right);
326
5
            return true;
327
5
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
139k
        auto call = [&](const auto& type) -> bool {
323
139k
            using DispatchType = std::decay_t<decltype(type)>;
324
139k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
139k
                    block, result, col_left, col_right);
326
139k
            return true;
327
139k
        };
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
322
825
        auto call = [&](const auto& type) -> bool {
323
825
            using DispatchType = std::decay_t<decltype(type)>;
324
825
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
825
                    block, result, col_left, col_right);
326
825
            return true;
327
825
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
16
        auto call = [&](const auto& type) -> bool {
323
16
            using DispatchType = std::decay_t<decltype(type)>;
324
16
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
16
                    block, result, col_left, col_right);
326
16
            return true;
327
16
        };
328
329
146k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
146k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
146k
        return Status::OK();
340
146k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.73k
                           const ColumnWithTypeAndName& col_right) const {
322
1.73k
        auto call = [&](const auto& type) -> bool {
323
1.73k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.73k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.73k
                    block, result, col_left, col_right);
326
1.73k
            return true;
327
1.73k
        };
328
329
1.73k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
1.73k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
1.73k
        return Status::OK();
340
1.73k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
412
                           const ColumnWithTypeAndName& col_right) const {
322
412
        auto call = [&](const auto& type) -> bool {
323
412
            using DispatchType = std::decay_t<decltype(type)>;
324
412
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
412
                    block, result, col_left, col_right);
326
412
            return true;
327
412
        };
328
329
412
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
412
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
412
        return Status::OK();
340
412
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
3.05k
                           const ColumnWithTypeAndName& col_right) const {
322
3.05k
        auto call = [&](const auto& type) -> bool {
323
3.05k
            using DispatchType = std::decay_t<decltype(type)>;
324
3.05k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
3.05k
                    block, result, col_left, col_right);
326
3.05k
            return true;
327
3.05k
        };
328
329
3.05k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
3.05k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
3.05k
        return Status::OK();
340
3.05k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
392
                           const ColumnWithTypeAndName& col_right) const {
322
392
        auto call = [&](const auto& type) -> bool {
323
392
            using DispatchType = std::decay_t<decltype(type)>;
324
392
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
392
                    block, result, col_left, col_right);
326
392
            return true;
327
392
        };
328
329
392
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
392
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
392
        return Status::OK();
340
392
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
950
                           const ColumnWithTypeAndName& col_right) const {
322
950
        auto call = [&](const auto& type) -> bool {
323
950
            using DispatchType = std::decay_t<decltype(type)>;
324
950
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
950
                    block, result, col_left, col_right);
326
950
            return true;
327
950
        };
328
329
950
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
950
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
950
        return Status::OK();
340
950
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
140k
                           const ColumnWithTypeAndName& col_right) const {
322
140k
        auto call = [&](const auto& type) -> bool {
323
140k
            using DispatchType = std::decay_t<decltype(type)>;
324
140k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
140k
                    block, result, col_left, col_right);
326
140k
            return true;
327
140k
        };
328
329
140k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
140k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
140k
        return Status::OK();
340
140k
    }
341
342
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
343
27.2k
                          const IColumn* c1) const {
344
27.2k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
27.2k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
27.2k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
27.2k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
27.2k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
27.2k
        DCHECK(!(c0_const && c1_const));
353
27.2k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
27.2k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
27.2k
        ColumnString::Offset c0_const_size = 0;
356
27.2k
        ColumnString::Offset c1_const_size = 0;
357
358
27.2k
        if (c0_const) {
359
6
            const ColumnString* c0_const_string =
360
6
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
6
            if (c0_const_string) {
363
6
                c0_const_chars = &c0_const_string->get_chars();
364
6
                c0_const_size = c0_const_string->get_offsets()[0];
365
6
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
6
        }
370
371
27.2k
        if (c1_const) {
372
26.4k
            const ColumnString* c1_const_string =
373
26.4k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
26.4k
            if (c1_const_string) {
376
26.4k
                c1_const_chars = &c1_const_string->get_chars();
377
26.4k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
26.4k
        }
383
384
27.2k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
27.2k
        auto c_res = ColumnUInt8::create();
387
27.2k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
27.2k
        vec_res.resize(c0->size());
389
390
27.2k
        if (c0_string && c1_string) {
391
813
            StringImpl::string_vector_string_vector(
392
813
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
813
                    c1_string->get_offsets(), vec_res);
394
26.4k
        } else if (c0_string && c1_const) {
395
26.4k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
26.4k
                                               *c1_const_chars, c1_const_size, vec_res);
397
26.4k
        } else if (c0_const && c1_string) {
398
6
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
6
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
6
                                               vec_res);
401
18.4E
        } else {
402
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
18.4E
                                        c0->get_name(), c1->get_name(), name);
404
18.4E
        }
405
27.2k
        block.replace_by_position(result, std::move(c_res));
406
27.2k
        return Status::OK();
407
27.2k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
22.4k
                          const IColumn* c1) const {
344
22.4k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
22.4k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
22.4k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
22.4k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
22.4k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
22.4k
        DCHECK(!(c0_const && c1_const));
353
22.4k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
22.4k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
22.4k
        ColumnString::Offset c0_const_size = 0;
356
22.4k
        ColumnString::Offset c1_const_size = 0;
357
358
22.4k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
22.4k
        if (c1_const) {
372
21.9k
            const ColumnString* c1_const_string =
373
21.9k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
21.9k
            if (c1_const_string) {
376
21.9k
                c1_const_chars = &c1_const_string->get_chars();
377
21.9k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
21.9k
        }
383
384
22.4k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
22.4k
        auto c_res = ColumnUInt8::create();
387
22.4k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
22.4k
        vec_res.resize(c0->size());
389
390
22.4k
        if (c0_string && c1_string) {
391
439
            StringImpl::string_vector_string_vector(
392
439
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
439
                    c1_string->get_offsets(), vec_res);
394
22.0k
        } else if (c0_string && c1_const) {
395
22.0k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
22.0k
                                               *c1_const_chars, c1_const_size, vec_res);
397
18.4E
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
18.4E
        } else {
402
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
18.4E
                                        c0->get_name(), c1->get_name(), name);
404
18.4E
        }
405
22.4k
        block.replace_by_position(result, std::move(c_res));
406
22.4k
        return Status::OK();
407
22.4k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
1.50k
                          const IColumn* c1) const {
344
1.50k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
1.50k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
1.50k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
1.50k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
1.50k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
1.50k
        DCHECK(!(c0_const && c1_const));
353
1.50k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
1.50k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
1.50k
        ColumnString::Offset c0_const_size = 0;
356
1.50k
        ColumnString::Offset c1_const_size = 0;
357
358
1.50k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
1.50k
        if (c1_const) {
372
1.49k
            const ColumnString* c1_const_string =
373
1.49k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
1.50k
            if (c1_const_string) {
376
1.50k
                c1_const_chars = &c1_const_string->get_chars();
377
1.50k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
1.49k
        }
383
384
1.50k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
1.50k
        auto c_res = ColumnUInt8::create();
387
1.50k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
1.50k
        vec_res.resize(c0->size());
389
390
1.50k
        if (c0_string && c1_string) {
391
1
            StringImpl::string_vector_string_vector(
392
1
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
1
                    c1_string->get_offsets(), vec_res);
394
1.50k
        } else if (c0_string && c1_const) {
395
1.50k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
1.50k
                                               *c1_const_chars, c1_const_size, vec_res);
397
1.50k
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
1
        } else {
402
1
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
1
                                        c0->get_name(), c1->get_name(), name);
404
1
        }
405
1.50k
        block.replace_by_position(result, std::move(c_res));
406
1.50k
        return Status::OK();
407
1.50k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
194
                          const IColumn* c1) const {
344
194
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
194
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
194
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
194
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
194
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
194
        DCHECK(!(c0_const && c1_const));
353
194
        const ColumnString::Chars* c0_const_chars = nullptr;
354
194
        const ColumnString::Chars* c1_const_chars = nullptr;
355
194
        ColumnString::Offset c0_const_size = 0;
356
194
        ColumnString::Offset c1_const_size = 0;
357
358
194
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
194
        if (c1_const) {
372
192
            const ColumnString* c1_const_string =
373
192
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
192
            if (c1_const_string) {
376
192
                c1_const_chars = &c1_const_string->get_chars();
377
192
                c1_const_size = c1_const_string->get_offsets()[0];
378
192
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
192
        }
383
384
194
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
194
        auto c_res = ColumnUInt8::create();
387
194
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
194
        vec_res.resize(c0->size());
389
390
194
        if (c0_string && c1_string) {
391
2
            StringImpl::string_vector_string_vector(
392
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
2
                    c1_string->get_offsets(), vec_res);
394
192
        } else if (c0_string && c1_const) {
395
192
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
192
                                               *c1_const_chars, c1_const_size, vec_res);
397
192
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
194
        block.replace_by_position(result, std::move(c_res));
406
194
        return Status::OK();
407
194
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
691
                          const IColumn* c1) const {
344
691
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
691
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
691
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
691
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
691
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
691
        DCHECK(!(c0_const && c1_const));
353
691
        const ColumnString::Chars* c0_const_chars = nullptr;
354
691
        const ColumnString::Chars* c1_const_chars = nullptr;
355
691
        ColumnString::Offset c0_const_size = 0;
356
691
        ColumnString::Offset c1_const_size = 0;
357
358
691
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
691
        if (c1_const) {
372
655
            const ColumnString* c1_const_string =
373
655
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
655
            if (c1_const_string) {
376
655
                c1_const_chars = &c1_const_string->get_chars();
377
655
                c1_const_size = c1_const_string->get_offsets()[0];
378
655
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
655
        }
383
384
691
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
691
        auto c_res = ColumnUInt8::create();
387
691
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
691
        vec_res.resize(c0->size());
389
390
691
        if (c0_string && c1_string) {
391
36
            StringImpl::string_vector_string_vector(
392
36
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
36
                    c1_string->get_offsets(), vec_res);
394
655
        } else if (c0_string && c1_const) {
395
655
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
655
                                               *c1_const_chars, c1_const_size, vec_res);
397
655
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
691
        block.replace_by_position(result, std::move(c_res));
406
691
        return Status::OK();
407
691
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
594
                          const IColumn* c1) const {
344
594
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
594
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
594
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
594
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
594
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
594
        DCHECK(!(c0_const && c1_const));
353
594
        const ColumnString::Chars* c0_const_chars = nullptr;
354
594
        const ColumnString::Chars* c1_const_chars = nullptr;
355
594
        ColumnString::Offset c0_const_size = 0;
356
594
        ColumnString::Offset c1_const_size = 0;
357
358
594
        if (c0_const) {
359
6
            const ColumnString* c0_const_string =
360
6
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
6
            if (c0_const_string) {
363
6
                c0_const_chars = &c0_const_string->get_chars();
364
6
                c0_const_size = c0_const_string->get_offsets()[0];
365
6
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
6
        }
370
371
594
        if (c1_const) {
372
253
            const ColumnString* c1_const_string =
373
253
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
253
            if (c1_const_string) {
376
253
                c1_const_chars = &c1_const_string->get_chars();
377
253
                c1_const_size = c1_const_string->get_offsets()[0];
378
253
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
253
        }
383
384
594
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
594
        auto c_res = ColumnUInt8::create();
387
594
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
594
        vec_res.resize(c0->size());
389
390
594
        if (c0_string && c1_string) {
391
335
            StringImpl::string_vector_string_vector(
392
335
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
335
                    c1_string->get_offsets(), vec_res);
394
335
        } else if (c0_string && c1_const) {
395
253
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
253
                                               *c1_const_chars, c1_const_size, vec_res);
397
253
        } else if (c0_const && c1_string) {
398
6
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
6
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
6
                                               vec_res);
401
6
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
594
        block.replace_by_position(result, std::move(c_res));
406
594
        return Status::OK();
407
594
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
1.81k
                          const IColumn* c1) const {
344
1.81k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
1.81k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
1.81k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
1.81k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
1.81k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
1.81k
        DCHECK(!(c0_const && c1_const));
353
1.81k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
1.81k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
1.81k
        ColumnString::Offset c0_const_size = 0;
356
1.81k
        ColumnString::Offset c1_const_size = 0;
357
358
1.81k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
1.81k
        if (c1_const) {
372
1.81k
            const ColumnString* c1_const_string =
373
1.81k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
1.81k
            if (c1_const_string) {
376
1.81k
                c1_const_chars = &c1_const_string->get_chars();
377
1.81k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
1.81k
        }
383
384
1.81k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
1.81k
        auto c_res = ColumnUInt8::create();
387
1.81k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
1.81k
        vec_res.resize(c0->size());
389
390
1.81k
        if (c0_string && c1_string) {
391
0
            StringImpl::string_vector_string_vector(
392
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
0
                    c1_string->get_offsets(), vec_res);
394
1.81k
        } else if (c0_string && c1_const) {
395
1.81k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
1.81k
                                               *c1_const_chars, c1_const_size, vec_res);
397
1.81k
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
1.81k
        block.replace_by_position(result, std::move(c_res));
406
1.81k
        return Status::OK();
407
1.81k
    }
408
409
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
410
159
                                         const IColumn* c1) const {
411
159
        bool c0_const = is_column_const(*c0);
412
159
        bool c1_const = is_column_const(*c1);
413
414
159
        DCHECK(!(c0_const && c1_const));
415
416
159
        auto c_res = ColumnUInt8::create();
417
159
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
159
        vec_res.resize(c0->size());
419
420
159
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
159
        } else if (c1_const) {
423
150
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
150
        } else {
425
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
9
        }
427
428
159
        block.replace_by_position(result, std::move(c_res));
429
159
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
17
                                         const IColumn* c1) const {
411
17
        bool c0_const = is_column_const(*c0);
412
17
        bool c1_const = is_column_const(*c1);
413
414
17
        DCHECK(!(c0_const && c1_const));
415
416
17
        auto c_res = ColumnUInt8::create();
417
17
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
17
        vec_res.resize(c0->size());
419
420
17
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
17
        } else if (c1_const) {
423
13
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
13
        } else {
425
4
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
4
        }
427
428
17
        block.replace_by_position(result, std::move(c_res));
429
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
8
                                         const IColumn* c1) const {
411
8
        bool c0_const = is_column_const(*c0);
412
8
        bool c1_const = is_column_const(*c1);
413
414
8
        DCHECK(!(c0_const && c1_const));
415
416
8
        auto c_res = ColumnUInt8::create();
417
8
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
8
        vec_res.resize(c0->size());
419
420
8
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
8
        } else if (c1_const) {
423
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
8
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
8
        block.replace_by_position(result, std::move(c_res));
429
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
9
                                         const IColumn* c1) const {
411
9
        bool c0_const = is_column_const(*c0);
412
9
        bool c1_const = is_column_const(*c1);
413
414
9
        DCHECK(!(c0_const && c1_const));
415
416
9
        auto c_res = ColumnUInt8::create();
417
9
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
9
        vec_res.resize(c0->size());
419
420
9
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
9
        } else if (c1_const) {
423
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
8
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
9
        block.replace_by_position(result, std::move(c_res));
429
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
56
                                         const IColumn* c1) const {
411
56
        bool c0_const = is_column_const(*c0);
412
56
        bool c1_const = is_column_const(*c1);
413
414
56
        DCHECK(!(c0_const && c1_const));
415
416
56
        auto c_res = ColumnUInt8::create();
417
56
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
56
        vec_res.resize(c0->size());
419
420
56
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
56
        } else if (c1_const) {
423
55
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
55
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
56
        block.replace_by_position(result, std::move(c_res));
429
56
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
11
                                         const IColumn* c1) const {
411
11
        bool c0_const = is_column_const(*c0);
412
11
        bool c1_const = is_column_const(*c1);
413
414
11
        DCHECK(!(c0_const && c1_const));
415
416
11
        auto c_res = ColumnUInt8::create();
417
11
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
11
        vec_res.resize(c0->size());
419
420
11
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
11
        } else if (c1_const) {
423
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
8
        } else {
425
3
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
3
        }
427
428
11
        block.replace_by_position(result, std::move(c_res));
429
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
58
                                         const IColumn* c1) const {
411
58
        bool c0_const = is_column_const(*c0);
412
58
        bool c1_const = is_column_const(*c1);
413
414
58
        DCHECK(!(c0_const && c1_const));
415
416
58
        auto c_res = ColumnUInt8::create();
417
58
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
58
        vec_res.resize(c0->size());
419
420
58
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
58
        } else if (c1_const) {
423
58
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
58
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
58
        block.replace_by_position(result, std::move(c_res));
429
58
    }
430
431
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
432
159
                           const ColumnWithTypeAndName& c1) const {
433
159
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
159
        return Status::OK();
435
159
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
17
                           const ColumnWithTypeAndName& c1) const {
433
17
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
17
        return Status::OK();
435
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
8
                           const ColumnWithTypeAndName& c1) const {
433
8
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
8
        return Status::OK();
435
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
9
                           const ColumnWithTypeAndName& c1) const {
433
9
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
9
        return Status::OK();
435
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
56
                           const ColumnWithTypeAndName& c1) const {
433
56
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
56
        return Status::OK();
435
56
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
11
                           const ColumnWithTypeAndName& c1) const {
433
11
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
11
        return Status::OK();
435
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
58
                           const ColumnWithTypeAndName& c1) const {
433
58
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
58
        return Status::OK();
435
58
    }
436
437
public:
438
222
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
63
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
37
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
438
39
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
81
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
438
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
1
    String get_name() const override { return name; }
439
440
462k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
426k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
1.32k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
440
6.24k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
10.6k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
440
3.12k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
13.9k
    size_t get_number_of_arguments() const override { return 2; }
441
442
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
443
461k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
461k
        return std::make_shared<DataTypeUInt8>();
445
461k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
426k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
426k
        return std::make_shared<DataTypeUInt8>();
445
426k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
1.32k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
1.32k
        return std::make_shared<DataTypeUInt8>();
445
1.32k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
6.24k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
6.24k
        return std::make_shared<DataTypeUInt8>();
445
6.24k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
10.6k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
10.6k
        return std::make_shared<DataTypeUInt8>();
445
10.6k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
3.12k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
3.12k
        return std::make_shared<DataTypeUInt8>();
445
3.12k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
13.9k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
13.9k
        return std::make_shared<DataTypeUInt8>();
445
13.9k
    }
446
447
    Status evaluate_inverted_index(
448
            const ColumnsWithTypeAndName& arguments,
449
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
450
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
451
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
452
1.78k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
1.78k
        DCHECK(arguments.size() == 1);
454
1.78k
        DCHECK(data_type_with_names.size() == 1);
455
1.78k
        DCHECK(iterators.size() == 1);
456
1.78k
        auto* iter = iterators[0];
457
1.78k
        auto data_type_with_name = data_type_with_names[0];
458
1.78k
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
1.78k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
446
            return Status::OK();
463
446
        }
464
1.34k
        segment_v2::InvertedIndexQueryType query_type;
465
1.34k
        std::string_view name_view(name);
466
1.34k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
885
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
885
        } else if (name_view == NameLess::name) {
469
114
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
342
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
244
        } else if (name_view == NameGreater::name) {
473
114
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
138
        } else if (name_view == NameGreaterOrEquals::name) {
475
138
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
1.34k
        if (segment_v2::is_range_query(query_type) &&
481
1.34k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
171
            return Status::OK();
484
171
        }
485
1.17k
        Field param_value;
486
1.17k
        arguments[0].column->get(0, param_value);
487
1.17k
        if (param_value.is_null()) {
488
2
            return Status::OK();
489
2
        }
490
1.17k
        segment_v2::InvertedIndexParam param;
491
1.17k
        param.column_name = data_type_with_name.first;
492
1.17k
        param.column_type = data_type_with_name.second;
493
1.17k
        param.query_value = param_value;
494
1.17k
        param.query_type = query_type;
495
1.17k
        param.num_rows = num_rows;
496
1.17k
        param.roaring = std::make_shared<roaring::Roaring>();
497
1.17k
        param.analyzer_ctx = analyzer_ctx;
498
1.17k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
1.01k
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
1.01k
        if (iter->has_null()) {
501
1.00k
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
1.00k
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
1.00k
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
1.00k
        }
505
1.01k
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
1.01k
        bitmap_result = result;
507
1.01k
        bitmap_result.mask_out_null();
508
509
1.01k
        if (name_view == NameNotEquals::name) {
510
63
            roaring::Roaring full_result;
511
63
            full_result.addRange(0, num_rows);
512
63
            bitmap_result.op_not(&full_result);
513
63
        }
514
515
1.01k
        return Status::OK();
516
1.01k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
897
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
897
        DCHECK(arguments.size() == 1);
454
897
        DCHECK(data_type_with_names.size() == 1);
455
897
        DCHECK(iterators.size() == 1);
456
897
        auto* iter = iterators[0];
457
897
        auto data_type_with_name = data_type_with_names[0];
458
897
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
897
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
88
            return Status::OK();
463
88
        }
464
809
        segment_v2::InvertedIndexQueryType query_type;
465
809
        std::string_view name_view(name);
466
815
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
815
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
18.4E
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
18.4E
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
18.4E
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
815
        if (segment_v2::is_range_query(query_type) &&
481
815
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
0
            return Status::OK();
484
0
        }
485
815
        Field param_value;
486
815
        arguments[0].column->get(0, param_value);
487
815
        if (param_value.is_null()) {
488
2
            return Status::OK();
489
2
        }
490
813
        segment_v2::InvertedIndexParam param;
491
813
        param.column_name = data_type_with_name.first;
492
813
        param.column_type = data_type_with_name.second;
493
813
        param.query_value = param_value;
494
813
        param.query_type = query_type;
495
813
        param.num_rows = num_rows;
496
813
        param.roaring = std::make_shared<roaring::Roaring>();
497
813
        param.analyzer_ctx = analyzer_ctx;
498
813
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
757
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
757
        if (iter->has_null()) {
501
754
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
754
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
754
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
754
        }
505
757
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
757
        bitmap_result = result;
507
757
        bitmap_result.mask_out_null();
508
509
757
        if (name_view == NameNotEquals::name) {
510
0
            roaring::Roaring full_result;
511
0
            full_result.addRange(0, num_rows);
512
0
            bitmap_result.op_not(&full_result);
513
0
        }
514
515
757
        return Status::OK();
516
757
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
78
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
78
        DCHECK(arguments.size() == 1);
454
78
        DCHECK(data_type_with_names.size() == 1);
455
78
        DCHECK(iterators.size() == 1);
456
78
        auto* iter = iterators[0];
457
78
        auto data_type_with_name = data_type_with_names[0];
458
78
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
78
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
8
            return Status::OK();
463
8
        }
464
70
        segment_v2::InvertedIndexQueryType query_type;
465
70
        std::string_view name_view(name);
466
70
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
70
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
70
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
0
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
0
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
0
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
70
        if (segment_v2::is_range_query(query_type) &&
481
70
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
0
            return Status::OK();
484
0
        }
485
70
        Field param_value;
486
70
        arguments[0].column->get(0, param_value);
487
70
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
70
        segment_v2::InvertedIndexParam param;
491
70
        param.column_name = data_type_with_name.first;
492
70
        param.column_type = data_type_with_name.second;
493
70
        param.query_value = param_value;
494
70
        param.query_type = query_type;
495
70
        param.num_rows = num_rows;
496
70
        param.roaring = std::make_shared<roaring::Roaring>();
497
70
        param.analyzer_ctx = analyzer_ctx;
498
70
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
63
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
63
        if (iter->has_null()) {
501
63
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
63
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
63
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
63
        }
505
63
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
63
        bitmap_result = result;
507
63
        bitmap_result.mask_out_null();
508
509
63
        if (name_view == NameNotEquals::name) {
510
63
            roaring::Roaring full_result;
511
63
            full_result.addRange(0, num_rows);
512
63
            bitmap_result.op_not(&full_result);
513
63
        }
514
515
63
        return Status::OK();
516
63
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
176
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
176
        DCHECK(arguments.size() == 1);
454
176
        DCHECK(data_type_with_names.size() == 1);
455
176
        DCHECK(iterators.size() == 1);
456
176
        auto* iter = iterators[0];
457
176
        auto data_type_with_name = data_type_with_names[0];
458
176
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
176
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
62
            return Status::OK();
463
62
        }
464
114
        segment_v2::InvertedIndexQueryType query_type;
465
114
        std::string_view name_view(name);
466
114
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
114
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
114
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
114
        } else if (name_view == NameGreater::name) {
473
114
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
114
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
114
        if (segment_v2::is_range_query(query_type) &&
481
114
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
28
            return Status::OK();
484
28
        }
485
86
        Field param_value;
486
86
        arguments[0].column->get(0, param_value);
487
86
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
86
        segment_v2::InvertedIndexParam param;
491
86
        param.column_name = data_type_with_name.first;
492
86
        param.column_type = data_type_with_name.second;
493
86
        param.query_value = param_value;
494
86
        param.query_type = query_type;
495
86
        param.num_rows = num_rows;
496
86
        param.roaring = std::make_shared<roaring::Roaring>();
497
86
        param.analyzer_ctx = analyzer_ctx;
498
86
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
68
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
68
        if (iter->has_null()) {
501
67
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
67
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
67
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
67
        }
505
68
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
68
        bitmap_result = result;
507
68
        bitmap_result.mask_out_null();
508
509
68
        if (name_view == NameNotEquals::name) {
510
0
            roaring::Roaring full_result;
511
0
            full_result.addRange(0, num_rows);
512
0
            bitmap_result.op_not(&full_result);
513
0
        }
514
515
68
        return Status::OK();
516
68
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
252
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
252
        DCHECK(arguments.size() == 1);
454
252
        DCHECK(data_type_with_names.size() == 1);
455
252
        DCHECK(iterators.size() == 1);
456
252
        auto* iter = iterators[0];
457
252
        auto data_type_with_name = data_type_with_names[0];
458
252
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
252
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
114
            return Status::OK();
463
114
        }
464
138
        segment_v2::InvertedIndexQueryType query_type;
465
138
        std::string_view name_view(name);
466
138
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
138
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
138
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
138
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
138
        } else if (name_view == NameGreaterOrEquals::name) {
475
138
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
138
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
138
        if (segment_v2::is_range_query(query_type) &&
481
138
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
59
            return Status::OK();
484
59
        }
485
79
        Field param_value;
486
79
        arguments[0].column->get(0, param_value);
487
79
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
79
        segment_v2::InvertedIndexParam param;
491
79
        param.column_name = data_type_with_name.first;
492
79
        param.column_type = data_type_with_name.second;
493
79
        param.query_value = param_value;
494
79
        param.query_type = query_type;
495
79
        param.num_rows = num_rows;
496
79
        param.roaring = std::make_shared<roaring::Roaring>();
497
79
        param.analyzer_ctx = analyzer_ctx;
498
79
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
37
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
37
        if (iter->has_null()) {
501
37
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
37
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
37
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
37
        }
505
37
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
37
        bitmap_result = result;
507
37
        bitmap_result.mask_out_null();
508
509
37
        if (name_view == NameNotEquals::name) {
510
0
            roaring::Roaring full_result;
511
0
            full_result.addRange(0, num_rows);
512
0
            bitmap_result.op_not(&full_result);
513
0
        }
514
515
37
        return Status::OK();
516
37
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
175
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
175
        DCHECK(arguments.size() == 1);
454
175
        DCHECK(data_type_with_names.size() == 1);
455
175
        DCHECK(iterators.size() == 1);
456
175
        auto* iter = iterators[0];
457
175
        auto data_type_with_name = data_type_with_names[0];
458
175
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
175
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
61
            return Status::OK();
463
61
        }
464
114
        segment_v2::InvertedIndexQueryType query_type;
465
114
        std::string_view name_view(name);
466
114
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
114
        } else if (name_view == NameLess::name) {
469
114
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
114
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
0
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
0
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
114
        if (segment_v2::is_range_query(query_type) &&
481
114
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
26
            return Status::OK();
484
26
        }
485
88
        Field param_value;
486
88
        arguments[0].column->get(0, param_value);
487
88
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
88
        segment_v2::InvertedIndexParam param;
491
88
        param.column_name = data_type_with_name.first;
492
88
        param.column_type = data_type_with_name.second;
493
88
        param.query_value = param_value;
494
88
        param.query_type = query_type;
495
88
        param.num_rows = num_rows;
496
88
        param.roaring = std::make_shared<roaring::Roaring>();
497
88
        param.analyzer_ctx = analyzer_ctx;
498
88
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
67
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
67
        if (iter->has_null()) {
501
67
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
67
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
67
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
67
        }
505
67
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
67
        bitmap_result = result;
507
67
        bitmap_result.mask_out_null();
508
509
67
        if (name_view == NameNotEquals::name) {
510
0
            roaring::Roaring full_result;
511
0
            full_result.addRange(0, num_rows);
512
0
            bitmap_result.op_not(&full_result);
513
0
        }
514
515
67
        return Status::OK();
516
67
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
209
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
209
        DCHECK(arguments.size() == 1);
454
209
        DCHECK(data_type_with_names.size() == 1);
455
209
        DCHECK(iterators.size() == 1);
456
209
        auto* iter = iterators[0];
457
209
        auto data_type_with_name = data_type_with_names[0];
458
209
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
209
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
113
            return Status::OK();
463
113
        }
464
96
        segment_v2::InvertedIndexQueryType query_type;
465
96
        std::string_view name_view(name);
466
98
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
96
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
98
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
18.4E
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
98
        if (segment_v2::is_range_query(query_type) &&
481
98
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
58
            return Status::OK();
484
58
        }
485
40
        Field param_value;
486
40
        arguments[0].column->get(0, param_value);
487
40
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
40
        segment_v2::InvertedIndexParam param;
491
40
        param.column_name = data_type_with_name.first;
492
40
        param.column_type = data_type_with_name.second;
493
40
        param.query_value = param_value;
494
40
        param.query_type = query_type;
495
40
        param.num_rows = num_rows;
496
40
        param.roaring = std::make_shared<roaring::Roaring>();
497
40
        param.analyzer_ctx = analyzer_ctx;
498
40
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
19
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
19
        if (iter->has_null()) {
501
19
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
19
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
19
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
19
        }
505
19
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
19
        bitmap_result = result;
507
19
        bitmap_result.mask_out_null();
508
509
19
        if (name_view == NameNotEquals::name) {
510
0
            roaring::Roaring full_result;
511
0
            full_result.addRange(0, num_rows);
512
0
            bitmap_result.op_not(&full_result);
513
0
        }
514
515
19
        return Status::OK();
516
19
    }
517
518
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
519
418k
                        uint32_t result, size_t input_rows_count) const override {
520
418k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
418k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
418k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
418k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
418k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
418k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
418k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
418k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
418k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
418k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
0
                block.get_by_position(result).column =
542
0
                        DataTypeUInt8()
543
0
                                .create_column_const(input_rows_count,
544
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
0
                                ->convert_to_full_column_if_const();
546
0
                return Status::OK();
547
0
            } else {
548
0
                block.get_by_position(result).column =
549
0
                        DataTypeUInt8()
550
0
                                .create_column_const(input_rows_count,
551
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
0
                                ->convert_to_full_column_if_const();
553
0
                return Status::OK();
554
0
            }
555
0
        }
556
557
662k
        auto can_compare = [](PrimitiveType t) -> bool {
558
662k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
662k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
266k
        auto can_compare = [](PrimitiveType t) -> bool {
558
266k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
266k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
15.4k
        auto can_compare = [](PrimitiveType t) -> bool {
558
15.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
15.4k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
103k
        auto can_compare = [](PrimitiveType t) -> bool {
558
103k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
103k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
35.9k
        auto can_compare = [](PrimitiveType t) -> bool {
558
35.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
35.9k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
29.6k
        auto can_compare = [](PrimitiveType t) -> bool {
558
29.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
29.6k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
211k
        auto can_compare = [](PrimitiveType t) -> bool {
558
211k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
211k
        };
560
561
418k
        if (can_compare(left_type->get_primitive_type()) &&
562
418k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
244k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
244k
        }
570
571
418k
        auto compare_type = left_type->get_primitive_type();
572
418k
        switch (compare_type) {
573
2.22k
        case TYPE_BOOLEAN:
574
2.22k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
17.4k
        case TYPE_DATEV2:
576
17.4k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
2.45k
        case TYPE_DATETIMEV2:
578
2.45k
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
12
        case TYPE_TIMESTAMPTZ:
580
12
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
10.7k
        case TYPE_TINYINT:
582
10.7k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
4.35k
        case TYPE_SMALLINT:
584
4.35k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
158k
        case TYPE_INT:
586
158k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
43.7k
        case TYPE_BIGINT:
588
43.7k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
739
        case TYPE_LARGEINT:
590
739
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
71
        case TYPE_IPV4:
592
71
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
48
        case TYPE_IPV6:
594
48
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
788
        case TYPE_FLOAT:
596
788
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
3.56k
        case TYPE_DOUBLE:
598
3.56k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
4
        case TYPE_TIMEV2:
600
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
489
        case TYPE_DECIMAL32:
603
142k
        case TYPE_DECIMAL64:
604
146k
        case TYPE_DECIMAL128I:
605
146k
        case TYPE_DECIMAL256:
606
146k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
146k
                                   col_with_type_and_name_right);
608
1.50k
        case TYPE_CHAR:
609
11.2k
        case TYPE_VARCHAR:
610
27.2k
        case TYPE_STRING:
611
27.2k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
159
        default:
613
159
            return execute_generic(block, result, col_with_type_and_name_left,
614
159
                                   col_with_type_and_name_right);
615
418k
        }
616
0
        return Status::OK();
617
418k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
145k
                        uint32_t result, size_t input_rows_count) const override {
520
145k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
145k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
145k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
145k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
145k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
145k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
145k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
145k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
145k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
145k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
0
                block.get_by_position(result).column =
542
0
                        DataTypeUInt8()
543
0
                                .create_column_const(input_rows_count,
544
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
0
                                ->convert_to_full_column_if_const();
546
0
                return Status::OK();
547
            } else {
548
                block.get_by_position(result).column =
549
                        DataTypeUInt8()
550
                                .create_column_const(input_rows_count,
551
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
                                ->convert_to_full_column_if_const();
553
                return Status::OK();
554
            }
555
0
        }
556
557
0
        auto can_compare = [](PrimitiveType t) -> bool {
558
145k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
145k
        };
560
561
145k
        if (can_compare(left_type->get_primitive_type()) &&
562
145k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
121k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
121k
        }
570
571
145k
        auto compare_type = left_type->get_primitive_type();
572
145k
        switch (compare_type) {
573
1.60k
        case TYPE_BOOLEAN:
574
1.60k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
1.23k
        case TYPE_DATEV2:
576
1.23k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
639
        case TYPE_DATETIMEV2:
578
639
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
3
        case TYPE_TIMESTAMPTZ:
580
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
6.88k
        case TYPE_TINYINT:
582
6.88k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
1.43k
        case TYPE_SMALLINT:
584
1.43k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
85.2k
        case TYPE_INT:
586
85.2k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
23.6k
        case TYPE_BIGINT:
588
23.6k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
157
        case TYPE_LARGEINT:
590
157
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
32
        case TYPE_IPV4:
592
32
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
30
        case TYPE_IPV6:
594
30
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
108
        case TYPE_FLOAT:
596
108
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
382
        case TYPE_DOUBLE:
598
382
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
4
        case TYPE_TIMEV2:
600
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
241
        case TYPE_DECIMAL32:
603
506
        case TYPE_DECIMAL64:
604
1.70k
        case TYPE_DECIMAL128I:
605
1.73k
        case TYPE_DECIMAL256:
606
1.73k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
1.73k
                                   col_with_type_and_name_right);
608
999
        case TYPE_CHAR:
609
9.14k
        case TYPE_VARCHAR:
610
22.4k
        case TYPE_STRING:
611
22.4k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
17
        default:
613
17
            return execute_generic(block, result, col_with_type_and_name_left,
614
17
                                   col_with_type_and_name_right);
615
145k
        }
616
0
        return Status::OK();
617
145k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
8.68k
                        uint32_t result, size_t input_rows_count) const override {
520
8.68k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
8.68k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
8.68k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
8.68k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
8.68k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
8.68k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
8.68k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
8.68k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
8.68k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
8.68k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
                block.get_by_position(result).column =
542
                        DataTypeUInt8()
543
                                .create_column_const(input_rows_count,
544
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
                                ->convert_to_full_column_if_const();
546
                return Status::OK();
547
0
            } else {
548
0
                block.get_by_position(result).column =
549
0
                        DataTypeUInt8()
550
0
                                .create_column_const(input_rows_count,
551
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
0
                                ->convert_to_full_column_if_const();
553
0
                return Status::OK();
554
0
            }
555
0
        }
556
557
0
        auto can_compare = [](PrimitiveType t) -> bool {
558
8.68k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
8.68k
        };
560
561
8.68k
        if (can_compare(left_type->get_primitive_type()) &&
562
8.68k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
6.76k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
6.76k
        }
570
571
8.68k
        auto compare_type = left_type->get_primitive_type();
572
8.68k
        switch (compare_type) {
573
0
        case TYPE_BOOLEAN:
574
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
78
        case TYPE_DATEV2:
576
78
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
2
        case TYPE_DATETIMEV2:
578
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
0
        case TYPE_TIMESTAMPTZ:
580
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
100
        case TYPE_TINYINT:
582
100
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
26
        case TYPE_SMALLINT:
584
26
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
3.42k
        case TYPE_INT:
586
3.42k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
3.01k
        case TYPE_BIGINT:
588
3.01k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
0
        case TYPE_LARGEINT:
590
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
0
        case TYPE_IPV4:
592
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
0
        case TYPE_IPV6:
594
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
48
        case TYPE_FLOAT:
596
48
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
60
        case TYPE_DOUBLE:
598
60
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
0
        case TYPE_TIMEV2:
600
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
0
        case TYPE_DECIMAL32:
603
58
        case TYPE_DECIMAL64:
604
382
        case TYPE_DECIMAL128I:
605
412
        case TYPE_DECIMAL256:
606
412
            return execute_decimal(block, result, col_with_type_and_name_left,
607
412
                                   col_with_type_and_name_right);
608
17
        case TYPE_CHAR:
609
340
        case TYPE_VARCHAR:
610
1.50k
        case TYPE_STRING:
611
1.50k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
8
        default:
613
8
            return execute_generic(block, result, col_with_type_and_name_left,
614
8
                                   col_with_type_and_name_right);
615
8.68k
        }
616
0
        return Status::OK();
617
8.68k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
53.2k
                        uint32_t result, size_t input_rows_count) const override {
520
53.2k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
53.2k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
53.2k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
53.2k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
53.2k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
53.2k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
53.2k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
53.2k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
53.2k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
53.2k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
                block.get_by_position(result).column =
542
                        DataTypeUInt8()
543
                                .create_column_const(input_rows_count,
544
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
                                ->convert_to_full_column_if_const();
546
                return Status::OK();
547
0
            } else {
548
0
                block.get_by_position(result).column =
549
0
                        DataTypeUInt8()
550
0
                                .create_column_const(input_rows_count,
551
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
0
                                ->convert_to_full_column_if_const();
553
0
                return Status::OK();
554
0
            }
555
0
        }
556
557
0
        auto can_compare = [](PrimitiveType t) -> bool {
558
53.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
53.2k
        };
560
561
53.2k
        if (can_compare(left_type->get_primitive_type()) &&
562
53.2k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
49.9k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
49.9k
        }
570
571
53.2k
        auto compare_type = left_type->get_primitive_type();
572
53.2k
        switch (compare_type) {
573
0
        case TYPE_BOOLEAN:
574
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
1.31k
        case TYPE_DATEV2:
576
1.31k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
94
        case TYPE_DATETIMEV2:
578
94
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
2
        case TYPE_TIMESTAMPTZ:
580
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
1.06k
        case TYPE_TINYINT:
582
1.06k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
1.91k
        case TYPE_SMALLINT:
584
1.91k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
29.0k
        case TYPE_INT:
586
29.0k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
13.5k
        case TYPE_BIGINT:
588
13.5k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
257
        case TYPE_LARGEINT:
590
257
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
2
        case TYPE_IPV4:
592
2
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
1
        case TYPE_IPV6:
594
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
236
        case TYPE_FLOAT:
596
236
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
2.50k
        case TYPE_DOUBLE:
598
2.50k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
0
        case TYPE_TIMEV2:
600
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
46
        case TYPE_DECIMAL32:
603
1.64k
        case TYPE_DECIMAL64:
604
3.04k
        case TYPE_DECIMAL128I:
605
3.05k
        case TYPE_DECIMAL256:
606
3.05k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
3.05k
                                   col_with_type_and_name_right);
608
21
        case TYPE_CHAR:
609
83
        case TYPE_VARCHAR:
610
194
        case TYPE_STRING:
611
194
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
9
        default:
613
9
            return execute_generic(block, result, col_with_type_and_name_left,
614
9
                                   col_with_type_and_name_right);
615
53.2k
        }
616
0
        return Status::OK();
617
53.2k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
18.5k
                        uint32_t result, size_t input_rows_count) const override {
520
18.5k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
18.5k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
18.5k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
18.5k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
18.5k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
18.5k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
18.5k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
18.5k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
18.5k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
18.5k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
0
                block.get_by_position(result).column =
542
0
                        DataTypeUInt8()
543
0
                                .create_column_const(input_rows_count,
544
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
0
                                ->convert_to_full_column_if_const();
546
0
                return Status::OK();
547
            } else {
548
                block.get_by_position(result).column =
549
                        DataTypeUInt8()
550
                                .create_column_const(input_rows_count,
551
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
                                ->convert_to_full_column_if_const();
553
                return Status::OK();
554
            }
555
0
        }
556
557
0
        auto can_compare = [](PrimitiveType t) -> bool {
558
18.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
18.5k
        };
560
561
18.5k
        if (can_compare(left_type->get_primitive_type()) &&
562
18.5k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
17.4k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
17.4k
        }
570
571
18.5k
        auto compare_type = left_type->get_primitive_type();
572
18.5k
        switch (compare_type) {
573
147
        case TYPE_BOOLEAN:
574
147
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
1.67k
        case TYPE_DATEV2:
576
1.67k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
619
        case TYPE_DATETIMEV2:
578
619
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
2
        case TYPE_TIMESTAMPTZ:
580
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
114
        case TYPE_TINYINT:
582
114
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
169
        case TYPE_SMALLINT:
584
169
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
13.5k
        case TYPE_INT:
586
13.5k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
796
        case TYPE_BIGINT:
588
796
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
41
        case TYPE_LARGEINT:
590
41
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
11
        case TYPE_IPV4:
592
11
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
1
        case TYPE_IPV6:
594
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
128
        case TYPE_FLOAT:
596
128
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
141
        case TYPE_DOUBLE:
598
141
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
0
        case TYPE_TIMEV2:
600
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
9
        case TYPE_DECIMAL32:
603
301
        case TYPE_DECIMAL64:
604
371
        case TYPE_DECIMAL128I:
605
392
        case TYPE_DECIMAL256:
606
392
            return execute_decimal(block, result, col_with_type_and_name_left,
607
392
                                   col_with_type_and_name_right);
608
40
        case TYPE_CHAR:
609
324
        case TYPE_VARCHAR:
610
691
        case TYPE_STRING:
611
691
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
56
        default:
613
56
            return execute_generic(block, result, col_with_type_and_name_left,
614
56
                                   col_with_type_and_name_right);
615
18.5k
        }
616
0
        return Status::OK();
617
18.5k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
15.6k
                        uint32_t result, size_t input_rows_count) const override {
520
15.6k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
15.6k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
15.6k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
15.6k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
15.6k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
15.6k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
15.6k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
15.6k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
15.6k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
15.6k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
                block.get_by_position(result).column =
542
                        DataTypeUInt8()
543
                                .create_column_const(input_rows_count,
544
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
                                ->convert_to_full_column_if_const();
546
                return Status::OK();
547
0
            } else {
548
0
                block.get_by_position(result).column =
549
0
                        DataTypeUInt8()
550
0
                                .create_column_const(input_rows_count,
551
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
0
                                ->convert_to_full_column_if_const();
553
0
                return Status::OK();
554
0
            }
555
0
        }
556
557
0
        auto can_compare = [](PrimitiveType t) -> bool {
558
15.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
15.6k
        };
560
561
15.6k
        if (can_compare(left_type->get_primitive_type()) &&
562
15.6k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
14.0k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
14.0k
        }
570
571
15.6k
        auto compare_type = left_type->get_primitive_type();
572
15.6k
        switch (compare_type) {
573
81
        case TYPE_BOOLEAN:
574
81
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
2.42k
        case TYPE_DATEV2:
576
2.42k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
551
        case TYPE_DATETIMEV2:
578
551
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
3
        case TYPE_TIMESTAMPTZ:
580
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
2.15k
        case TYPE_TINYINT:
582
2.15k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
370
        case TYPE_SMALLINT:
584
370
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
5.99k
        case TYPE_INT:
586
5.99k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
1.72k
        case TYPE_BIGINT:
588
1.72k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
245
        case TYPE_LARGEINT:
590
245
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
16
        case TYPE_IPV4:
592
16
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
16
        case TYPE_IPV6:
594
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
144
        case TYPE_FLOAT:
596
144
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
335
        case TYPE_DOUBLE:
598
335
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
0
        case TYPE_TIMEV2:
600
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
188
        case TYPE_DECIMAL32:
603
418
        case TYPE_DECIMAL64:
604
949
        case TYPE_DECIMAL128I:
605
950
        case TYPE_DECIMAL256:
606
950
            return execute_decimal(block, result, col_with_type_and_name_left,
607
950
                                   col_with_type_and_name_right);
608
160
        case TYPE_CHAR:
609
309
        case TYPE_VARCHAR:
610
594
        case TYPE_STRING:
611
594
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
11
        default:
613
11
            return execute_generic(block, result, col_with_type_and_name_left,
614
11
                                   col_with_type_and_name_right);
615
15.6k
        }
616
0
        return Status::OK();
617
15.6k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
176k
                        uint32_t result, size_t input_rows_count) const override {
520
176k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
176k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
176k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
176k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
176k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
176k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
176k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
176k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
176k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
176k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
0
                block.get_by_position(result).column =
542
0
                        DataTypeUInt8()
543
0
                                .create_column_const(input_rows_count,
544
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
0
                                ->convert_to_full_column_if_const();
546
0
                return Status::OK();
547
            } else {
548
                block.get_by_position(result).column =
549
                        DataTypeUInt8()
550
                                .create_column_const(input_rows_count,
551
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
                                ->convert_to_full_column_if_const();
553
                return Status::OK();
554
            }
555
0
        }
556
557
0
        auto can_compare = [](PrimitiveType t) -> bool {
558
176k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
176k
        };
560
561
176k
        if (can_compare(left_type->get_primitive_type()) &&
562
176k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
34.8k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
34.8k
        }
570
571
176k
        auto compare_type = left_type->get_primitive_type();
572
176k
        switch (compare_type) {
573
393
        case TYPE_BOOLEAN:
574
393
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
10.7k
        case TYPE_DATEV2:
576
10.7k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
545
        case TYPE_DATETIMEV2:
578
545
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
2
        case TYPE_TIMESTAMPTZ:
580
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
398
        case TYPE_TINYINT:
582
398
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
436
        case TYPE_SMALLINT:
584
436
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
20.9k
        case TYPE_INT:
586
20.9k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
983
        case TYPE_BIGINT:
588
983
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
39
        case TYPE_LARGEINT:
590
39
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
10
        case TYPE_IPV4:
592
10
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
0
        case TYPE_IPV6:
594
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
124
        case TYPE_FLOAT:
596
124
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
139
        case TYPE_DOUBLE:
598
139
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
0
        case TYPE_TIMEV2:
600
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
5
        case TYPE_DECIMAL32:
603
139k
        case TYPE_DECIMAL64:
604
140k
        case TYPE_DECIMAL128I:
605
140k
        case TYPE_DECIMAL256:
606
140k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
140k
                                   col_with_type_and_name_right);
608
271
        case TYPE_CHAR:
609
1.08k
        case TYPE_VARCHAR:
610
1.81k
        case TYPE_STRING:
611
1.81k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
58
        default:
613
58
            return execute_generic(block, result, col_with_type_and_name_left,
614
58
                                   col_with_type_and_name_right);
615
176k
        }
616
0
        return Status::OK();
617
176k
    }
618
};
619
620
} // namespace doris