Coverage Report

Created: 2026-03-27 07:12

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/functions_comparison.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
// This file is copied from
18
// https://github.com/ClickHouse/ClickHouse/blob/master/src/Functions/FunctionsComparison.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include <limits>
24
#include <type_traits>
25
26
#include "common/logging.h"
27
#include "core/accurate_comparison.h"
28
#include "core/assert_cast.h"
29
#include "core/column/column_const.h"
30
#include "core/column/column_decimal.h"
31
#include "core/column/column_nullable.h"
32
#include "core/column/column_string.h"
33
#include "core/data_type/data_type_number.h"
34
#include "core/data_type/data_type_string.h"
35
#include "core/data_type/define_primitive_type.h"
36
#include "core/decimal_comparison.h"
37
#include "core/memcmp_small.h"
38
#include "core/value/vdatetime_value.h"
39
#include "exprs/function/function.h"
40
#include "exprs/function/function_helpers.h"
41
#include "exprs/function/functions_logical.h"
42
#include "storage/index/index_reader_helper.h"
43
44
namespace doris {
45
#include "common/compile_check_begin.h"
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
12.6k
                                        PaddedPODArray<UInt8>& c) {
66
12.6k
        size_t size = a.size();
67
12.6k
        const A* __restrict a_pos = a.data();
68
12.6k
        const B* __restrict b_pos = b.data();
69
12.6k
        UInt8* __restrict c_pos = c.data();
70
12.6k
        const A* __restrict a_end = a_pos + size;
71
72
12.0M
        while (a_pos < a_end) {
73
12.0M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
12.0M
            ++a_pos;
75
12.0M
            ++b_pos;
76
12.0M
            ++c_pos;
77
12.0M
        }
78
12.6k
    }
_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
370
                                        PaddedPODArray<UInt8>& c) {
66
370
        size_t size = a.size();
67
370
        const A* __restrict a_pos = a.data();
68
370
        const B* __restrict b_pos = b.data();
69
370
        UInt8* __restrict c_pos = c.data();
70
370
        const A* __restrict a_end = a_pos + size;
71
72
1.59k
        while (a_pos < a_end) {
73
1.22k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.22k
            ++a_pos;
75
1.22k
            ++b_pos;
76
1.22k
            ++c_pos;
77
1.22k
        }
78
370
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
295
                                        PaddedPODArray<UInt8>& c) {
66
295
        size_t size = a.size();
67
295
        const A* __restrict a_pos = a.data();
68
295
        const B* __restrict b_pos = b.data();
69
295
        UInt8* __restrict c_pos = c.data();
70
295
        const A* __restrict a_end = a_pos + size;
71
72
610
        while (a_pos < a_end) {
73
315
            *c_pos = Op::apply(*a_pos, *b_pos);
74
315
            ++a_pos;
75
315
            ++b_pos;
76
315
            ++c_pos;
77
315
        }
78
295
    }
_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
12
        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
3
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
821
                                        PaddedPODArray<UInt8>& c) {
66
821
        size_t size = a.size();
67
821
        const A* __restrict a_pos = a.data();
68
821
        const B* __restrict b_pos = b.data();
69
821
        UInt8* __restrict c_pos = c.data();
70
821
        const A* __restrict a_end = a_pos + size;
71
72
5.61k
        while (a_pos < a_end) {
73
4.79k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.79k
            ++a_pos;
75
4.79k
            ++b_pos;
76
4.79k
            ++c_pos;
77
4.79k
        }
78
821
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
123
                                        PaddedPODArray<UInt8>& c) {
66
123
        size_t size = a.size();
67
123
        const A* __restrict a_pos = a.data();
68
123
        const B* __restrict b_pos = b.data();
69
123
        UInt8* __restrict c_pos = c.data();
70
123
        const A* __restrict a_end = a_pos + size;
71
72
550
        while (a_pos < a_end) {
73
427
            *c_pos = Op::apply(*a_pos, *b_pos);
74
427
            ++a_pos;
75
427
            ++b_pos;
76
427
            ++c_pos;
77
427
        }
78
123
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
284
                                        PaddedPODArray<UInt8>& c) {
66
284
        size_t size = a.size();
67
284
        const A* __restrict a_pos = a.data();
68
284
        const B* __restrict b_pos = b.data();
69
284
        UInt8* __restrict c_pos = c.data();
70
284
        const A* __restrict a_end = a_pos + size;
71
72
2.08k
        while (a_pos < a_end) {
73
1.79k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.79k
            ++a_pos;
75
1.79k
            ++b_pos;
76
1.79k
            ++c_pos;
77
1.79k
        }
78
284
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
387
                                        PaddedPODArray<UInt8>& c) {
66
387
        size_t size = a.size();
67
387
        const A* __restrict a_pos = a.data();
68
387
        const B* __restrict b_pos = b.data();
69
387
        UInt8* __restrict c_pos = c.data();
70
387
        const A* __restrict a_end = a_pos + size;
71
72
12.0k
        while (a_pos < a_end) {
73
11.6k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
11.6k
            ++a_pos;
75
11.6k
            ++b_pos;
76
11.6k
            ++c_pos;
77
11.6k
        }
78
387
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
108
                                        PaddedPODArray<UInt8>& c) {
66
108
        size_t size = a.size();
67
108
        const A* __restrict a_pos = a.data();
68
108
        const B* __restrict b_pos = b.data();
69
108
        UInt8* __restrict c_pos = c.data();
70
108
        const A* __restrict a_end = a_pos + size;
71
72
240
        while (a_pos < a_end) {
73
132
            *c_pos = Op::apply(*a_pos, *b_pos);
74
132
            ++a_pos;
75
132
            ++b_pos;
76
132
            ++c_pos;
77
132
        }
78
108
    }
_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
97
                                        PaddedPODArray<UInt8>& c) {
66
97
        size_t size = a.size();
67
97
        const A* __restrict a_pos = a.data();
68
97
        const B* __restrict b_pos = b.data();
69
97
        UInt8* __restrict c_pos = c.data();
70
97
        const A* __restrict a_end = a_pos + size;
71
72
213
        while (a_pos < a_end) {
73
116
            *c_pos = Op::apply(*a_pos, *b_pos);
74
116
            ++a_pos;
75
116
            ++b_pos;
76
116
            ++c_pos;
77
116
        }
78
97
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
124
                                        PaddedPODArray<UInt8>& c) {
66
124
        size_t size = a.size();
67
124
        const A* __restrict a_pos = a.data();
68
124
        const B* __restrict b_pos = b.data();
69
124
        UInt8* __restrict c_pos = c.data();
70
124
        const A* __restrict a_end = a_pos + size;
71
72
269
        while (a_pos < a_end) {
73
145
            *c_pos = Op::apply(*a_pos, *b_pos);
74
145
            ++a_pos;
75
145
            ++b_pos;
76
145
            ++c_pos;
77
145
        }
78
124
    }
_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
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
288
        while (a_pos < a_end) {
73
224
            *c_pos = Op::apply(*a_pos, *b_pos);
74
224
            ++a_pos;
75
224
            ++b_pos;
76
224
            ++c_pos;
77
224
        }
78
64
    }
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
816
                                        PaddedPODArray<UInt8>& c) {
66
816
        size_t size = a.size();
67
816
        const A* __restrict a_pos = a.data();
68
816
        const B* __restrict b_pos = b.data();
69
816
        UInt8* __restrict c_pos = c.data();
70
816
        const A* __restrict a_end = a_pos + size;
71
72
398k
        while (a_pos < a_end) {
73
398k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
398k
            ++a_pos;
75
398k
            ++b_pos;
76
398k
            ++c_pos;
77
398k
        }
78
816
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
553
                                        PaddedPODArray<UInt8>& c) {
66
553
        size_t size = a.size();
67
553
        const A* __restrict a_pos = a.data();
68
553
        const B* __restrict b_pos = b.data();
69
553
        UInt8* __restrict c_pos = c.data();
70
553
        const A* __restrict a_end = a_pos + size;
71
72
25.8k
        while (a_pos < a_end) {
73
25.3k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
25.3k
            ++a_pos;
75
25.3k
            ++b_pos;
76
25.3k
            ++c_pos;
77
25.3k
        }
78
553
    }
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.09k
                                        PaddedPODArray<UInt8>& c) {
66
1.09k
        size_t size = a.size();
67
1.09k
        const A* __restrict a_pos = a.data();
68
1.09k
        const B* __restrict b_pos = b.data();
69
1.09k
        UInt8* __restrict c_pos = c.data();
70
1.09k
        const A* __restrict a_end = a_pos + size;
71
72
4.96M
        while (a_pos < a_end) {
73
4.96M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.96M
            ++a_pos;
75
4.96M
            ++b_pos;
76
4.96M
            ++c_pos;
77
4.96M
        }
78
1.09k
    }
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
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
12
        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
3
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
235
                                        PaddedPODArray<UInt8>& c) {
66
235
        size_t size = a.size();
67
235
        const A* __restrict a_pos = a.data();
68
235
        const B* __restrict b_pos = b.data();
69
235
        UInt8* __restrict c_pos = c.data();
70
235
        const A* __restrict a_end = a_pos + size;
71
72
1.97k
        while (a_pos < a_end) {
73
1.74k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.74k
            ++a_pos;
75
1.74k
            ++b_pos;
76
1.74k
            ++c_pos;
77
1.74k
        }
78
235
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
565
                                        PaddedPODArray<UInt8>& c) {
66
565
        size_t size = a.size();
67
565
        const A* __restrict a_pos = a.data();
68
565
        const B* __restrict b_pos = b.data();
69
565
        UInt8* __restrict c_pos = c.data();
70
565
        const A* __restrict a_end = a_pos + size;
71
72
4.50k
        while (a_pos < a_end) {
73
3.93k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.93k
            ++a_pos;
75
3.93k
            ++b_pos;
76
3.93k
            ++c_pos;
77
3.93k
        }
78
565
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1.78k
                                        PaddedPODArray<UInt8>& c) {
66
1.78k
        size_t size = a.size();
67
1.78k
        const A* __restrict a_pos = a.data();
68
1.78k
        const B* __restrict b_pos = b.data();
69
1.78k
        UInt8* __restrict c_pos = c.data();
70
1.78k
        const A* __restrict a_end = a_pos + size;
71
72
5.40M
        while (a_pos < a_end) {
73
5.40M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.40M
            ++a_pos;
75
5.40M
            ++b_pos;
76
5.40M
            ++c_pos;
77
5.40M
        }
78
1.78k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
131
                                        PaddedPODArray<UInt8>& c) {
66
131
        size_t size = a.size();
67
131
        const A* __restrict a_pos = a.data();
68
131
        const B* __restrict b_pos = b.data();
69
131
        UInt8* __restrict c_pos = c.data();
70
131
        const A* __restrict a_end = a_pos + size;
71
72
1.71k
        while (a_pos < a_end) {
73
1.58k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.58k
            ++a_pos;
75
1.58k
            ++b_pos;
76
1.58k
            ++c_pos;
77
1.58k
        }
78
131
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
41
                                        PaddedPODArray<UInt8>& c) {
66
41
        size_t size = a.size();
67
41
        const A* __restrict a_pos = a.data();
68
41
        const B* __restrict b_pos = b.data();
69
41
        UInt8* __restrict c_pos = c.data();
70
41
        const A* __restrict a_end = a_pos + size;
71
72
194
        while (a_pos < a_end) {
73
153
            *c_pos = Op::apply(*a_pos, *b_pos);
74
153
            ++a_pos;
75
153
            ++b_pos;
76
153
            ++c_pos;
77
153
        }
78
41
    }
_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
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
133
        while (a_pos < a_end) {
73
95
            *c_pos = Op::apply(*a_pos, *b_pos);
74
95
            ++a_pos;
75
95
            ++b_pos;
76
95
            ++c_pos;
77
95
        }
78
38
    }
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
7
                                        PaddedPODArray<UInt8>& c) {
66
7
        size_t size = a.size();
67
7
        const A* __restrict a_pos = a.data();
68
7
        const B* __restrict b_pos = b.data();
69
7
        UInt8* __restrict c_pos = c.data();
70
7
        const A* __restrict a_end = a_pos + size;
71
72
38
        while (a_pos < a_end) {
73
31
            *c_pos = Op::apply(*a_pos, *b_pos);
74
31
            ++a_pos;
75
31
            ++b_pos;
76
31
            ++c_pos;
77
31
        }
78
7
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
10
                                        PaddedPODArray<UInt8>& c) {
66
10
        size_t size = a.size();
67
10
        const A* __restrict a_pos = a.data();
68
10
        const B* __restrict b_pos = b.data();
69
10
        UInt8* __restrict c_pos = c.data();
70
10
        const A* __restrict a_end = a_pos + size;
71
72
101
        while (a_pos < a_end) {
73
91
            *c_pos = Op::apply(*a_pos, *b_pos);
74
91
            ++a_pos;
75
91
            ++b_pos;
76
91
            ++c_pos;
77
91
        }
78
10
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_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
12
        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
3
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
7
                                        PaddedPODArray<UInt8>& c) {
66
7
        size_t size = a.size();
67
7
        const A* __restrict a_pos = a.data();
68
7
        const B* __restrict b_pos = b.data();
69
7
        UInt8* __restrict c_pos = c.data();
70
7
        const A* __restrict a_end = a_pos + size;
71
72
26
        while (a_pos < a_end) {
73
19
            *c_pos = Op::apply(*a_pos, *b_pos);
74
19
            ++a_pos;
75
19
            ++b_pos;
76
19
            ++c_pos;
77
19
        }
78
7
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
17
                                        PaddedPODArray<UInt8>& c) {
66
17
        size_t size = a.size();
67
17
        const A* __restrict a_pos = a.data();
68
17
        const B* __restrict b_pos = b.data();
69
17
        UInt8* __restrict c_pos = c.data();
70
17
        const A* __restrict a_end = a_pos + size;
71
72
126
        while (a_pos < a_end) {
73
109
            *c_pos = Op::apply(*a_pos, *b_pos);
74
109
            ++a_pos;
75
109
            ++b_pos;
76
109
            ++c_pos;
77
109
        }
78
17
    }
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
55
                                        PaddedPODArray<UInt8>& c) {
66
55
        size_t size = a.size();
67
55
        const A* __restrict a_pos = a.data();
68
55
        const B* __restrict b_pos = b.data();
69
55
        UInt8* __restrict c_pos = c.data();
70
55
        const A* __restrict a_end = a_pos + size;
71
72
161
        while (a_pos < a_end) {
73
106
            *c_pos = Op::apply(*a_pos, *b_pos);
74
106
            ++a_pos;
75
106
            ++b_pos;
76
106
            ++c_pos;
77
106
        }
78
55
    }
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.73k
                                        PaddedPODArray<UInt8>& c) {
66
1.73k
        size_t size = a.size();
67
1.73k
        const A* __restrict a_pos = a.data();
68
1.73k
        const B* __restrict b_pos = b.data();
69
1.73k
        UInt8* __restrict c_pos = c.data();
70
1.73k
        const A* __restrict a_end = a_pos + size;
71
72
1.22M
        while (a_pos < a_end) {
73
1.22M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.22M
            ++a_pos;
75
1.22M
            ++b_pos;
76
1.22M
            ++c_pos;
77
1.22M
        }
78
1.73k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
237
                                        PaddedPODArray<UInt8>& c) {
66
237
        size_t size = a.size();
67
237
        const A* __restrict a_pos = a.data();
68
237
        const B* __restrict b_pos = b.data();
69
237
        UInt8* __restrict c_pos = c.data();
70
237
        const A* __restrict a_end = a_pos + size;
71
72
474
        while (a_pos < a_end) {
73
237
            *c_pos = Op::apply(*a_pos, *b_pos);
74
237
            ++a_pos;
75
237
            ++b_pos;
76
237
            ++c_pos;
77
237
        }
78
237
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_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
12
        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
3
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
724
                                        PaddedPODArray<UInt8>& c) {
66
724
        size_t size = a.size();
67
724
        const A* __restrict a_pos = a.data();
68
724
        const B* __restrict b_pos = b.data();
69
724
        UInt8* __restrict c_pos = c.data();
70
724
        const A* __restrict a_end = a_pos + size;
71
72
4.95k
        while (a_pos < a_end) {
73
4.23k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.23k
            ++a_pos;
75
4.23k
            ++b_pos;
76
4.23k
            ++c_pos;
77
4.23k
        }
78
724
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
97
                                        PaddedPODArray<UInt8>& c) {
66
97
        size_t size = a.size();
67
97
        const A* __restrict a_pos = a.data();
68
97
        const B* __restrict b_pos = b.data();
69
97
        UInt8* __restrict c_pos = c.data();
70
97
        const A* __restrict a_end = a_pos + size;
71
72
196
        while (a_pos < a_end) {
73
99
            *c_pos = Op::apply(*a_pos, *b_pos);
74
99
            ++a_pos;
75
99
            ++b_pos;
76
99
            ++c_pos;
77
99
        }
78
97
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
160
                                        PaddedPODArray<UInt8>& c) {
66
160
        size_t size = a.size();
67
160
        const A* __restrict a_pos = a.data();
68
160
        const B* __restrict b_pos = b.data();
69
160
        UInt8* __restrict c_pos = c.data();
70
160
        const A* __restrict a_end = a_pos + size;
71
72
808
        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
160
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
212
                                        PaddedPODArray<UInt8>& c) {
66
212
        size_t size = a.size();
67
212
        const A* __restrict a_pos = a.data();
68
212
        const B* __restrict b_pos = b.data();
69
212
        UInt8* __restrict c_pos = c.data();
70
212
        const A* __restrict a_end = a_pos + size;
71
72
5.68k
        while (a_pos < a_end) {
73
5.47k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.47k
            ++a_pos;
75
5.47k
            ++b_pos;
76
5.47k
            ++c_pos;
77
5.47k
        }
78
212
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
193
                                        PaddedPODArray<UInt8>& c) {
66
193
        size_t size = a.size();
67
193
        const A* __restrict a_pos = a.data();
68
193
        const B* __restrict b_pos = b.data();
69
193
        UInt8* __restrict c_pos = c.data();
70
193
        const A* __restrict a_end = a_pos + size;
71
72
535
        while (a_pos < a_end) {
73
342
            *c_pos = Op::apply(*a_pos, *b_pos);
74
342
            ++a_pos;
75
342
            ++b_pos;
76
342
            ++c_pos;
77
342
        }
78
193
    }
_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
109
                                        PaddedPODArray<UInt8>& c) {
66
109
        size_t size = a.size();
67
109
        const A* __restrict a_pos = a.data();
68
109
        const B* __restrict b_pos = b.data();
69
109
        UInt8* __restrict c_pos = c.data();
70
109
        const A* __restrict a_end = a_pos + size;
71
72
237
        while (a_pos < a_end) {
73
128
            *c_pos = Op::apply(*a_pos, *b_pos);
74
128
            ++a_pos;
75
128
            ++b_pos;
76
128
            ++c_pos;
77
128
        }
78
109
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
165
                                        PaddedPODArray<UInt8>& c) {
66
165
        size_t size = a.size();
67
165
        const A* __restrict a_pos = a.data();
68
165
        const B* __restrict b_pos = b.data();
69
165
        UInt8* __restrict c_pos = c.data();
70
165
        const A* __restrict a_end = a_pos + size;
71
72
367
        while (a_pos < a_end) {
73
202
            *c_pos = Op::apply(*a_pos, *b_pos);
74
202
            ++a_pos;
75
202
            ++b_pos;
76
202
            ++c_pos;
77
202
        }
78
165
    }
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
435
                                        PaddedPODArray<UInt8>& c) {
66
435
        size_t size = a.size();
67
435
        const A* __restrict a_pos = a.data();
68
435
        const B* __restrict b_pos = b.data();
69
435
        UInt8* __restrict c_pos = c.data();
70
435
        const A* __restrict a_end = a_pos + size;
71
72
6.85k
        while (a_pos < a_end) {
73
6.42k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.42k
            ++a_pos;
75
6.42k
            ++b_pos;
76
6.42k
            ++c_pos;
77
6.42k
        }
78
435
    }
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
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
12
        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
3
    }
_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
65
                                        PaddedPODArray<UInt8>& c) {
66
65
        size_t size = a.size();
67
65
        const A* __restrict a_pos = a.data();
68
65
        const B* __restrict b_pos = b.data();
69
65
        UInt8* __restrict c_pos = c.data();
70
65
        const A* __restrict a_end = a_pos + size;
71
72
1.17k
        while (a_pos < a_end) {
73
1.11k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.11k
            ++a_pos;
75
1.11k
            ++b_pos;
76
1.11k
            ++c_pos;
77
1.11k
        }
78
65
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
75
                                        PaddedPODArray<UInt8>& c) {
66
75
        size_t size = a.size();
67
75
        const A* __restrict a_pos = a.data();
68
75
        const B* __restrict b_pos = b.data();
69
75
        UInt8* __restrict c_pos = c.data();
70
75
        const A* __restrict a_end = a_pos + size;
71
72
341
        while (a_pos < a_end) {
73
266
            *c_pos = Op::apply(*a_pos, *b_pos);
74
266
            ++a_pos;
75
266
            ++b_pos;
76
266
            ++c_pos;
77
266
        }
78
75
    }
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
71.4k
                                          PaddedPODArray<UInt8>& c) {
82
71.4k
        size_t size = a.size();
83
71.4k
        const A* __restrict a_pos = a.data();
84
71.4k
        UInt8* __restrict c_pos = c.data();
85
71.4k
        const A* __restrict a_end = a_pos + size;
86
87
140M
        while (a_pos < a_end) {
88
140M
            *c_pos = Op::apply(*a_pos, b);
89
140M
            ++a_pos;
90
140M
            ++c_pos;
91
140M
        }
92
71.4k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
790
                                          PaddedPODArray<UInt8>& c) {
82
790
        size_t size = a.size();
83
790
        const A* __restrict a_pos = a.data();
84
790
        UInt8* __restrict c_pos = c.data();
85
790
        const A* __restrict a_end = a_pos + size;
86
87
3.20k
        while (a_pos < a_end) {
88
2.41k
            *c_pos = Op::apply(*a_pos, b);
89
2.41k
            ++a_pos;
90
2.41k
            ++c_pos;
91
2.41k
        }
92
790
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
1.18k
                                          PaddedPODArray<UInt8>& c) {
82
1.18k
        size_t size = a.size();
83
1.18k
        const A* __restrict a_pos = a.data();
84
1.18k
        UInt8* __restrict c_pos = c.data();
85
1.18k
        const A* __restrict a_end = a_pos + size;
86
87
206k
        while (a_pos < a_end) {
88
205k
            *c_pos = Op::apply(*a_pos, b);
89
205k
            ++a_pos;
90
205k
            ++c_pos;
91
205k
        }
92
1.18k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
411
                                          PaddedPODArray<UInt8>& c) {
82
411
        size_t size = a.size();
83
411
        const A* __restrict a_pos = a.data();
84
411
        UInt8* __restrict c_pos = c.data();
85
411
        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
411
    }
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
2.84k
                                          PaddedPODArray<UInt8>& c) {
82
2.84k
        size_t size = a.size();
83
2.84k
        const A* __restrict a_pos = a.data();
84
2.84k
        UInt8* __restrict c_pos = c.data();
85
2.84k
        const A* __restrict a_end = a_pos + size;
86
87
9.18M
        while (a_pos < a_end) {
88
9.18M
            *c_pos = Op::apply(*a_pos, b);
89
9.18M
            ++a_pos;
90
9.18M
            ++c_pos;
91
9.18M
        }
92
2.84k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
667
                                          PaddedPODArray<UInt8>& c) {
82
667
        size_t size = a.size();
83
667
        const A* __restrict a_pos = a.data();
84
667
        UInt8* __restrict c_pos = c.data();
85
667
        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
667
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
5.99k
                                          PaddedPODArray<UInt8>& c) {
82
5.99k
        size_t size = a.size();
83
5.99k
        const A* __restrict a_pos = a.data();
84
5.99k
        UInt8* __restrict c_pos = c.data();
85
5.99k
        const A* __restrict a_end = a_pos + size;
86
87
1.95M
        while (a_pos < a_end) {
88
1.94M
            *c_pos = Op::apply(*a_pos, b);
89
1.94M
            ++a_pos;
90
1.94M
            ++c_pos;
91
1.94M
        }
92
5.99k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
8.73k
                                          PaddedPODArray<UInt8>& c) {
82
8.73k
        size_t size = a.size();
83
8.73k
        const A* __restrict a_pos = a.data();
84
8.73k
        UInt8* __restrict c_pos = c.data();
85
8.73k
        const A* __restrict a_end = a_pos + size;
86
87
2.36M
        while (a_pos < a_end) {
88
2.35M
            *c_pos = Op::apply(*a_pos, b);
89
2.35M
            ++a_pos;
90
2.35M
            ++c_pos;
91
2.35M
        }
92
8.73k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_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
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
40
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
15
                                          PaddedPODArray<UInt8>& c) {
82
15
        size_t size = a.size();
83
15
        const A* __restrict a_pos = a.data();
84
15
        UInt8* __restrict c_pos = c.data();
85
15
        const A* __restrict a_end = a_pos + size;
86
87
129
        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
15
    }
_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
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
22
        while (a_pos < a_end) {
88
20
            *c_pos = Op::apply(*a_pos, b);
89
20
            ++a_pos;
90
20
            ++c_pos;
91
20
        }
92
2
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
227
                                          PaddedPODArray<UInt8>& c) {
82
227
        size_t size = a.size();
83
227
        const A* __restrict a_pos = a.data();
84
227
        UInt8* __restrict c_pos = c.data();
85
227
        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
227
    }
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
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
21
        while (a_pos < a_end) {
88
11
            *c_pos = Op::apply(*a_pos, b);
89
11
            ++a_pos;
90
11
            ++c_pos;
91
11
        }
92
10
    }
_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
32
                                          PaddedPODArray<UInt8>& c) {
82
32
        size_t size = a.size();
83
32
        const A* __restrict a_pos = a.data();
84
32
        UInt8* __restrict c_pos = c.data();
85
32
        const A* __restrict a_end = a_pos + size;
86
87
858
        while (a_pos < a_end) {
88
826
            *c_pos = Op::apply(*a_pos, b);
89
826
            ++a_pos;
90
826
            ++c_pos;
91
826
        }
92
32
    }
_ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_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
780
        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
4
    }
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
533
                                          PaddedPODArray<UInt8>& c) {
82
533
        size_t size = a.size();
83
533
        const A* __restrict a_pos = a.data();
84
533
        UInt8* __restrict c_pos = c.data();
85
533
        const A* __restrict a_end = a_pos + size;
86
87
384k
        while (a_pos < a_end) {
88
384k
            *c_pos = Op::apply(*a_pos, b);
89
384k
            ++a_pos;
90
384k
            ++c_pos;
91
384k
        }
92
533
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
543
                                          PaddedPODArray<UInt8>& c) {
82
543
        size_t size = a.size();
83
543
        const A* __restrict a_pos = a.data();
84
543
        UInt8* __restrict c_pos = c.data();
85
543
        const A* __restrict a_end = a_pos + size;
86
87
201k
        while (a_pos < a_end) {
88
201k
            *c_pos = Op::apply(*a_pos, b);
89
201k
            ++a_pos;
90
201k
            ++c_pos;
91
201k
        }
92
543
    }
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
32
                                          PaddedPODArray<UInt8>& c) {
82
32
        size_t size = a.size();
83
32
        const A* __restrict a_pos = a.data();
84
32
        UInt8* __restrict c_pos = c.data();
85
32
        const A* __restrict a_end = a_pos + size;
86
87
80
        while (a_pos < a_end) {
88
48
            *c_pos = Op::apply(*a_pos, b);
89
48
            ++a_pos;
90
48
            ++c_pos;
91
48
        }
92
32
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
52
                                          PaddedPODArray<UInt8>& c) {
82
52
        size_t size = a.size();
83
52
        const A* __restrict a_pos = a.data();
84
52
        UInt8* __restrict c_pos = c.data();
85
52
        const A* __restrict a_end = a_pos + size;
86
87
312
        while (a_pos < a_end) {
88
260
            *c_pos = Op::apply(*a_pos, b);
89
260
            ++a_pos;
90
260
            ++c_pos;
91
260
        }
92
52
    }
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
78
                                          PaddedPODArray<UInt8>& c) {
82
78
        size_t size = a.size();
83
78
        const A* __restrict a_pos = a.data();
84
78
        UInt8* __restrict c_pos = c.data();
85
78
        const A* __restrict a_end = a_pos + size;
86
87
1.01k
        while (a_pos < a_end) {
88
934
            *c_pos = Op::apply(*a_pos, b);
89
934
            ++a_pos;
90
934
            ++c_pos;
91
934
        }
92
78
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
463
                                          PaddedPODArray<UInt8>& c) {
82
463
        size_t size = a.size();
83
463
        const A* __restrict a_pos = a.data();
84
463
        UInt8* __restrict c_pos = c.data();
85
463
        const A* __restrict a_end = a_pos + size;
86
87
1.67M
        while (a_pos < a_end) {
88
1.67M
            *c_pos = Op::apply(*a_pos, b);
89
1.67M
            ++a_pos;
90
1.67M
            ++c_pos;
91
1.67M
        }
92
463
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
60
                                          PaddedPODArray<UInt8>& c) {
82
60
        size_t size = a.size();
83
60
        const A* __restrict a_pos = a.data();
84
60
        UInt8* __restrict c_pos = c.data();
85
60
        const A* __restrict a_end = a_pos + size;
86
87
142
        while (a_pos < a_end) {
88
82
            *c_pos = Op::apply(*a_pos, b);
89
82
            ++a_pos;
90
82
            ++c_pos;
91
82
        }
92
60
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
213
                                          PaddedPODArray<UInt8>& c) {
82
213
        size_t size = a.size();
83
213
        const A* __restrict a_pos = a.data();
84
213
        UInt8* __restrict c_pos = c.data();
85
213
        const A* __restrict a_end = a_pos + size;
86
87
29.9k
        while (a_pos < a_end) {
88
29.7k
            *c_pos = Op::apply(*a_pos, b);
89
29.7k
            ++a_pos;
90
29.7k
            ++c_pos;
91
29.7k
        }
92
213
    }
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
431
                                          PaddedPODArray<UInt8>& c) {
82
431
        size_t size = a.size();
83
431
        const A* __restrict a_pos = a.data();
84
431
        UInt8* __restrict c_pos = c.data();
85
431
        const A* __restrict a_end = a_pos + size;
86
87
4.23k
        while (a_pos < a_end) {
88
3.80k
            *c_pos = Op::apply(*a_pos, b);
89
3.80k
            ++a_pos;
90
3.80k
            ++c_pos;
91
3.80k
        }
92
431
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
49
                                          PaddedPODArray<UInt8>& c) {
82
49
        size_t size = a.size();
83
49
        const A* __restrict a_pos = a.data();
84
49
        UInt8* __restrict c_pos = c.data();
85
49
        const A* __restrict a_end = a_pos + size;
86
87
1.82k
        while (a_pos < a_end) {
88
1.77k
            *c_pos = Op::apply(*a_pos, b);
89
1.77k
            ++a_pos;
90
1.77k
            ++c_pos;
91
1.77k
        }
92
49
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
455
                                          PaddedPODArray<UInt8>& c) {
82
455
        size_t size = a.size();
83
455
        const A* __restrict a_pos = a.data();
84
455
        UInt8* __restrict c_pos = c.data();
85
455
        const A* __restrict a_end = a_pos + size;
86
87
7.90k
        while (a_pos < a_end) {
88
7.44k
            *c_pos = Op::apply(*a_pos, b);
89
7.44k
            ++a_pos;
90
7.44k
            ++c_pos;
91
7.44k
        }
92
455
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
102
                                          PaddedPODArray<UInt8>& c) {
82
102
        size_t size = a.size();
83
102
        const A* __restrict a_pos = a.data();
84
102
        UInt8* __restrict c_pos = c.data();
85
102
        const A* __restrict a_end = a_pos + size;
86
87
8.54k
        while (a_pos < a_end) {
88
8.44k
            *c_pos = Op::apply(*a_pos, b);
89
8.44k
            ++a_pos;
90
8.44k
            ++c_pos;
91
8.44k
        }
92
102
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
5.94k
                                          PaddedPODArray<UInt8>& c) {
82
5.94k
        size_t size = a.size();
83
5.94k
        const A* __restrict a_pos = a.data();
84
5.94k
        UInt8* __restrict c_pos = c.data();
85
5.94k
        const A* __restrict a_end = a_pos + size;
86
87
1.24M
        while (a_pos < a_end) {
88
1.24M
            *c_pos = Op::apply(*a_pos, b);
89
1.24M
            ++a_pos;
90
1.24M
            ++c_pos;
91
1.24M
        }
92
5.94k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.30k
                                          PaddedPODArray<UInt8>& c) {
82
1.30k
        size_t size = a.size();
83
1.30k
        const A* __restrict a_pos = a.data();
84
1.30k
        UInt8* __restrict c_pos = c.data();
85
1.30k
        const A* __restrict a_end = a_pos + size;
86
87
3.85M
        while (a_pos < a_end) {
88
3.84M
            *c_pos = Op::apply(*a_pos, b);
89
3.84M
            ++a_pos;
90
3.84M
            ++c_pos;
91
3.84M
        }
92
1.30k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
7.88k
                                          PaddedPODArray<UInt8>& c) {
82
7.88k
        size_t size = a.size();
83
7.88k
        const A* __restrict a_pos = a.data();
84
7.88k
        UInt8* __restrict c_pos = c.data();
85
7.88k
        const A* __restrict a_end = a_pos + size;
86
87
173k
        while (a_pos < a_end) {
88
166k
            *c_pos = Op::apply(*a_pos, b);
89
166k
            ++a_pos;
90
166k
            ++c_pos;
91
166k
        }
92
7.88k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
949
                                          PaddedPODArray<UInt8>& c) {
82
949
        size_t size = a.size();
83
949
        const A* __restrict a_pos = a.data();
84
949
        UInt8* __restrict c_pos = c.data();
85
949
        const A* __restrict a_end = a_pos + size;
86
87
2.78k
        while (a_pos < a_end) {
88
1.83k
            *c_pos = Op::apply(*a_pos, b);
89
1.83k
            ++a_pos;
90
1.83k
            ++c_pos;
91
1.83k
        }
92
949
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
207
                                          PaddedPODArray<UInt8>& c) {
82
207
        size_t size = a.size();
83
207
        const A* __restrict a_pos = a.data();
84
207
        UInt8* __restrict c_pos = c.data();
85
207
        const A* __restrict a_end = a_pos + size;
86
87
1.75k
        while (a_pos < a_end) {
88
1.54k
            *c_pos = Op::apply(*a_pos, b);
89
1.54k
            ++a_pos;
90
1.54k
            ++c_pos;
91
1.54k
        }
92
207
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
18
                                          PaddedPODArray<UInt8>& c) {
82
18
        size_t size = a.size();
83
18
        const A* __restrict a_pos = a.data();
84
18
        UInt8* __restrict c_pos = c.data();
85
18
        const A* __restrict a_end = a_pos + size;
86
87
85.9k
        while (a_pos < a_end) {
88
85.8k
            *c_pos = Op::apply(*a_pos, b);
89
85.8k
            ++a_pos;
90
85.8k
            ++c_pos;
91
85.8k
        }
92
18
    }
_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
212
                                          PaddedPODArray<UInt8>& c) {
82
212
        size_t size = a.size();
83
212
        const A* __restrict a_pos = a.data();
84
212
        UInt8* __restrict c_pos = c.data();
85
212
        const A* __restrict a_end = a_pos + size;
86
87
3.40k
        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
212
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
18
                                          PaddedPODArray<UInt8>& c) {
82
18
        size_t size = a.size();
83
18
        const A* __restrict a_pos = a.data();
84
18
        UInt8* __restrict c_pos = c.data();
85
18
        const A* __restrict a_end = a_pos + size;
86
87
48
        while (a_pos < a_end) {
88
30
            *c_pos = Op::apply(*a_pos, b);
89
30
            ++a_pos;
90
30
            ++c_pos;
91
30
        }
92
18
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.62k
                                          PaddedPODArray<UInt8>& c) {
82
1.62k
        size_t size = a.size();
83
1.62k
        const A* __restrict a_pos = a.data();
84
1.62k
        UInt8* __restrict c_pos = c.data();
85
1.62k
        const A* __restrict a_end = a_pos + size;
86
87
289k
        while (a_pos < a_end) {
88
287k
            *c_pos = Op::apply(*a_pos, b);
89
287k
            ++a_pos;
90
287k
            ++c_pos;
91
287k
        }
92
1.62k
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
248
                                          PaddedPODArray<UInt8>& c) {
82
248
        size_t size = a.size();
83
248
        const A* __restrict a_pos = a.data();
84
248
        UInt8* __restrict c_pos = c.data();
85
248
        const A* __restrict a_end = a_pos + size;
86
87
637k
        while (a_pos < a_end) {
88
637k
            *c_pos = Op::apply(*a_pos, b);
89
637k
            ++a_pos;
90
637k
            ++c_pos;
91
637k
        }
92
248
    }
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
125
                                          PaddedPODArray<UInt8>& c) {
82
125
        size_t size = a.size();
83
125
        const A* __restrict a_pos = a.data();
84
125
        UInt8* __restrict c_pos = c.data();
85
125
        const A* __restrict a_end = a_pos + size;
86
87
99.7k
        while (a_pos < a_end) {
88
99.5k
            *c_pos = Op::apply(*a_pos, b);
89
99.5k
            ++a_pos;
90
99.5k
            ++c_pos;
91
99.5k
        }
92
125
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
111
                                          PaddedPODArray<UInt8>& c) {
82
111
        size_t size = a.size();
83
111
        const A* __restrict a_pos = a.data();
84
111
        UInt8* __restrict c_pos = c.data();
85
111
        const A* __restrict a_end = a_pos + size;
86
87
22.7k
        while (a_pos < a_end) {
88
22.6k
            *c_pos = Op::apply(*a_pos, b);
89
22.6k
            ++a_pos;
90
22.6k
            ++c_pos;
91
22.6k
        }
92
111
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
1.10k
                                          PaddedPODArray<UInt8>& c) {
82
1.10k
        size_t size = a.size();
83
1.10k
        const A* __restrict a_pos = a.data();
84
1.10k
        UInt8* __restrict c_pos = c.data();
85
1.10k
        const A* __restrict a_end = a_pos + size;
86
87
4.74M
        while (a_pos < a_end) {
88
4.74M
            *c_pos = Op::apply(*a_pos, b);
89
4.74M
            ++a_pos;
90
4.74M
            ++c_pos;
91
4.74M
        }
92
1.10k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
2.10k
                                          PaddedPODArray<UInt8>& c) {
82
2.10k
        size_t size = a.size();
83
2.10k
        const A* __restrict a_pos = a.data();
84
2.10k
        UInt8* __restrict c_pos = c.data();
85
2.10k
        const A* __restrict a_end = a_pos + size;
86
87
15.6M
        while (a_pos < a_end) {
88
15.6M
            *c_pos = Op::apply(*a_pos, b);
89
15.6M
            ++a_pos;
90
15.6M
            ++c_pos;
91
15.6M
        }
92
2.10k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
483
                                          PaddedPODArray<UInt8>& c) {
82
483
        size_t size = a.size();
83
483
        const A* __restrict a_pos = a.data();
84
483
        UInt8* __restrict c_pos = c.data();
85
483
        const A* __restrict a_end = a_pos + size;
86
87
1.42k
        while (a_pos < a_end) {
88
946
            *c_pos = Op::apply(*a_pos, b);
89
946
            ++a_pos;
90
946
            ++c_pos;
91
946
        }
92
483
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
264
                                          PaddedPODArray<UInt8>& c) {
82
264
        size_t size = a.size();
83
264
        const A* __restrict a_pos = a.data();
84
264
        UInt8* __restrict c_pos = c.data();
85
264
        const A* __restrict a_end = a_pos + size;
86
87
602
        while (a_pos < a_end) {
88
338
            *c_pos = Op::apply(*a_pos, b);
89
338
            ++a_pos;
90
338
            ++c_pos;
91
338
        }
92
264
    }
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
93
                                          PaddedPODArray<UInt8>& c) {
82
93
        size_t size = a.size();
83
93
        const A* __restrict a_pos = a.data();
84
93
        UInt8* __restrict c_pos = c.data();
85
93
        const A* __restrict a_end = a_pos + size;
86
87
39.8k
        while (a_pos < a_end) {
88
39.7k
            *c_pos = Op::apply(*a_pos, b);
89
39.7k
            ++a_pos;
90
39.7k
            ++c_pos;
91
39.7k
        }
92
93
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
141
                                          PaddedPODArray<UInt8>& c) {
82
141
        size_t size = a.size();
83
141
        const A* __restrict a_pos = a.data();
84
141
        UInt8* __restrict c_pos = c.data();
85
141
        const A* __restrict a_end = a_pos + size;
86
87
59.2k
        while (a_pos < a_end) {
88
59.0k
            *c_pos = Op::apply(*a_pos, b);
89
59.0k
            ++a_pos;
90
59.0k
            ++c_pos;
91
59.0k
        }
92
141
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
174
                                          PaddedPODArray<UInt8>& c) {
82
174
        size_t size = a.size();
83
174
        const A* __restrict a_pos = a.data();
84
174
        UInt8* __restrict c_pos = c.data();
85
174
        const A* __restrict a_end = a_pos + size;
86
87
62.0k
        while (a_pos < a_end) {
88
61.9k
            *c_pos = Op::apply(*a_pos, b);
89
61.9k
            ++a_pos;
90
61.9k
            ++c_pos;
91
61.9k
        }
92
174
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_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
95.8k
        while (a_pos < a_end) {
88
95.5k
            *c_pos = Op::apply(*a_pos, b);
89
95.5k
            ++a_pos;
90
95.5k
            ++c_pos;
91
95.5k
        }
92
277
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
11.4k
                                          PaddedPODArray<UInt8>& c) {
82
11.4k
        size_t size = a.size();
83
11.4k
        const A* __restrict a_pos = a.data();
84
11.4k
        UInt8* __restrict c_pos = c.data();
85
11.4k
        const A* __restrict a_end = a_pos + size;
86
87
47.5M
        while (a_pos < a_end) {
88
47.5M
            *c_pos = Op::apply(*a_pos, b);
89
47.5M
            ++a_pos;
90
47.5M
            ++c_pos;
91
47.5M
        }
92
11.4k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
11.4k
                                          PaddedPODArray<UInt8>& c) {
82
11.4k
        size_t size = a.size();
83
11.4k
        const A* __restrict a_pos = a.data();
84
11.4k
        UInt8* __restrict c_pos = c.data();
85
11.4k
        const A* __restrict a_end = a_pos + size;
86
87
47.6M
        while (a_pos < a_end) {
88
47.5M
            *c_pos = Op::apply(*a_pos, b);
89
47.5M
            ++a_pos;
90
47.5M
            ++c_pos;
91
47.5M
        }
92
11.4k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
332
                                          PaddedPODArray<UInt8>& c) {
82
332
        size_t size = a.size();
83
332
        const A* __restrict a_pos = a.data();
84
332
        UInt8* __restrict c_pos = c.data();
85
332
        const A* __restrict a_end = a_pos + size;
86
87
14.5k
        while (a_pos < a_end) {
88
14.2k
            *c_pos = Op::apply(*a_pos, b);
89
14.2k
            ++a_pos;
90
14.2k
            ++c_pos;
91
14.2k
        }
92
332
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
340
                                          PaddedPODArray<UInt8>& c) {
82
340
        size_t size = a.size();
83
340
        const A* __restrict a_pos = a.data();
84
340
        UInt8* __restrict c_pos = c.data();
85
340
        const A* __restrict a_end = a_pos + size;
86
87
4.25k
        while (a_pos < a_end) {
88
3.91k
            *c_pos = Op::apply(*a_pos, b);
89
3.91k
            ++a_pos;
90
3.91k
            ++c_pos;
91
3.91k
        }
92
340
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
37
                                          PaddedPODArray<UInt8>& c) {
82
37
        size_t size = a.size();
83
37
        const A* __restrict a_pos = a.data();
84
37
        UInt8* __restrict c_pos = c.data();
85
37
        const A* __restrict a_end = a_pos + size;
86
87
27.8k
        while (a_pos < a_end) {
88
27.8k
            *c_pos = Op::apply(*a_pos, b);
89
27.8k
            ++a_pos;
90
27.8k
            ++c_pos;
91
27.8k
        }
92
37
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
29
                                          PaddedPODArray<UInt8>& c) {
82
29
        size_t size = a.size();
83
29
        const A* __restrict a_pos = a.data();
84
29
        UInt8* __restrict c_pos = c.data();
85
29
        const A* __restrict a_end = a_pos + size;
86
87
25.6k
        while (a_pos < a_end) {
88
25.6k
            *c_pos = Op::apply(*a_pos, b);
89
25.6k
            ++a_pos;
90
25.6k
            ++c_pos;
91
25.6k
        }
92
29
    }
_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
106
                                          PaddedPODArray<UInt8>& c) {
82
106
        size_t size = a.size();
83
106
        const A* __restrict a_pos = a.data();
84
106
        UInt8* __restrict c_pos = c.data();
85
106
        const A* __restrict a_end = a_pos + size;
86
87
215
        while (a_pos < a_end) {
88
109
            *c_pos = Op::apply(*a_pos, b);
89
109
            ++a_pos;
90
109
            ++c_pos;
91
109
        }
92
106
    }
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
100
                                          PaddedPODArray<UInt8>& c) {
82
100
        size_t size = a.size();
83
100
        const A* __restrict a_pos = a.data();
84
100
        UInt8* __restrict c_pos = c.data();
85
100
        const A* __restrict a_end = a_pos + size;
86
87
200
        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
100
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
159
                                          PaddedPODArray<UInt8>& c) {
82
159
        size_t size = a.size();
83
159
        const A* __restrict a_pos = a.data();
84
159
        UInt8* __restrict c_pos = c.data();
85
159
        const A* __restrict a_end = a_pos + size;
86
87
601k
        while (a_pos < a_end) {
88
601k
            *c_pos = Op::apply(*a_pos, b);
89
601k
            ++a_pos;
90
601k
            ++c_pos;
91
601k
        }
92
159
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
183
                                          PaddedPODArray<UInt8>& c) {
82
183
        size_t size = a.size();
83
183
        const A* __restrict a_pos = a.data();
84
183
        UInt8* __restrict c_pos = c.data();
85
183
        const A* __restrict a_end = a_pos + size;
86
87
601k
        while (a_pos < a_end) {
88
601k
            *c_pos = Op::apply(*a_pos, b);
89
601k
            ++a_pos;
90
601k
            ++c_pos;
91
601k
        }
92
183
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
93
94
8
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
8
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
8
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
8
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
8
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
8
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
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
103
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
103
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
256k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
256k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
256k
        }
113
103
    }
_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
22
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
22
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
84.6k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
84.6k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
84.6k
        }
113
22
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
44
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
44
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
171k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
171k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
171k
        }
113
44
    }
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
400
                                                      PaddedPODArray<UInt8>& c) {
127
400
        size_t size = a_offsets.size();
128
400
        ColumnString::Offset prev_a_offset = 0;
129
400
        ColumnString::Offset prev_b_offset = 0;
130
400
        const auto* a_pos = a_data.data();
131
400
        const auto* b_pos = b_data.data();
132
133
1.07k
        for (size_t i = 0; i < size; ++i) {
134
670
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
670
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
670
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
670
                             0);
138
139
670
            prev_a_offset = a_offsets[i];
140
670
            prev_b_offset = b_offsets[i];
141
670
        }
142
400
    }
_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
43
                                                      PaddedPODArray<UInt8>& c) {
127
43
        size_t size = a_offsets.size();
128
43
        ColumnString::Offset prev_a_offset = 0;
129
43
        ColumnString::Offset prev_b_offset = 0;
130
43
        const auto* a_pos = a_data.data();
131
43
        const auto* b_pos = b_data.data();
132
133
307
        for (size_t i = 0; i < size; ++i) {
134
264
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
264
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
264
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
264
                             0);
138
139
264
            prev_a_offset = a_offsets[i];
140
264
            prev_b_offset = b_offsets[i];
141
264
        }
142
43
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
355
                                                      PaddedPODArray<UInt8>& c) {
127
355
        size_t size = a_offsets.size();
128
355
        ColumnString::Offset prev_a_offset = 0;
129
355
        ColumnString::Offset prev_b_offset = 0;
130
355
        const auto* a_pos = a_data.data();
131
355
        const auto* b_pos = b_data.data();
132
133
714
        for (size_t i = 0; i < size; ++i) {
134
359
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
359
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
359
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
359
                             0);
138
139
359
            prev_a_offset = a_offsets[i];
140
359
            prev_b_offset = b_offsets[i];
141
359
        }
142
355
    }
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
1.27k
                                                 PaddedPODArray<UInt8>& c) {
149
1.27k
        size_t size = a_offsets.size();
150
1.27k
        ColumnString::Offset prev_a_offset = 0;
151
1.27k
        const auto* a_pos = a_data.data();
152
1.27k
        const auto* b_pos = b_data.data();
153
154
1.20M
        for (size_t i = 0; i < size; ++i) {
155
1.20M
            c[i] = Op::apply(
156
1.20M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
1.20M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
1.20M
                    0);
159
160
1.20M
            prev_a_offset = a_offsets[i];
161
1.20M
        }
162
1.27k
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
195
                                                 PaddedPODArray<UInt8>& c) {
149
195
        size_t size = a_offsets.size();
150
195
        ColumnString::Offset prev_a_offset = 0;
151
195
        const auto* a_pos = a_data.data();
152
195
        const auto* b_pos = b_data.data();
153
154
601k
        for (size_t i = 0; i < size; ++i) {
155
601k
            c[i] = Op::apply(
156
601k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
601k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
601k
                    0);
159
160
601k
            prev_a_offset = a_offsets[i];
161
601k
        }
162
195
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
215
                                                 PaddedPODArray<UInt8>& c) {
149
215
        size_t size = a_offsets.size();
150
215
        ColumnString::Offset prev_a_offset = 0;
151
215
        const auto* a_pos = a_data.data();
152
215
        const auto* b_pos = b_data.data();
153
154
72.0k
        for (size_t i = 0; i < size; ++i) {
155
71.8k
            c[i] = Op::apply(
156
71.8k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
71.8k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
71.8k
                    0);
159
160
71.8k
            prev_a_offset = a_offsets[i];
161
71.8k
        }
162
215
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
429
                                                 PaddedPODArray<UInt8>& c) {
149
429
        size_t size = a_offsets.size();
150
429
        ColumnString::Offset prev_a_offset = 0;
151
429
        const auto* a_pos = a_data.data();
152
429
        const auto* b_pos = b_data.data();
153
154
257k
        for (size_t i = 0; i < size; ++i) {
155
257k
            c[i] = Op::apply(
156
257k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
257k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
257k
                    0);
159
160
257k
            prev_a_offset = a_offsets[i];
161
257k
        }
162
429
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
432
                                                 PaddedPODArray<UInt8>& c) {
149
432
        size_t size = a_offsets.size();
150
432
        ColumnString::Offset prev_a_offset = 0;
151
432
        const auto* a_pos = a_data.data();
152
432
        const auto* b_pos = b_data.data();
153
154
275k
        for (size_t i = 0; i < size; ++i) {
155
275k
            c[i] = Op::apply(
156
275k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
275k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
275k
                    0);
159
160
275k
            prev_a_offset = a_offsets[i];
161
275k
        }
162
432
    }
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
0
                                       PaddedPODArray<UInt8>& c) {
169
0
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
170
0
                                                                               a_data, a_size, c);
171
0
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
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
458
                                                      PaddedPODArray<UInt8>& c) {
181
458
        size_t size = a_offsets.size();
182
458
        ColumnString::Offset prev_a_offset = 0;
183
458
        ColumnString::Offset prev_b_offset = 0;
184
458
        const auto* a_pos = a_data.data();
185
458
        const auto* b_pos = b_data.data();
186
187
1.38k
        for (size_t i = 0; i < size; ++i) {
188
929
            auto a_size = a_offsets[i] - prev_a_offset;
189
929
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
929
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
929
                                                               b_pos + prev_b_offset, b_size);
193
194
929
            prev_a_offset = a_offsets[i];
195
929
            prev_b_offset = b_offsets[i];
196
929
        }
197
458
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
457
                                                      PaddedPODArray<UInt8>& c) {
181
457
        size_t size = a_offsets.size();
182
457
        ColumnString::Offset prev_a_offset = 0;
183
457
        ColumnString::Offset prev_b_offset = 0;
184
457
        const auto* a_pos = a_data.data();
185
457
        const auto* b_pos = b_data.data();
186
187
1.38k
        for (size_t i = 0; i < size; ++i) {
188
925
            auto a_size = a_offsets[i] - prev_a_offset;
189
925
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
925
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
925
                                                               b_pos + prev_b_offset, b_size);
193
194
925
            prev_a_offset = a_offsets[i];
195
925
            prev_b_offset = b_offsets[i];
196
925
        }
197
457
    }
_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
19.3k
                                                 PaddedPODArray<UInt8>& c) {
204
19.3k
        size_t size = a_offsets.size();
205
19.3k
        if (b_size == 0) {
206
37
            auto* __restrict data = c.data();
207
37
            auto* __restrict offsets = a_offsets.data();
208
209
37
            ColumnString::Offset prev_a_offset = 0;
210
1.18k
            for (size_t i = 0; i < size; ++i) {
211
1.14k
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
1.14k
                prev_a_offset = offsets[i];
213
1.14k
            }
214
19.3k
        } else {
215
19.3k
            ColumnString::Offset prev_a_offset = 0;
216
19.3k
            const auto* a_pos = a_data.data();
217
19.3k
            const auto* b_pos = b_data.data();
218
7.09M
            for (size_t i = 0; i < size; ++i) {
219
7.07M
                auto a_size = a_offsets[i] - prev_a_offset;
220
7.07M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
7.07M
                                                                   b_pos, b_size);
222
7.07M
                prev_a_offset = a_offsets[i];
223
7.07M
            }
224
19.3k
        }
225
19.3k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
18.6k
                                                 PaddedPODArray<UInt8>& c) {
204
18.6k
        size_t size = a_offsets.size();
205
18.6k
        if (b_size == 0) {
206
12
            auto* __restrict data = c.data();
207
12
            auto* __restrict offsets = a_offsets.data();
208
209
12
            ColumnString::Offset prev_a_offset = 0;
210
76
            for (size_t i = 0; i < size; ++i) {
211
64
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
64
                prev_a_offset = offsets[i];
213
64
            }
214
18.6k
        } else {
215
18.6k
            ColumnString::Offset prev_a_offset = 0;
216
18.6k
            const auto* a_pos = a_data.data();
217
18.6k
            const auto* b_pos = b_data.data();
218
6.87M
            for (size_t i = 0; i < size; ++i) {
219
6.85M
                auto a_size = a_offsets[i] - prev_a_offset;
220
6.85M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
6.85M
                                                                   b_pos, b_size);
222
6.85M
                prev_a_offset = a_offsets[i];
223
6.85M
            }
224
18.6k
        }
225
18.6k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
675
                                                 PaddedPODArray<UInt8>& c) {
204
675
        size_t size = a_offsets.size();
205
675
        if (b_size == 0) {
206
25
            auto* __restrict data = c.data();
207
25
            auto* __restrict offsets = a_offsets.data();
208
209
25
            ColumnString::Offset prev_a_offset = 0;
210
1.10k
            for (size_t i = 0; i < size; ++i) {
211
1.07k
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
1.07k
                prev_a_offset = offsets[i];
213
1.07k
            }
214
650
        } else {
215
650
            ColumnString::Offset prev_a_offset = 0;
216
650
            const auto* a_pos = a_data.data();
217
650
            const auto* b_pos = b_data.data();
218
220k
            for (size_t i = 0; i < size; ++i) {
219
219k
                auto a_size = a_offsets[i] - prev_a_offset;
220
219k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
219k
                                                                   b_pos, b_size);
222
219k
                prev_a_offset = a_offsets[i];
223
219k
            }
224
650
        }
225
675
    }
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
451k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
265
398k
    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.48k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
265
21.1k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
265
3.21k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
265
21.6k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
266
267
452k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
267
398k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
267
1.33k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
267
6.48k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
267
21.1k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
267
3.21k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
267
21.6k
    FunctionComparison() = default;
268
269
1.15M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
269
1.10M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
269
1.06k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
269
6.72k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
269
22.3k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
269
3.33k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
269
21.6k
    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
84.1k
                            const ColumnPtr& col_right_ptr) const {
275
84.1k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
84.1k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
84.1k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
84.1k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
84.1k
        DCHECK(!(left_is_const && right_is_const));
282
283
84.1k
        if (!left_is_const && !right_is_const) {
284
12.6k
            auto col_res = ColumnUInt8::create();
285
286
12.6k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
12.6k
            vec_res.resize(col_left->get_data().size());
288
12.6k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
12.6k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
12.6k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
12.6k
                                                     vec_res);
292
293
12.6k
            block.replace_by_position(result, std::move(col_res));
294
71.4k
        } else if (!left_is_const && right_is_const) {
295
71.4k
            auto col_res = ColumnUInt8::create();
296
297
71.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
71.4k
            vec_res.resize(col_left->size());
299
71.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
71.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
71.4k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
71.4k
                                                       col_right->get_element(0), vec_res);
303
304
71.4k
            block.replace_by_position(result, std::move(col_res));
305
71.4k
        } else if (left_is_const && !right_is_const) {
306
8
            auto col_res = ColumnUInt8::create();
307
308
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
8
            vec_res.resize(col_right->size());
310
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
8
                              typename PrimitiveTypeTraits<PT>::CppType,
312
8
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
8
                                                       col_right->get_data(), vec_res);
314
315
8
            block.replace_by_position(result, std::move(col_res));
316
8
        }
317
84.1k
        return Status::OK();
318
84.1k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
864
                            const ColumnPtr& col_right_ptr) const {
275
864
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
864
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
864
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
864
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
864
        DCHECK(!(left_is_const && right_is_const));
282
283
864
        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
788
        } else if (!left_is_const && right_is_const) {
295
788
            auto col_res = ColumnUInt8::create();
296
297
788
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
788
            vec_res.resize(col_left->size());
299
788
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
788
                              typename PrimitiveTypeTraits<PT>::CppType,
301
788
                              Op<PT>>::vector_constant(col_left->get_data(),
302
788
                                                       col_right->get_element(0), vec_res);
303
304
788
            block.replace_by_position(result, std::move(col_res));
305
788
        } 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
864
        return Status::OK();
318
864
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.55k
                            const ColumnPtr& col_right_ptr) const {
275
1.55k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.55k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.55k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.55k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.55k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.55k
        if (!left_is_const && !right_is_const) {
284
370
            auto col_res = ColumnUInt8::create();
285
286
370
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
370
            vec_res.resize(col_left->get_data().size());
288
370
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
370
                              typename PrimitiveTypeTraits<PT>::CppType,
290
370
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
370
                                                     vec_res);
292
293
370
            block.replace_by_position(result, std::move(col_res));
294
1.18k
        } else if (!left_is_const && right_is_const) {
295
1.18k
            auto col_res = ColumnUInt8::create();
296
297
1.18k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.18k
            vec_res.resize(col_left->size());
299
1.18k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.18k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.18k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.18k
                                                       col_right->get_element(0), vec_res);
303
304
1.18k
            block.replace_by_position(result, std::move(col_res));
305
1.18k
        } 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.55k
        return Status::OK();
318
1.55k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
706
                            const ColumnPtr& col_right_ptr) const {
275
706
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
706
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
706
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
706
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
706
        DCHECK(!(left_is_const && right_is_const));
282
283
706
        if (!left_is_const && !right_is_const) {
284
295
            auto col_res = ColumnUInt8::create();
285
286
295
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
295
            vec_res.resize(col_left->get_data().size());
288
295
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
295
                              typename PrimitiveTypeTraits<PT>::CppType,
290
295
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
295
                                                     vec_res);
292
293
295
            block.replace_by_position(result, std::move(col_res));
294
411
        } else if (!left_is_const && right_is_const) {
295
411
            auto col_res = ColumnUInt8::create();
296
297
411
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
411
            vec_res.resize(col_left->size());
299
411
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
411
                              typename PrimitiveTypeTraits<PT>::CppType,
301
411
                              Op<PT>>::vector_constant(col_left->get_data(),
302
411
                                                       col_right->get_element(0), vec_res);
303
304
411
            block.replace_by_position(result, std::move(col_res));
305
411
        } 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
706
        return Status::OK();
318
706
    }
_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
3.66k
                            const ColumnPtr& col_right_ptr) const {
275
3.66k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.66k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.66k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.66k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.66k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.66k
        if (!left_is_const && !right_is_const) {
284
821
            auto col_res = ColumnUInt8::create();
285
286
821
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
821
            vec_res.resize(col_left->get_data().size());
288
821
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
821
                              typename PrimitiveTypeTraits<PT>::CppType,
290
821
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
821
                                                     vec_res);
292
293
821
            block.replace_by_position(result, std::move(col_res));
294
2.84k
        } else if (!left_is_const && right_is_const) {
295
2.84k
            auto col_res = ColumnUInt8::create();
296
297
2.84k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2.84k
            vec_res.resize(col_left->size());
299
2.84k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2.84k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2.84k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2.84k
                                                       col_right->get_element(0), vec_res);
303
304
2.84k
            block.replace_by_position(result, std::move(col_res));
305
2.84k
        } 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.66k
        return Status::OK();
318
3.66k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
790
                            const ColumnPtr& col_right_ptr) const {
275
790
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
790
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
790
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
790
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
790
        DCHECK(!(left_is_const && right_is_const));
282
283
790
        if (!left_is_const && !right_is_const) {
284
123
            auto col_res = ColumnUInt8::create();
285
286
123
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
123
            vec_res.resize(col_left->get_data().size());
288
123
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
123
                              typename PrimitiveTypeTraits<PT>::CppType,
290
123
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
123
                                                     vec_res);
292
293
123
            block.replace_by_position(result, std::move(col_res));
294
667
        } else if (!left_is_const && right_is_const) {
295
666
            auto col_res = ColumnUInt8::create();
296
297
666
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
666
            vec_res.resize(col_left->size());
299
666
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
666
                              typename PrimitiveTypeTraits<PT>::CppType,
301
666
                              Op<PT>>::vector_constant(col_left->get_data(),
302
666
                                                       col_right->get_element(0), vec_res);
303
304
666
            block.replace_by_position(result, std::move(col_res));
305
666
        } 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
790
        return Status::OK();
318
790
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
6.27k
                            const ColumnPtr& col_right_ptr) const {
275
6.27k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
6.27k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
6.27k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
6.27k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
6.27k
        DCHECK(!(left_is_const && right_is_const));
282
283
6.27k
        if (!left_is_const && !right_is_const) {
284
284
            auto col_res = ColumnUInt8::create();
285
286
284
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
284
            vec_res.resize(col_left->get_data().size());
288
284
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
284
                              typename PrimitiveTypeTraits<PT>::CppType,
290
284
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
284
                                                     vec_res);
292
293
284
            block.replace_by_position(result, std::move(col_res));
294
5.99k
        } else if (!left_is_const && right_is_const) {
295
5.98k
            auto col_res = ColumnUInt8::create();
296
297
5.98k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
5.98k
            vec_res.resize(col_left->size());
299
5.98k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
5.98k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
5.98k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
5.98k
                                                       col_right->get_element(0), vec_res);
303
304
5.98k
            block.replace_by_position(result, std::move(col_res));
305
5.98k
        } else if (left_is_const && !right_is_const) {
306
8
            auto col_res = ColumnUInt8::create();
307
308
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
8
            vec_res.resize(col_right->size());
310
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
8
                              typename PrimitiveTypeTraits<PT>::CppType,
312
8
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
8
                                                       col_right->get_data(), vec_res);
314
315
8
            block.replace_by_position(result, std::move(col_res));
316
8
        }
317
6.27k
        return Status::OK();
318
6.27k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
9.12k
                            const ColumnPtr& col_right_ptr) const {
275
9.12k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
9.12k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
9.12k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
9.12k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
9.12k
        DCHECK(!(left_is_const && right_is_const));
282
283
9.12k
        if (!left_is_const && !right_is_const) {
284
387
            auto col_res = ColumnUInt8::create();
285
286
387
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
387
            vec_res.resize(col_left->get_data().size());
288
387
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
387
                              typename PrimitiveTypeTraits<PT>::CppType,
290
387
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
387
                                                     vec_res);
292
293
387
            block.replace_by_position(result, std::move(col_res));
294
8.73k
        } else if (!left_is_const && right_is_const) {
295
8.73k
            auto col_res = ColumnUInt8::create();
296
297
8.73k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
8.73k
            vec_res.resize(col_left->size());
299
8.73k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
8.73k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
8.73k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
8.73k
                                                       col_right->get_element(0), vec_res);
303
304
8.73k
            block.replace_by_position(result, std::move(col_res));
305
8.73k
        } 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
9.12k
        return Status::OK();
318
9.12k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
148
                            const ColumnPtr& col_right_ptr) const {
275
148
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
148
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
148
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
148
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
148
        DCHECK(!(left_is_const && right_is_const));
282
283
148
        if (!left_is_const && !right_is_const) {
284
108
            auto col_res = ColumnUInt8::create();
285
286
108
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
108
            vec_res.resize(col_left->get_data().size());
288
108
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
108
                              typename PrimitiveTypeTraits<PT>::CppType,
290
108
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
108
                                                     vec_res);
292
293
108
            block.replace_by_position(result, std::move(col_res));
294
108
        } 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
148
        return Status::OK();
318
148
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
31
                            const ColumnPtr& col_right_ptr) const {
275
31
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
31
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
31
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
31
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
31
        DCHECK(!(left_is_const && right_is_const));
282
283
31
        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
15
            auto col_res = ColumnUInt8::create();
296
297
15
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
15
            vec_res.resize(col_left->size());
299
15
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
15
                              typename PrimitiveTypeTraits<PT>::CppType,
301
15
                              Op<PT>>::vector_constant(col_left->get_data(),
302
15
                                                       col_right->get_element(0), vec_res);
303
304
15
            block.replace_by_position(result, std::move(col_res));
305
15
        } 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
31
        return Status::OK();
318
31
    }
_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
99
                            const ColumnPtr& col_right_ptr) const {
275
99
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
99
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
99
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
99
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
99
        DCHECK(!(left_is_const && right_is_const));
282
283
99
        if (!left_is_const && !right_is_const) {
284
97
            auto col_res = ColumnUInt8::create();
285
286
97
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
97
            vec_res.resize(col_left->get_data().size());
288
97
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
97
                              typename PrimitiveTypeTraits<PT>::CppType,
290
97
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
97
                                                     vec_res);
292
293
97
            block.replace_by_position(result, std::move(col_res));
294
97
        } 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
99
        return Status::OK();
318
99
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
351
                            const ColumnPtr& col_right_ptr) const {
275
351
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
351
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
351
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
351
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
351
        DCHECK(!(left_is_const && right_is_const));
282
283
351
        if (!left_is_const && !right_is_const) {
284
124
            auto col_res = ColumnUInt8::create();
285
286
124
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
124
            vec_res.resize(col_left->get_data().size());
288
124
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
124
                              typename PrimitiveTypeTraits<PT>::CppType,
290
124
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
124
                                                     vec_res);
292
293
124
            block.replace_by_position(result, std::move(col_res));
294
227
        } else if (!left_is_const && right_is_const) {
295
227
            auto col_res = ColumnUInt8::create();
296
297
227
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
227
            vec_res.resize(col_left->size());
299
227
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
227
                              typename PrimitiveTypeTraits<PT>::CppType,
301
227
                              Op<PT>>::vector_constant(col_left->get_data(),
302
227
                                                       col_right->get_element(0), vec_res);
303
304
227
            block.replace_by_position(result, std::move(col_res));
305
227
        } 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
351
        return Status::OK();
318
351
    }
_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
49
                            const ColumnPtr& col_right_ptr) const {
275
49
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
49
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
49
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
49
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
49
        DCHECK(!(left_is_const && right_is_const));
282
283
49
        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
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
49
        return Status::OK();
318
49
    }
_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
96
                            const ColumnPtr& col_right_ptr) const {
275
96
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
96
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
96
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
96
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
96
        DCHECK(!(left_is_const && right_is_const));
282
283
96
        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
64
        } else if (!left_is_const && right_is_const) {
295
32
            auto col_res = ColumnUInt8::create();
296
297
32
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
32
            vec_res.resize(col_left->size());
299
32
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
32
                              typename PrimitiveTypeTraits<PT>::CppType,
301
32
                              Op<PT>>::vector_constant(col_left->get_data(),
302
32
                                                       col_right->get_element(0), vec_res);
303
304
32
            block.replace_by_position(result, std::move(col_res));
305
32
        } 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
96
        return Status::OK();
318
96
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_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
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
4
        } 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
4
        return Status::OK();
318
4
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.34k
                            const ColumnPtr& col_right_ptr) const {
275
1.34k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.34k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.34k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.34k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.34k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.34k
        if (!left_is_const && !right_is_const) {
284
816
            auto col_res = ColumnUInt8::create();
285
286
816
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
816
            vec_res.resize(col_left->get_data().size());
288
816
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
816
                              typename PrimitiveTypeTraits<PT>::CppType,
290
816
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
816
                                                     vec_res);
292
293
816
            block.replace_by_position(result, std::move(col_res));
294
816
        } else if (!left_is_const && right_is_const) {
295
533
            auto col_res = ColumnUInt8::create();
296
297
533
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
533
            vec_res.resize(col_left->size());
299
533
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
533
                              typename PrimitiveTypeTraits<PT>::CppType,
301
533
                              Op<PT>>::vector_constant(col_left->get_data(),
302
533
                                                       col_right->get_element(0), vec_res);
303
304
533
            block.replace_by_position(result, std::move(col_res));
305
533
        } 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.34k
        return Status::OK();
318
1.34k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.09k
                            const ColumnPtr& col_right_ptr) const {
275
1.09k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.09k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.09k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.09k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.09k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.09k
        if (!left_is_const && !right_is_const) {
284
553
            auto col_res = ColumnUInt8::create();
285
286
553
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
553
            vec_res.resize(col_left->get_data().size());
288
553
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
553
                              typename PrimitiveTypeTraits<PT>::CppType,
290
553
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
553
                                                     vec_res);
292
293
553
            block.replace_by_position(result, std::move(col_res));
294
553
        } else if (!left_is_const && right_is_const) {
295
543
            auto col_res = ColumnUInt8::create();
296
297
543
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
543
            vec_res.resize(col_left->size());
299
543
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
543
                              typename PrimitiveTypeTraits<PT>::CppType,
301
543
                              Op<PT>>::vector_constant(col_left->get_data(),
302
543
                                                       col_right->get_element(0), vec_res);
303
304
543
            block.replace_by_position(result, std::move(col_res));
305
543
        } 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.09k
        return Status::OK();
318
1.09k
    }
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
52
                            const ColumnPtr& col_right_ptr) const {
275
52
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
52
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
52
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
52
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
52
        DCHECK(!(left_is_const && right_is_const));
282
283
52
        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
32
        } else if (!left_is_const && right_is_const) {
295
32
            auto col_res = ColumnUInt8::create();
296
297
32
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
32
            vec_res.resize(col_left->size());
299
32
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
32
                              typename PrimitiveTypeTraits<PT>::CppType,
301
32
                              Op<PT>>::vector_constant(col_left->get_data(),
302
32
                                                       col_right->get_element(0), vec_res);
303
304
32
            block.replace_by_position(result, std::move(col_res));
305
32
        } 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
52
        return Status::OK();
318
52
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
72
                            const ColumnPtr& col_right_ptr) const {
275
72
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
72
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
72
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
72
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
72
        DCHECK(!(left_is_const && right_is_const));
282
283
72
        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
52
        } else if (!left_is_const && right_is_const) {
295
52
            auto col_res = ColumnUInt8::create();
296
297
52
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
52
            vec_res.resize(col_left->size());
299
52
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
52
                              typename PrimitiveTypeTraits<PT>::CppType,
301
52
                              Op<PT>>::vector_constant(col_left->get_data(),
302
52
                                                       col_right->get_element(0), vec_res);
303
304
52
            block.replace_by_position(result, std::move(col_res));
305
52
        } 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
72
        return Status::OK();
318
72
    }
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.17k
                            const ColumnPtr& col_right_ptr) const {
275
1.17k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.17k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.17k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.17k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.17k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.17k
        if (!left_is_const && !right_is_const) {
284
1.09k
            auto col_res = ColumnUInt8::create();
285
286
1.09k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.09k
            vec_res.resize(col_left->get_data().size());
288
1.09k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.09k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.09k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.09k
                                                     vec_res);
292
293
1.09k
            block.replace_by_position(result, std::move(col_res));
294
1.09k
        } else if (!left_is_const && right_is_const) {
295
78
            auto col_res = ColumnUInt8::create();
296
297
78
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
78
            vec_res.resize(col_left->size());
299
78
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
78
                              typename PrimitiveTypeTraits<PT>::CppType,
301
78
                              Op<PT>>::vector_constant(col_left->get_data(),
302
78
                                                       col_right->get_element(0), vec_res);
303
304
78
            block.replace_by_position(result, std::move(col_res));
305
78
        } 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.17k
        return Status::OK();
318
1.17k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_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
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
60
        } else if (!left_is_const && right_is_const) {
295
60
            auto col_res = ColumnUInt8::create();
296
297
60
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
60
            vec_res.resize(col_left->size());
299
60
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
60
                              typename PrimitiveTypeTraits<PT>::CppType,
301
60
                              Op<PT>>::vector_constant(col_left->get_data(),
302
60
                                                       col_right->get_element(0), vec_res);
303
304
60
            block.replace_by_position(result, std::move(col_res));
305
60
        } 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
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_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_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
666
                            const ColumnPtr& col_right_ptr) const {
275
666
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
666
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
666
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
666
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
666
        DCHECK(!(left_is_const && right_is_const));
282
283
666
        if (!left_is_const && !right_is_const) {
284
235
            auto col_res = ColumnUInt8::create();
285
286
235
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
235
            vec_res.resize(col_left->get_data().size());
288
235
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
235
                              typename PrimitiveTypeTraits<PT>::CppType,
290
235
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
235
                                                     vec_res);
292
293
235
            block.replace_by_position(result, std::move(col_res));
294
431
        } else if (!left_is_const && right_is_const) {
295
431
            auto col_res = ColumnUInt8::create();
296
297
431
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
431
            vec_res.resize(col_left->size());
299
431
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
431
                              typename PrimitiveTypeTraits<PT>::CppType,
301
431
                              Op<PT>>::vector_constant(col_left->get_data(),
302
431
                                                       col_right->get_element(0), vec_res);
303
304
431
            block.replace_by_position(result, std::move(col_res));
305
431
        } 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
666
        return Status::OK();
318
666
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.01k
                            const ColumnPtr& col_right_ptr) const {
275
1.01k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.01k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.01k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.01k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.01k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.01k
        if (!left_is_const && !right_is_const) {
284
565
            auto col_res = ColumnUInt8::create();
285
286
565
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
565
            vec_res.resize(col_left->get_data().size());
288
565
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
565
                              typename PrimitiveTypeTraits<PT>::CppType,
290
565
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
565
                                                     vec_res);
292
293
565
            block.replace_by_position(result, std::move(col_res));
294
565
        } else if (!left_is_const && right_is_const) {
295
455
            auto col_res = ColumnUInt8::create();
296
297
455
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
455
            vec_res.resize(col_left->size());
299
455
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
455
                              typename PrimitiveTypeTraits<PT>::CppType,
301
455
                              Op<PT>>::vector_constant(col_left->get_data(),
302
455
                                                       col_right->get_element(0), vec_res);
303
304
455
            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
1.01k
        return Status::OK();
318
1.01k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
7.73k
                            const ColumnPtr& col_right_ptr) const {
275
7.73k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
7.73k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
7.73k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
7.73k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
7.73k
        DCHECK(!(left_is_const && right_is_const));
282
283
7.73k
        if (!left_is_const && !right_is_const) {
284
1.78k
            auto col_res = ColumnUInt8::create();
285
286
1.78k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.78k
            vec_res.resize(col_left->get_data().size());
288
1.78k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.78k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.78k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.78k
                                                     vec_res);
292
293
1.78k
            block.replace_by_position(result, std::move(col_res));
294
5.94k
        } else if (!left_is_const && right_is_const) {
295
5.94k
            auto col_res = ColumnUInt8::create();
296
297
5.94k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
5.94k
            vec_res.resize(col_left->size());
299
5.94k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
5.94k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
5.94k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
5.94k
                                                       col_right->get_element(0), vec_res);
303
304
5.94k
            block.replace_by_position(result, std::move(col_res));
305
5.94k
        } 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
7.73k
        return Status::OK();
318
7.73k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
8.00k
                            const ColumnPtr& col_right_ptr) const {
275
8.00k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
8.00k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
8.00k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
8.00k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
8.00k
        DCHECK(!(left_is_const && right_is_const));
282
283
8.00k
        if (!left_is_const && !right_is_const) {
284
131
            auto col_res = ColumnUInt8::create();
285
286
131
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
131
            vec_res.resize(col_left->get_data().size());
288
131
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
131
                              typename PrimitiveTypeTraits<PT>::CppType,
290
131
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
131
                                                     vec_res);
292
293
131
            block.replace_by_position(result, std::move(col_res));
294
7.87k
        } else if (!left_is_const && right_is_const) {
295
7.87k
            auto col_res = ColumnUInt8::create();
296
297
7.87k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
7.87k
            vec_res.resize(col_left->size());
299
7.87k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
7.87k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
7.87k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
7.87k
                                                       col_right->get_element(0), vec_res);
303
304
7.87k
            block.replace_by_position(result, std::move(col_res));
305
7.87k
        } 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
8.00k
        return Status::OK();
318
8.00k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
248
                            const ColumnPtr& col_right_ptr) const {
275
248
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
248
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
248
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
248
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
248
        DCHECK(!(left_is_const && right_is_const));
282
283
248
        if (!left_is_const && !right_is_const) {
284
41
            auto col_res = ColumnUInt8::create();
285
286
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
41
            vec_res.resize(col_left->get_data().size());
288
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
41
                              typename PrimitiveTypeTraits<PT>::CppType,
290
41
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
41
                                                     vec_res);
292
293
41
            block.replace_by_position(result, std::move(col_res));
294
207
        } else if (!left_is_const && right_is_const) {
295
206
            auto col_res = ColumnUInt8::create();
296
297
206
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
206
            vec_res.resize(col_left->size());
299
206
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
206
                              typename PrimitiveTypeTraits<PT>::CppType,
301
206
                              Op<PT>>::vector_constant(col_left->get_data(),
302
206
                                                       col_right->get_element(0), vec_res);
303
304
206
            block.replace_by_position(result, std::move(col_res));
305
206
        } 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
248
        return Status::OK();
318
248
    }
_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
232
                            const ColumnPtr& col_right_ptr) const {
275
232
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
232
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
232
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
232
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
232
        DCHECK(!(left_is_const && right_is_const));
282
283
232
        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
212
        } else if (!left_is_const && right_is_const) {
295
212
            auto col_res = ColumnUInt8::create();
296
297
212
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
212
            vec_res.resize(col_left->size());
299
212
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
212
                              typename PrimitiveTypeTraits<PT>::CppType,
301
212
                              Op<PT>>::vector_constant(col_left->get_data(),
302
212
                                                       col_right->get_element(0), vec_res);
303
304
212
            block.replace_by_position(result, std::move(col_res));
305
212
        } 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
232
        return Status::OK();
318
232
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.66k
                            const ColumnPtr& col_right_ptr) const {
275
1.66k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.66k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.66k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.66k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.66k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.66k
        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.62k
        } else if (!left_is_const && right_is_const) {
295
1.62k
            auto col_res = ColumnUInt8::create();
296
297
1.62k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.62k
            vec_res.resize(col_left->size());
299
1.62k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.62k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.62k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.62k
                                                       col_right->get_element(0), vec_res);
303
304
1.62k
            block.replace_by_position(result, std::move(col_res));
305
1.62k
        } 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.66k
        return Status::OK();
318
1.66k
    }
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
123
                            const ColumnPtr& col_right_ptr) const {
275
123
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
123
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
123
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
123
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
123
        DCHECK(!(left_is_const && right_is_const));
282
283
125
        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
125
        } else if (!left_is_const && right_is_const) {
295
125
            auto col_res = ColumnUInt8::create();
296
297
125
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
125
            vec_res.resize(col_left->size());
299
125
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
125
                              typename PrimitiveTypeTraits<PT>::CppType,
301
125
                              Op<PT>>::vector_constant(col_left->get_data(),
302
125
                                                       col_right->get_element(0), vec_res);
303
304
125
            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
123
        return Status::OK();
318
123
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.11k
                            const ColumnPtr& col_right_ptr) const {
275
1.11k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.11k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.11k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.11k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.11k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.11k
        if (!left_is_const && !right_is_const) {
284
7
            auto col_res = ColumnUInt8::create();
285
286
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
7
            vec_res.resize(col_left->get_data().size());
288
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
7
                              typename PrimitiveTypeTraits<PT>::CppType,
290
7
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
7
                                                     vec_res);
292
293
7
            block.replace_by_position(result, std::move(col_res));
294
1.10k
        } else if (!left_is_const && right_is_const) {
295
1.10k
            auto col_res = ColumnUInt8::create();
296
297
1.10k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.10k
            vec_res.resize(col_left->size());
299
1.10k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.10k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.10k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.10k
                                                       col_right->get_element(0), vec_res);
303
304
1.10k
            block.replace_by_position(result, std::move(col_res));
305
1.10k
        } 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.11k
        return Status::OK();
318
1.11k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
493
                            const ColumnPtr& col_right_ptr) const {
275
493
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
493
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
493
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
493
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
493
        DCHECK(!(left_is_const && right_is_const));
282
283
493
        if (!left_is_const && !right_is_const) {
284
10
            auto col_res = ColumnUInt8::create();
285
286
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
10
            vec_res.resize(col_left->get_data().size());
288
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
10
                              typename PrimitiveTypeTraits<PT>::CppType,
290
10
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
10
                                                     vec_res);
292
293
10
            block.replace_by_position(result, std::move(col_res));
294
483
        } else if (!left_is_const && right_is_const) {
295
482
            auto col_res = ColumnUInt8::create();
296
297
482
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
482
            vec_res.resize(col_left->size());
299
482
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
482
                              typename PrimitiveTypeTraits<PT>::CppType,
301
482
                              Op<PT>>::vector_constant(col_left->get_data(),
302
482
                                                       col_right->get_element(0), vec_res);
303
304
482
            block.replace_by_position(result, std::move(col_res));
305
482
        } 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
493
        return Status::OK();
318
493
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_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_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
93
                            const ColumnPtr& col_right_ptr) const {
275
93
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
93
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
93
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
93
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
93
        DCHECK(!(left_is_const && right_is_const));
282
283
93
        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
93
        } else if (!left_is_const && right_is_const) {
295
93
            auto col_res = ColumnUInt8::create();
296
297
93
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
93
            vec_res.resize(col_left->size());
299
93
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
93
                              typename PrimitiveTypeTraits<PT>::CppType,
301
93
                              Op<PT>>::vector_constant(col_left->get_data(),
302
93
                                                       col_right->get_element(0), vec_res);
303
304
93
            block.replace_by_position(result, std::move(col_res));
305
93
        } 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
93
        return Status::OK();
318
93
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
174
                            const ColumnPtr& col_right_ptr) const {
275
174
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
174
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
174
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
174
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
174
        DCHECK(!(left_is_const && right_is_const));
282
283
174
        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
174
        } else if (!left_is_const && right_is_const) {
295
174
            auto col_res = ColumnUInt8::create();
296
297
174
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
174
            vec_res.resize(col_left->size());
299
174
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
174
                              typename PrimitiveTypeTraits<PT>::CppType,
301
174
                              Op<PT>>::vector_constant(col_left->get_data(),
302
174
                                                       col_right->get_element(0), vec_res);
303
304
174
            block.replace_by_position(result, std::move(col_res));
305
174
        } 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
174
        return Status::OK();
318
174
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
11.4k
                            const ColumnPtr& col_right_ptr) const {
275
11.4k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
11.4k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
11.4k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
11.4k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
11.4k
        DCHECK(!(left_is_const && right_is_const));
282
283
11.4k
        if (!left_is_const && !right_is_const) {
284
7
            auto col_res = ColumnUInt8::create();
285
286
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
7
            vec_res.resize(col_left->get_data().size());
288
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
7
                              typename PrimitiveTypeTraits<PT>::CppType,
290
7
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
7
                                                     vec_res);
292
293
7
            block.replace_by_position(result, std::move(col_res));
294
11.4k
        } else if (!left_is_const && right_is_const) {
295
11.4k
            auto col_res = ColumnUInt8::create();
296
297
11.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
11.4k
            vec_res.resize(col_left->size());
299
11.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
11.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
11.4k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
11.4k
                                                       col_right->get_element(0), vec_res);
303
304
11.4k
            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
11.4k
        return Status::OK();
318
11.4k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
348
                            const ColumnPtr& col_right_ptr) const {
275
348
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
348
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
348
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
348
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
348
        DCHECK(!(left_is_const && right_is_const));
282
283
349
        if (!left_is_const && !right_is_const) {
284
17
            auto col_res = ColumnUInt8::create();
285
286
17
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
17
            vec_res.resize(col_left->get_data().size());
288
17
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
17
                              typename PrimitiveTypeTraits<PT>::CppType,
290
17
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
17
                                                     vec_res);
292
293
17
            block.replace_by_position(result, std::move(col_res));
294
332
        } else if (!left_is_const && right_is_const) {
295
332
            auto col_res = ColumnUInt8::create();
296
297
332
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
332
            vec_res.resize(col_left->size());
299
332
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
332
                              typename PrimitiveTypeTraits<PT>::CppType,
301
332
                              Op<PT>>::vector_constant(col_left->get_data(),
302
332
                                                       col_right->get_element(0), vec_res);
303
304
332
            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
348
        return Status::OK();
318
348
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
37
                            const ColumnPtr& col_right_ptr) const {
275
37
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
37
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
37
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
37
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
37
        DCHECK(!(left_is_const && right_is_const));
282
283
37
        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
37
        } else if (!left_is_const && right_is_const) {
295
37
            auto col_res = ColumnUInt8::create();
296
297
37
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
37
            vec_res.resize(col_left->size());
299
37
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
37
                              typename PrimitiveTypeTraits<PT>::CppType,
301
37
                              Op<PT>>::vector_constant(col_left->get_data(),
302
37
                                                       col_right->get_element(0), vec_res);
303
304
37
            block.replace_by_position(result, std::move(col_res));
305
37
        } 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
37
        return Status::OK();
318
37
    }
_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
126
                            const ColumnPtr& col_right_ptr) const {
275
126
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
126
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
126
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
126
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
126
        DCHECK(!(left_is_const && right_is_const));
282
283
126
        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
106
        } else if (!left_is_const && right_is_const) {
295
106
            auto col_res = ColumnUInt8::create();
296
297
106
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
106
            vec_res.resize(col_left->size());
299
106
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
106
                              typename PrimitiveTypeTraits<PT>::CppType,
301
106
                              Op<PT>>::vector_constant(col_left->get_data(),
302
106
                                                       col_right->get_element(0), vec_res);
303
304
106
            block.replace_by_position(result, std::move(col_res));
305
106
        } 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
126
        return Status::OK();
318
126
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
213
                            const ColumnPtr& col_right_ptr) const {
275
213
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
213
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
213
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
213
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
213
        DCHECK(!(left_is_const && right_is_const));
282
283
214
        if (!left_is_const && !right_is_const) {
284
55
            auto col_res = ColumnUInt8::create();
285
286
55
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
55
            vec_res.resize(col_left->get_data().size());
288
55
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
55
                              typename PrimitiveTypeTraits<PT>::CppType,
290
55
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
55
                                                     vec_res);
292
293
55
            block.replace_by_position(result, std::move(col_res));
294
159
        } else if (!left_is_const && right_is_const) {
295
159
            auto col_res = ColumnUInt8::create();
296
297
159
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
159
            vec_res.resize(col_left->size());
299
159
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
159
                              typename PrimitiveTypeTraits<PT>::CppType,
301
159
                              Op<PT>>::vector_constant(col_left->get_data(),
302
159
                                                       col_right->get_element(0), vec_res);
303
304
159
            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
213
        return Status::OK();
318
213
    }
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.19k
                            const ColumnPtr& col_right_ptr) const {
275
2.19k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.19k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.19k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.19k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.19k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.19k
        if (!left_is_const && !right_is_const) {
284
1.73k
            auto col_res = ColumnUInt8::create();
285
286
1.73k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.73k
            vec_res.resize(col_left->get_data().size());
288
1.73k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.73k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.73k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.73k
                                                     vec_res);
292
293
1.73k
            block.replace_by_position(result, std::move(col_res));
294
1.73k
        } else if (!left_is_const && right_is_const) {
295
463
            auto col_res = ColumnUInt8::create();
296
297
463
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
463
            vec_res.resize(col_left->size());
299
463
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
463
                              typename PrimitiveTypeTraits<PT>::CppType,
301
463
                              Op<PT>>::vector_constant(col_left->get_data(),
302
463
                                                       col_right->get_element(0), vec_res);
303
304
463
            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
2.19k
        return Status::OK();
318
2.19k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
448
                            const ColumnPtr& col_right_ptr) const {
275
448
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
448
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
448
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
448
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
448
        DCHECK(!(left_is_const && right_is_const));
282
283
450
        if (!left_is_const && !right_is_const) {
284
237
            auto col_res = ColumnUInt8::create();
285
286
237
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
237
            vec_res.resize(col_left->get_data().size());
288
237
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
237
                              typename PrimitiveTypeTraits<PT>::CppType,
290
237
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
237
                                                     vec_res);
292
293
237
            block.replace_by_position(result, std::move(col_res));
294
237
        } else if (!left_is_const && right_is_const) {
295
213
            auto col_res = ColumnUInt8::create();
296
297
213
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
213
            vec_res.resize(col_left->size());
299
213
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
213
                              typename PrimitiveTypeTraits<PT>::CppType,
301
213
                              Op<PT>>::vector_constant(col_left->get_data(),
302
213
                                                       col_right->get_element(0), vec_res);
303
304
213
            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
448
        return Status::OK();
318
448
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_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
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
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
4
        return Status::OK();
318
4
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
773
                            const ColumnPtr& col_right_ptr) const {
275
773
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
773
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
773
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
773
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
773
        DCHECK(!(left_is_const && right_is_const));
282
283
773
        if (!left_is_const && !right_is_const) {
284
724
            auto col_res = ColumnUInt8::create();
285
286
724
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
724
            vec_res.resize(col_left->get_data().size());
288
724
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
724
                              typename PrimitiveTypeTraits<PT>::CppType,
290
724
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
724
                                                     vec_res);
292
293
724
            block.replace_by_position(result, std::move(col_res));
294
724
        } else if (!left_is_const && right_is_const) {
295
49
            auto col_res = ColumnUInt8::create();
296
297
49
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
49
            vec_res.resize(col_left->size());
299
49
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
49
                              typename PrimitiveTypeTraits<PT>::CppType,
301
49
                              Op<PT>>::vector_constant(col_left->get_data(),
302
49
                                                       col_right->get_element(0), vec_res);
303
304
49
            block.replace_by_position(result, std::move(col_res));
305
49
        } 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
773
        return Status::OK();
318
773
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
199
                            const ColumnPtr& col_right_ptr) const {
275
199
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
199
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
199
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
199
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
199
        DCHECK(!(left_is_const && right_is_const));
282
283
199
        if (!left_is_const && !right_is_const) {
284
97
            auto col_res = ColumnUInt8::create();
285
286
97
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
97
            vec_res.resize(col_left->get_data().size());
288
97
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
97
                              typename PrimitiveTypeTraits<PT>::CppType,
290
97
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
97
                                                     vec_res);
292
293
97
            block.replace_by_position(result, std::move(col_res));
294
102
        } 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
199
        return Status::OK();
318
199
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.46k
                            const ColumnPtr& col_right_ptr) const {
275
1.46k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.46k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.46k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.46k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.46k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.46k
        if (!left_is_const && !right_is_const) {
284
160
            auto col_res = ColumnUInt8::create();
285
286
160
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
160
            vec_res.resize(col_left->get_data().size());
288
160
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
160
                              typename PrimitiveTypeTraits<PT>::CppType,
290
160
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
160
                                                     vec_res);
292
293
160
            block.replace_by_position(result, std::move(col_res));
294
1.30k
        } else if (!left_is_const && right_is_const) {
295
1.30k
            auto col_res = ColumnUInt8::create();
296
297
1.30k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.30k
            vec_res.resize(col_left->size());
299
1.30k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.30k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.30k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.30k
                                                       col_right->get_element(0), vec_res);
303
304
1.30k
            block.replace_by_position(result, std::move(col_res));
305
1.30k
        } 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.46k
        return Status::OK();
318
1.46k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.16k
                            const ColumnPtr& col_right_ptr) const {
275
1.16k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.16k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.16k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.16k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.16k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.16k
        if (!left_is_const && !right_is_const) {
284
212
            auto col_res = ColumnUInt8::create();
285
286
212
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
212
            vec_res.resize(col_left->get_data().size());
288
212
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
212
                              typename PrimitiveTypeTraits<PT>::CppType,
290
212
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
212
                                                     vec_res);
292
293
212
            block.replace_by_position(result, std::move(col_res));
294
949
        } else if (!left_is_const && right_is_const) {
295
949
            auto col_res = ColumnUInt8::create();
296
297
949
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
949
            vec_res.resize(col_left->size());
299
949
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
949
                              typename PrimitiveTypeTraits<PT>::CppType,
301
949
                              Op<PT>>::vector_constant(col_left->get_data(),
302
949
                                                       col_right->get_element(0), vec_res);
303
304
949
            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
1.16k
        return Status::OK();
318
1.16k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
211
                            const ColumnPtr& col_right_ptr) const {
275
211
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
211
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
211
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
211
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
211
        DCHECK(!(left_is_const && right_is_const));
282
283
211
        if (!left_is_const && !right_is_const) {
284
193
            auto col_res = ColumnUInt8::create();
285
286
193
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
193
            vec_res.resize(col_left->get_data().size());
288
193
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
193
                              typename PrimitiveTypeTraits<PT>::CppType,
290
193
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
193
                                                     vec_res);
292
293
193
            block.replace_by_position(result, std::move(col_res));
294
193
        } else if (!left_is_const && right_is_const) {
295
18
            auto col_res = ColumnUInt8::create();
296
297
18
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
18
            vec_res.resize(col_left->size());
299
18
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
18
                              typename PrimitiveTypeTraits<PT>::CppType,
301
18
                              Op<PT>>::vector_constant(col_left->get_data(),
302
18
                                                       col_right->get_element(0), vec_res);
303
304
18
            block.replace_by_position(result, std::move(col_res));
305
18
        } 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
211
        return Status::OK();
318
211
    }
_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
127
                            const ColumnPtr& col_right_ptr) const {
275
127
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
127
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
127
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
127
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
127
        DCHECK(!(left_is_const && right_is_const));
282
283
127
        if (!left_is_const && !right_is_const) {
284
109
            auto col_res = ColumnUInt8::create();
285
286
109
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
109
            vec_res.resize(col_left->get_data().size());
288
109
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
109
                              typename PrimitiveTypeTraits<PT>::CppType,
290
109
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
109
                                                     vec_res);
292
293
109
            block.replace_by_position(result, std::move(col_res));
294
109
        } else if (!left_is_const && right_is_const) {
295
18
            auto col_res = ColumnUInt8::create();
296
297
18
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
18
            vec_res.resize(col_left->size());
299
18
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
18
                              typename PrimitiveTypeTraits<PT>::CppType,
301
18
                              Op<PT>>::vector_constant(col_left->get_data(),
302
18
                                                       col_right->get_element(0), vec_res);
303
304
18
            block.replace_by_position(result, std::move(col_res));
305
18
        } 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
127
        return Status::OK();
318
127
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
413
                            const ColumnPtr& col_right_ptr) const {
275
413
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
413
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
413
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
413
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
413
        DCHECK(!(left_is_const && right_is_const));
282
283
413
        if (!left_is_const && !right_is_const) {
284
165
            auto col_res = ColumnUInt8::create();
285
286
165
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
165
            vec_res.resize(col_left->get_data().size());
288
165
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
165
                              typename PrimitiveTypeTraits<PT>::CppType,
290
165
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
165
                                                     vec_res);
292
293
165
            block.replace_by_position(result, std::move(col_res));
294
248
        } else if (!left_is_const && right_is_const) {
295
248
            auto col_res = ColumnUInt8::create();
296
297
248
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
248
            vec_res.resize(col_left->size());
299
248
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
248
                              typename PrimitiveTypeTraits<PT>::CppType,
301
248
                              Op<PT>>::vector_constant(col_left->get_data(),
302
248
                                                       col_right->get_element(0), vec_res);
303
304
248
            block.replace_by_position(result, std::move(col_res));
305
248
        } 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
413
        return Status::OK();
318
413
    }
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
111
                            const ColumnPtr& col_right_ptr) const {
275
111
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
111
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
111
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
111
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
111
        DCHECK(!(left_is_const && right_is_const));
282
283
111
        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
111
        } else if (!left_is_const && right_is_const) {
295
111
            auto col_res = ColumnUInt8::create();
296
297
111
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
111
            vec_res.resize(col_left->size());
299
111
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
111
                              typename PrimitiveTypeTraits<PT>::CppType,
301
111
                              Op<PT>>::vector_constant(col_left->get_data(),
302
111
                                                       col_right->get_element(0), vec_res);
303
304
111
            block.replace_by_position(result, std::move(col_res));
305
111
        } 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
111
        return Status::OK();
318
111
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.53k
                            const ColumnPtr& col_right_ptr) const {
275
2.53k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.53k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.53k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.53k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.53k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.53k
        if (!left_is_const && !right_is_const) {
284
434
            auto col_res = ColumnUInt8::create();
285
286
434
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
434
            vec_res.resize(col_left->get_data().size());
288
434
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
434
                              typename PrimitiveTypeTraits<PT>::CppType,
290
434
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
434
                                                     vec_res);
292
293
434
            block.replace_by_position(result, std::move(col_res));
294
2.10k
        } else if (!left_is_const && right_is_const) {
295
2.10k
            auto col_res = ColumnUInt8::create();
296
297
2.10k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2.10k
            vec_res.resize(col_left->size());
299
2.10k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2.10k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2.10k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2.10k
                                                       col_right->get_element(0), vec_res);
303
304
2.10k
            block.replace_by_position(result, std::move(col_res));
305
2.10k
        } 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.53k
        return Status::OK();
318
2.53k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
264
                            const ColumnPtr& col_right_ptr) const {
275
264
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
264
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
264
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
264
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
264
        DCHECK(!(left_is_const && right_is_const));
282
283
264
        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
264
        } else if (!left_is_const && right_is_const) {
295
262
            auto col_res = ColumnUInt8::create();
296
297
262
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
262
            vec_res.resize(col_left->size());
299
262
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
262
                              typename PrimitiveTypeTraits<PT>::CppType,
301
262
                              Op<PT>>::vector_constant(col_left->get_data(),
302
262
                                                       col_right->get_element(0), vec_res);
303
304
262
            block.replace_by_position(result, std::move(col_res));
305
262
        } 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
264
        return Status::OK();
318
264
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_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_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
142
                            const ColumnPtr& col_right_ptr) const {
275
142
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
142
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
142
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
142
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
142
        DCHECK(!(left_is_const && right_is_const));
282
283
142
        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
141
        } else if (!left_is_const && right_is_const) {
295
141
            auto col_res = ColumnUInt8::create();
296
297
141
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
141
            vec_res.resize(col_left->size());
299
141
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
141
                              typename PrimitiveTypeTraits<PT>::CppType,
301
141
                              Op<PT>>::vector_constant(col_left->get_data(),
302
141
                                                       col_right->get_element(0), vec_res);
303
304
141
            block.replace_by_position(result, std::move(col_res));
305
141
        } 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
142
        return Status::OK();
318
142
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
277
                            const ColumnPtr& col_right_ptr) const {
275
277
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
277
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
277
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
277
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
277
        DCHECK(!(left_is_const && right_is_const));
282
283
277
        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
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
277
        return Status::OK();
318
277
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
11.5k
                            const ColumnPtr& col_right_ptr) const {
275
11.5k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
11.5k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
11.5k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
11.5k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
11.5k
        DCHECK(!(left_is_const && right_is_const));
282
283
11.5k
        if (!left_is_const && !right_is_const) {
284
65
            auto col_res = ColumnUInt8::create();
285
286
65
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
65
            vec_res.resize(col_left->get_data().size());
288
65
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
65
                              typename PrimitiveTypeTraits<PT>::CppType,
290
65
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
65
                                                     vec_res);
292
293
65
            block.replace_by_position(result, std::move(col_res));
294
11.4k
        } else if (!left_is_const && right_is_const) {
295
11.4k
            auto col_res = ColumnUInt8::create();
296
297
11.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
11.4k
            vec_res.resize(col_left->size());
299
11.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
11.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
11.4k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
11.4k
                                                       col_right->get_element(0), vec_res);
303
304
11.4k
            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
11.5k
        return Status::OK();
318
11.5k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
414
                            const ColumnPtr& col_right_ptr) const {
275
414
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
414
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
414
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
414
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
414
        DCHECK(!(left_is_const && right_is_const));
282
283
414
        if (!left_is_const && !right_is_const) {
284
74
            auto col_res = ColumnUInt8::create();
285
286
74
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
74
            vec_res.resize(col_left->get_data().size());
288
74
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
74
                              typename PrimitiveTypeTraits<PT>::CppType,
290
74
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
74
                                                     vec_res);
292
293
74
            block.replace_by_position(result, std::move(col_res));
294
340
        } else if (!left_is_const && right_is_const) {
295
340
            auto col_res = ColumnUInt8::create();
296
297
340
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
340
            vec_res.resize(col_left->size());
299
340
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
340
                              typename PrimitiveTypeTraits<PT>::CppType,
301
340
                              Op<PT>>::vector_constant(col_left->get_data(),
302
340
                                                       col_right->get_element(0), vec_res);
303
304
340
            block.replace_by_position(result, std::move(col_res));
305
340
        } 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
414
        return Status::OK();
318
414
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
29
                            const ColumnPtr& col_right_ptr) const {
275
29
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
29
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
29
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
29
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
29
        DCHECK(!(left_is_const && right_is_const));
282
283
29
        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
29
        } else if (!left_is_const && right_is_const) {
295
29
            auto col_res = ColumnUInt8::create();
296
297
29
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
29
            vec_res.resize(col_left->size());
299
29
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
29
                              typename PrimitiveTypeTraits<PT>::CppType,
301
29
                              Op<PT>>::vector_constant(col_left->get_data(),
302
29
                                                       col_right->get_element(0), vec_res);
303
304
29
            block.replace_by_position(result, std::move(col_res));
305
29
        } 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
29
        return Status::OK();
318
29
    }
_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
120
                            const ColumnPtr& col_right_ptr) const {
275
120
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
120
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
120
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
120
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
120
        DCHECK(!(left_is_const && right_is_const));
282
283
120
        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
100
        } else if (!left_is_const && right_is_const) {
295
100
            auto col_res = ColumnUInt8::create();
296
297
100
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
100
            vec_res.resize(col_left->size());
299
100
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
100
                              typename PrimitiveTypeTraits<PT>::CppType,
301
100
                              Op<PT>>::vector_constant(col_left->get_data(),
302
100
                                                       col_right->get_element(0), vec_res);
303
304
100
            block.replace_by_position(result, std::move(col_res));
305
100
        } 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
120
        return Status::OK();
318
120
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
203
                            const ColumnPtr& col_right_ptr) const {
275
203
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
203
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
203
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
203
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
203
        DCHECK(!(left_is_const && right_is_const));
282
283
203
        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
183
        } else if (!left_is_const && right_is_const) {
295
183
            auto col_res = ColumnUInt8::create();
296
297
183
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
183
            vec_res.resize(col_left->size());
299
183
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
183
                              typename PrimitiveTypeTraits<PT>::CppType,
301
183
                              Op<PT>>::vector_constant(col_left->get_data(),
302
183
                                                       col_right->get_element(0), vec_res);
303
304
183
            block.replace_by_position(result, std::move(col_res));
305
183
        } 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
203
        return Status::OK();
318
203
    }
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
9.63k
                           const ColumnWithTypeAndName& col_right) const {
322
9.63k
        auto call = [&](const auto& type) -> bool {
323
9.63k
            using DispatchType = std::decay_t<decltype(type)>;
324
9.63k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
9.63k
                    block, result, col_left, col_right);
326
9.63k
            return true;
327
9.63k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
217
        auto call = [&](const auto& type) -> bool {
323
217
            using DispatchType = std::decay_t<decltype(type)>;
324
217
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
217
                    block, result, col_left, col_right);
326
217
            return true;
327
217
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
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
        };
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.15k
        auto call = [&](const auto& type) -> bool {
323
1.15k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.15k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.15k
                    block, result, col_left, col_right);
326
1.15k
            return true;
327
1.15k
        };
_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
61
        auto call = [&](const auto& type) -> bool {
323
61
            using DispatchType = std::decay_t<decltype(type)>;
324
61
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
61
                    block, result, col_left, col_right);
326
61
            return true;
327
61
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
176
        auto call = [&](const auto& type) -> bool {
323
176
            using DispatchType = std::decay_t<decltype(type)>;
324
176
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
176
                    block, result, col_left, col_right);
326
176
            return true;
327
176
        };
_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
22
        auto call = [&](const auto& type) -> bool {
323
22
            using DispatchType = std::decay_t<decltype(type)>;
324
22
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
22
                    block, result, col_left, col_right);
326
22
            return true;
327
22
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
3.68k
        auto call = [&](const auto& type) -> bool {
323
3.68k
            using DispatchType = std::decay_t<decltype(type)>;
324
3.68k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
3.68k
                    block, result, col_left, col_right);
326
3.68k
            return true;
327
3.68k
        };
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.64k
        auto call = [&](const auto& type) -> bool {
323
1.64k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.64k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.64k
                    block, result, col_left, col_right);
326
1.64k
            return true;
327
1.64k
        };
_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
3
        auto call = [&](const auto& type) -> bool {
323
3
            using DispatchType = std::decay_t<decltype(type)>;
324
3
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
3
                    block, result, col_left, col_right);
326
3
            return true;
327
3
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
215
        auto call = [&](const auto& type) -> bool {
323
215
            using DispatchType = std::decay_t<decltype(type)>;
324
215
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
215
                    block, result, col_left, col_right);
326
215
            return true;
327
215
        };
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
41
        auto call = [&](const auto& type) -> bool {
323
41
            using DispatchType = std::decay_t<decltype(type)>;
324
41
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
41
                    block, result, col_left, col_right);
326
41
            return true;
327
41
        };
_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
221
        auto call = [&](const auto& type) -> bool {
323
221
            using DispatchType = std::decay_t<decltype(type)>;
324
221
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
221
                    block, result, col_left, col_right);
326
221
            return true;
327
221
        };
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
437
        auto call = [&](const auto& type) -> bool {
323
437
            using DispatchType = std::decay_t<decltype(type)>;
324
437
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
437
                    block, result, col_left, col_right);
326
437
            return true;
327
437
        };
_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
8
        auto call = [&](const auto& type) -> bool {
323
8
            using DispatchType = std::decay_t<decltype(type)>;
324
8
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
8
                    block, result, col_left, col_right);
326
8
            return true;
327
8
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
773
        auto call = [&](const auto& type) -> bool {
323
773
            using DispatchType = std::decay_t<decltype(type)>;
324
773
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
773
                    block, result, col_left, col_right);
326
773
            return true;
327
773
        };
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
449
        auto call = [&](const auto& type) -> bool {
323
449
            using DispatchType = std::decay_t<decltype(type)>;
324
449
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
449
                    block, result, col_left, col_right);
326
449
            return true;
327
449
        };
_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
9.63k
        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
9.63k
        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
9.63k
        return Status::OK();
340
9.63k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.64k
                           const ColumnWithTypeAndName& col_right) const {
322
1.64k
        auto call = [&](const auto& type) -> bool {
323
1.64k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.64k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.64k
                    block, result, col_left, col_right);
326
1.64k
            return true;
327
1.64k
        };
328
329
1.64k
        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.64k
        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.64k
        return Status::OK();
340
1.64k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
266
                           const ColumnWithTypeAndName& col_right) const {
322
266
        auto call = [&](const auto& type) -> bool {
323
266
            using DispatchType = std::decay_t<decltype(type)>;
324
266
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
266
                    block, result, col_left, col_right);
326
266
            return true;
327
266
        };
328
329
266
        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
266
        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
266
        return Status::OK();
340
266
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
5.35k
                           const ColumnWithTypeAndName& col_right) const {
322
5.35k
        auto call = [&](const auto& type) -> bool {
323
5.35k
            using DispatchType = std::decay_t<decltype(type)>;
324
5.35k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
5.35k
                    block, result, col_left, col_right);
326
5.35k
            return true;
327
5.35k
        };
328
329
5.35k
        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
5.35k
        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
5.35k
        return Status::OK();
340
5.35k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
280
                           const ColumnWithTypeAndName& col_right) const {
322
280
        auto call = [&](const auto& type) -> bool {
323
280
            using DispatchType = std::decay_t<decltype(type)>;
324
280
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
280
                    block, result, col_left, col_right);
326
280
            return true;
327
280
        };
328
329
280
        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
280
        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
280
        return Status::OK();
340
280
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
847
                           const ColumnWithTypeAndName& col_right) const {
322
847
        auto call = [&](const auto& type) -> bool {
323
847
            using DispatchType = std::decay_t<decltype(type)>;
324
847
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
847
                    block, result, col_left, col_right);
326
847
            return true;
327
847
        };
328
329
847
        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
847
        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
847
        return Status::OK();
340
847
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.24k
                           const ColumnWithTypeAndName& col_right) const {
322
1.24k
        auto call = [&](const auto& type) -> bool {
323
1.24k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.24k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.24k
                    block, result, col_left, col_right);
326
1.24k
            return true;
327
1.24k
        };
328
329
1.24k
        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.24k
        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.24k
        return Status::OK();
340
1.24k
    }
341
342
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
343
21.4k
                          const IColumn* c1) const {
344
21.4k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
21.4k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
21.4k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
21.4k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
21.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
21.4k
        DCHECK(!(c0_const && c1_const));
353
21.4k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
21.4k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
21.4k
        ColumnString::Offset c0_const_size = 0;
356
21.4k
        ColumnString::Offset c1_const_size = 0;
357
358
21.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
21.4k
        if (c1_const) {
372
20.6k
            const ColumnString* c1_const_string =
373
20.6k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
20.6k
            if (c1_const_string) {
376
20.6k
                c1_const_chars = &c1_const_string->get_chars();
377
20.6k
                c1_const_size = c1_const_string->get_offsets()[0];
378
20.6k
            } else {
379
1
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
1
                                            c1->get_name(), name);
381
1
            }
382
20.6k
        }
383
384
21.4k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
21.4k
        auto c_res = ColumnUInt8::create();
387
21.4k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
21.4k
        vec_res.resize(c0->size());
389
390
21.4k
        if (c0_string && c1_string) {
391
858
            StringImpl::string_vector_string_vector(
392
858
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
858
                    c1_string->get_offsets(), vec_res);
394
20.6k
        } else if (c0_string && c1_const) {
395
20.6k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
20.6k
                                               *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
21.4k
        block.replace_by_position(result, std::move(c_res));
406
21.4k
        return Status::OK();
407
21.4k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
19.1k
                          const IColumn* c1) const {
344
19.1k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
19.1k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
19.1k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
19.1k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
19.1k
        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
19.1k
        DCHECK(!(c0_const && c1_const));
353
19.1k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
19.1k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
19.1k
        ColumnString::Offset c0_const_size = 0;
356
19.1k
        ColumnString::Offset c1_const_size = 0;
357
358
19.1k
        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
19.1k
        if (c1_const) {
372
18.6k
            const ColumnString* c1_const_string =
373
18.6k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
18.6k
            if (c1_const_string) {
376
18.6k
                c1_const_chars = &c1_const_string->get_chars();
377
18.6k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.6k
            } else {
379
1
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
1
                                            c1->get_name(), name);
381
1
            }
382
18.6k
        }
383
384
19.1k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
19.1k
        auto c_res = ColumnUInt8::create();
387
19.1k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
19.1k
        vec_res.resize(c0->size());
389
390
19.1k
        if (c0_string && c1_string) {
391
457
            StringImpl::string_vector_string_vector(
392
457
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
457
                    c1_string->get_offsets(), vec_res);
394
18.6k
        } else if (c0_string && c1_const) {
395
18.6k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
18.6k
                                               *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
19.1k
        block.replace_by_position(result, std::move(c_res));
406
19.1k
        return Status::OK();
407
19.1k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
676
                          const IColumn* c1) const {
344
676
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
676
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
676
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
676
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
676
        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
676
        DCHECK(!(c0_const && c1_const));
353
676
        const ColumnString::Chars* c0_const_chars = nullptr;
354
676
        const ColumnString::Chars* c1_const_chars = nullptr;
355
676
        ColumnString::Offset c0_const_size = 0;
356
676
        ColumnString::Offset c1_const_size = 0;
357
358
676
        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
676
        if (c1_const) {
372
675
            const ColumnString* c1_const_string =
373
675
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
675
            if (c1_const_string) {
376
675
                c1_const_chars = &c1_const_string->get_chars();
377
675
                c1_const_size = c1_const_string->get_offsets()[0];
378
675
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
675
        }
383
384
676
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
676
        auto c_res = ColumnUInt8::create();
387
676
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
676
        vec_res.resize(c0->size());
389
390
676
        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
675
        } else if (c0_string && c1_const) {
395
675
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
675
                                               *c1_const_chars, c1_const_size, vec_res);
397
675
        } 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
676
        block.replace_by_position(result, std::move(c_res));
406
676
        return Status::OK();
407
676
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
197
                          const IColumn* c1) const {
344
197
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
197
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
197
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
197
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
197
        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
197
        DCHECK(!(c0_const && c1_const));
353
197
        const ColumnString::Chars* c0_const_chars = nullptr;
354
197
        const ColumnString::Chars* c1_const_chars = nullptr;
355
197
        ColumnString::Offset c0_const_size = 0;
356
197
        ColumnString::Offset c1_const_size = 0;
357
358
197
        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
197
        if (c1_const) {
372
195
            const ColumnString* c1_const_string =
373
195
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
195
            if (c1_const_string) {
376
195
                c1_const_chars = &c1_const_string->get_chars();
377
195
                c1_const_size = c1_const_string->get_offsets()[0];
378
195
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
195
        }
383
384
197
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
197
        auto c_res = ColumnUInt8::create();
387
197
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
197
        vec_res.resize(c0->size());
389
390
197
        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
195
        } else if (c0_string && c1_const) {
395
195
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
195
                                               *c1_const_chars, c1_const_size, vec_res);
397
195
        } 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
197
        block.replace_by_position(result, std::move(c_res));
406
197
        return Status::OK();
407
197
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
472
                          const IColumn* c1) const {
344
472
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
472
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
472
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
472
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
472
        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
472
        DCHECK(!(c0_const && c1_const));
353
472
        const ColumnString::Chars* c0_const_chars = nullptr;
354
472
        const ColumnString::Chars* c1_const_chars = nullptr;
355
472
        ColumnString::Offset c0_const_size = 0;
356
472
        ColumnString::Offset c1_const_size = 0;
357
358
472
        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
472
        if (c1_const) {
372
429
            const ColumnString* c1_const_string =
373
429
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
429
            if (c1_const_string) {
376
429
                c1_const_chars = &c1_const_string->get_chars();
377
429
                c1_const_size = c1_const_string->get_offsets()[0];
378
429
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
429
        }
383
384
472
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
472
        auto c_res = ColumnUInt8::create();
387
472
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
472
        vec_res.resize(c0->size());
389
390
472
        if (c0_string && c1_string) {
391
43
            StringImpl::string_vector_string_vector(
392
43
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
43
                    c1_string->get_offsets(), vec_res);
394
429
        } else if (c0_string && c1_const) {
395
429
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
429
                                               *c1_const_chars, c1_const_size, vec_res);
397
429
        } 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
472
        block.replace_by_position(result, std::move(c_res));
406
472
        return Status::OK();
407
472
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
570
                          const IColumn* c1) const {
344
570
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
570
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
570
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
570
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
570
        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
570
        DCHECK(!(c0_const && c1_const));
353
570
        const ColumnString::Chars* c0_const_chars = nullptr;
354
570
        const ColumnString::Chars* c1_const_chars = nullptr;
355
570
        ColumnString::Offset c0_const_size = 0;
356
570
        ColumnString::Offset c1_const_size = 0;
357
358
570
        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
570
        if (c1_const) {
372
215
            const ColumnString* c1_const_string =
373
215
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
215
            if (c1_const_string) {
376
215
                c1_const_chars = &c1_const_string->get_chars();
377
215
                c1_const_size = c1_const_string->get_offsets()[0];
378
215
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
215
        }
383
384
570
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
570
        auto c_res = ColumnUInt8::create();
387
570
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
570
        vec_res.resize(c0->size());
389
390
570
        if (c0_string && c1_string) {
391
355
            StringImpl::string_vector_string_vector(
392
355
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
355
                    c1_string->get_offsets(), vec_res);
394
355
        } else if (c0_string && c1_const) {
395
215
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
215
                                               *c1_const_chars, c1_const_size, vec_res);
397
215
        } 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
570
        block.replace_by_position(result, std::move(c_res));
406
570
        return Status::OK();
407
570
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
432
                          const IColumn* c1) const {
344
432
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
432
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
432
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
432
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
432
        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
432
        DCHECK(!(c0_const && c1_const));
353
432
        const ColumnString::Chars* c0_const_chars = nullptr;
354
432
        const ColumnString::Chars* c1_const_chars = nullptr;
355
432
        ColumnString::Offset c0_const_size = 0;
356
432
        ColumnString::Offset c1_const_size = 0;
357
358
432
        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
432
        if (c1_const) {
372
431
            const ColumnString* c1_const_string =
373
431
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
431
            if (c1_const_string) {
376
431
                c1_const_chars = &c1_const_string->get_chars();
377
431
                c1_const_size = c1_const_string->get_offsets()[0];
378
431
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
431
        }
383
384
432
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
432
        auto c_res = ColumnUInt8::create();
387
432
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
432
        vec_res.resize(c0->size());
389
390
432
        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
432
        } else if (c0_string && c1_const) {
395
432
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
432
                                               *c1_const_chars, c1_const_size, vec_res);
397
432
        } 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
432
        block.replace_by_position(result, std::move(c_res));
406
432
        return Status::OK();
407
432
    }
408
409
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
410
112
                                         const IColumn* c1) const {
411
112
        bool c0_const = is_column_const(*c0);
412
112
        bool c1_const = is_column_const(*c1);
413
414
112
        DCHECK(!(c0_const && c1_const));
415
416
112
        auto c_res = ColumnUInt8::create();
417
112
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
112
        vec_res.resize(c0->size());
419
420
112
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
112
        } else if (c1_const) {
423
103
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
103
        } else {
425
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
9
        }
427
428
112
        block.replace_by_position(result, std::move(c_res));
429
112
    }
_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
45
                                         const IColumn* c1) const {
411
45
        bool c0_const = is_column_const(*c0);
412
45
        bool c1_const = is_column_const(*c1);
413
414
45
        DCHECK(!(c0_const && c1_const));
415
416
45
        auto c_res = ColumnUInt8::create();
417
45
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
45
        vec_res.resize(c0->size());
419
420
45
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
45
        } else if (c1_const) {
423
44
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
44
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
45
        block.replace_by_position(result, std::move(c_res));
429
45
    }
_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
22
                                         const IColumn* c1) const {
411
22
        bool c0_const = is_column_const(*c0);
412
22
        bool c1_const = is_column_const(*c1);
413
414
22
        DCHECK(!(c0_const && c1_const));
415
416
22
        auto c_res = ColumnUInt8::create();
417
22
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
22
        vec_res.resize(c0->size());
419
420
22
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
22
        } else if (c1_const) {
423
22
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
22
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
22
        block.replace_by_position(result, std::move(c_res));
429
22
    }
430
431
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
432
112
                           const ColumnWithTypeAndName& c1) const {
433
112
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
112
        return Status::OK();
435
112
    }
_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
45
                           const ColumnWithTypeAndName& c1) const {
433
45
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
45
        return Status::OK();
435
45
    }
_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
22
                           const ColumnWithTypeAndName& c1) const {
433
22
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
22
        return Status::OK();
435
22
    }
436
437
public:
438
206
    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
30
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
438
31
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
80
    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
451k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
397k
    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.47k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
21.1k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
440
3.20k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
21.6k
    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
451k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
451k
        return std::make_shared<DataTypeUInt8>();
445
451k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
397k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
397k
        return std::make_shared<DataTypeUInt8>();
445
397k
    }
_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.47k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
6.47k
        return std::make_shared<DataTypeUInt8>();
445
6.47k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
21.1k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
21.1k
        return std::make_shared<DataTypeUInt8>();
445
21.1k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
3.20k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
3.20k
        return std::make_shared<DataTypeUInt8>();
445
3.20k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
21.6k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
21.6k
        return std::make_shared<DataTypeUInt8>();
445
21.6k
    }
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.72k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
1.72k
        DCHECK(arguments.size() == 1);
454
1.72k
        DCHECK(data_type_with_names.size() == 1);
455
1.72k
        DCHECK(iterators.size() == 1);
456
1.72k
        auto* iter = iterators[0];
457
1.72k
        auto data_type_with_name = data_type_with_names[0];
458
1.72k
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
1.72k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
423
            return Status::OK();
463
423
        }
464
1.30k
        segment_v2::InvertedIndexQueryType query_type;
465
1.30k
        std::string_view name_view(name);
466
1.30k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
857
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
857
        } else if (name_view == NameLess::name) {
469
110
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
338
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
240
        } else if (name_view == NameGreater::name) {
473
113
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
135
        } else if (name_view == NameGreaterOrEquals::name) {
475
135
            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.31k
        if (segment_v2::is_range_query(query_type) &&
481
1.31k
            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.14k
        Field param_value;
486
1.14k
        arguments[0].column->get(0, param_value);
487
1.14k
        if (param_value.is_null()) {
488
1
            return Status::OK();
489
1
        }
490
1.14k
        auto param_type = arguments[0].type->get_primitive_type();
491
1.14k
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
1.14k
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
1.14k
                param_type, &param_value, query_param));
494
495
1.14k
        segment_v2::InvertedIndexParam param;
496
1.14k
        param.column_name = data_type_with_name.first;
497
1.14k
        param.column_type = data_type_with_name.second;
498
1.14k
        param.query_value = query_param->get_value();
499
1.14k
        param.query_type = query_type;
500
1.14k
        param.num_rows = num_rows;
501
1.14k
        param.roaring = std::make_shared<roaring::Roaring>();
502
1.14k
        param.analyzer_ctx = analyzer_ctx;
503
1.14k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
988
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
988
        if (iter->has_null()) {
506
982
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
982
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
982
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
982
        }
510
988
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
988
        bitmap_result = result;
512
988
        bitmap_result.mask_out_null();
513
514
988
        if (name_view == NameNotEquals::name) {
515
60
            roaring::Roaring full_result;
516
60
            full_result.addRange(0, num_rows);
517
60
            bitmap_result.op_not(&full_result);
518
60
        }
519
520
988
        return Status::OK();
521
988
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
852
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
852
        DCHECK(arguments.size() == 1);
454
852
        DCHECK(data_type_with_names.size() == 1);
455
852
        DCHECK(iterators.size() == 1);
456
852
        auto* iter = iterators[0];
457
852
        auto data_type_with_name = data_type_with_names[0];
458
852
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
852
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
65
            return Status::OK();
463
65
        }
464
787
        segment_v2::InvertedIndexQueryType query_type;
465
787
        std::string_view name_view(name);
466
787
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
787
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
787
        } 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
787
        if (segment_v2::is_range_query(query_type) &&
481
787
            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
787
        Field param_value;
486
787
        arguments[0].column->get(0, param_value);
487
787
        if (param_value.is_null()) {
488
1
            return Status::OK();
489
1
        }
490
786
        auto param_type = arguments[0].type->get_primitive_type();
491
786
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
786
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
786
                param_type, &param_value, query_param));
494
495
785
        segment_v2::InvertedIndexParam param;
496
785
        param.column_name = data_type_with_name.first;
497
785
        param.column_type = data_type_with_name.second;
498
785
        param.query_value = query_param->get_value();
499
785
        param.query_type = query_type;
500
785
        param.num_rows = num_rows;
501
785
        param.roaring = std::make_shared<roaring::Roaring>();
502
785
        param.analyzer_ctx = analyzer_ctx;
503
785
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
741
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
741
        if (iter->has_null()) {
506
739
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
739
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
739
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
739
        }
510
741
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
741
        bitmap_result = result;
512
741
        bitmap_result.mask_out_null();
513
514
741
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
741
        return Status::OK();
521
741
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
77
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
77
        DCHECK(arguments.size() == 1);
454
77
        DCHECK(data_type_with_names.size() == 1);
455
77
        DCHECK(iterators.size() == 1);
456
77
        auto* iter = iterators[0];
457
77
        auto data_type_with_name = data_type_with_names[0];
458
77
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
77
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
8
            return Status::OK();
463
8
        }
464
69
        segment_v2::InvertedIndexQueryType query_type;
465
69
        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
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
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
        auto param_type = arguments[0].type->get_primitive_type();
491
70
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
70
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
70
                param_type, &param_value, query_param));
494
495
70
        segment_v2::InvertedIndexParam param;
496
70
        param.column_name = data_type_with_name.first;
497
70
        param.column_type = data_type_with_name.second;
498
70
        param.query_value = query_param->get_value();
499
70
        param.query_type = query_type;
500
70
        param.num_rows = num_rows;
501
70
        param.roaring = std::make_shared<roaring::Roaring>();
502
70
        param.analyzer_ctx = analyzer_ctx;
503
70
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
63
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
63
        if (iter->has_null()) {
506
62
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
62
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
62
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
62
        }
510
63
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
63
        bitmap_result = result;
512
63
        bitmap_result.mask_out_null();
513
514
63
        if (name_view == NameNotEquals::name) {
515
60
            roaring::Roaring full_result;
516
60
            full_result.addRange(0, num_rows);
517
60
            bitmap_result.op_not(&full_result);
518
60
        }
519
520
63
        return Status::OK();
521
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
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
62
            return Status::OK();
463
62
        }
464
113
        segment_v2::InvertedIndexQueryType query_type;
465
113
        std::string_view name_view(name);
466
113
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
113
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
113
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
113
        } else if (name_view == NameGreater::name) {
473
113
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
113
        } 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
113
        if (segment_v2::is_range_query(query_type) &&
481
113
            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
85
        Field param_value;
486
85
        arguments[0].column->get(0, param_value);
487
85
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
85
        auto param_type = arguments[0].type->get_primitive_type();
491
85
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
85
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
85
                param_type, &param_value, query_param));
494
495
85
        segment_v2::InvertedIndexParam param;
496
85
        param.column_name = data_type_with_name.first;
497
85
        param.column_type = data_type_with_name.second;
498
85
        param.query_value = query_param->get_value();
499
85
        param.query_type = query_type;
500
85
        param.num_rows = num_rows;
501
85
        param.roaring = std::make_shared<roaring::Roaring>();
502
85
        param.analyzer_ctx = analyzer_ctx;
503
85
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
66
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
66
        if (iter->has_null()) {
506
65
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
65
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
65
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
65
        }
510
66
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
66
        bitmap_result = result;
512
66
        bitmap_result.mask_out_null();
513
514
66
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
66
        return Status::OK();
521
66
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
246
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
246
        DCHECK(arguments.size() == 1);
454
246
        DCHECK(data_type_with_names.size() == 1);
455
246
        DCHECK(iterators.size() == 1);
456
246
        auto* iter = iterators[0];
457
246
        auto data_type_with_name = data_type_with_names[0];
458
246
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
246
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
114
            return Status::OK();
463
114
        }
464
132
        segment_v2::InvertedIndexQueryType query_type;
465
132
        std::string_view name_view(name);
466
134
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
132
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
132
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
132
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
135
        } else if (name_view == NameGreaterOrEquals::name) {
475
135
            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
135
        if (segment_v2::is_range_query(query_type) &&
481
135
            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
76
        Field param_value;
486
76
        arguments[0].column->get(0, param_value);
487
76
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
76
        auto param_type = arguments[0].type->get_primitive_type();
491
76
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
76
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
76
                param_type, &param_value, query_param));
494
495
76
        segment_v2::InvertedIndexParam param;
496
76
        param.column_name = data_type_with_name.first;
497
76
        param.column_type = data_type_with_name.second;
498
76
        param.query_value = query_param->get_value();
499
76
        param.query_type = query_type;
500
76
        param.num_rows = num_rows;
501
76
        param.roaring = std::make_shared<roaring::Roaring>();
502
76
        param.analyzer_ctx = analyzer_ctx;
503
76
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
34
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
34
        if (iter->has_null()) {
506
34
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
34
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
34
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
34
        }
510
34
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
34
        bitmap_result = result;
512
34
        bitmap_result.mask_out_null();
513
514
34
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
34
        return Status::OK();
521
34
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
171
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
171
        DCHECK(arguments.size() == 1);
454
171
        DCHECK(data_type_with_names.size() == 1);
455
171
        DCHECK(iterators.size() == 1);
456
171
        auto* iter = iterators[0];
457
171
        auto data_type_with_name = data_type_with_names[0];
458
171
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
171
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
61
            return Status::OK();
463
61
        }
464
110
        segment_v2::InvertedIndexQueryType query_type;
465
110
        std::string_view name_view(name);
466
110
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
110
        } else if (name_view == NameLess::name) {
469
110
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
110
        } 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
110
        if (segment_v2::is_range_query(query_type) &&
481
110
            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
84
        Field param_value;
486
84
        arguments[0].column->get(0, param_value);
487
84
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
84
        auto param_type = arguments[0].type->get_primitive_type();
491
84
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
84
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
84
                param_type, &param_value, query_param));
494
495
84
        segment_v2::InvertedIndexParam param;
496
84
        param.column_name = data_type_with_name.first;
497
84
        param.column_type = data_type_with_name.second;
498
84
        param.query_value = query_param->get_value();
499
84
        param.query_type = query_type;
500
84
        param.num_rows = num_rows;
501
84
        param.roaring = std::make_shared<roaring::Roaring>();
502
84
        param.analyzer_ctx = analyzer_ctx;
503
84
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
65
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
65
        if (iter->has_null()) {
506
64
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
64
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
64
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
64
        }
510
65
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
65
        bitmap_result = result;
512
65
        bitmap_result.mask_out_null();
513
514
65
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
65
        return Status::OK();
521
65
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
207
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
207
        DCHECK(arguments.size() == 1);
454
207
        DCHECK(data_type_with_names.size() == 1);
455
207
        DCHECK(iterators.size() == 1);
456
207
        auto* iter = iterators[0];
457
207
        auto data_type_with_name = data_type_with_names[0];
458
207
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
207
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
113
            return Status::OK();
463
113
        }
464
94
        segment_v2::InvertedIndexQueryType query_type;
465
94
        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
94
        } 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
        auto param_type = arguments[0].type->get_primitive_type();
491
40
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
40
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
40
                param_type, &param_value, query_param));
494
495
40
        segment_v2::InvertedIndexParam param;
496
40
        param.column_name = data_type_with_name.first;
497
40
        param.column_type = data_type_with_name.second;
498
40
        param.query_value = query_param->get_value();
499
40
        param.query_type = query_type;
500
40
        param.num_rows = num_rows;
501
40
        param.roaring = std::make_shared<roaring::Roaring>();
502
40
        param.analyzer_ctx = analyzer_ctx;
503
40
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
19
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
19
        if (iter->has_null()) {
506
18
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
18
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
18
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
18
        }
510
19
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
19
        bitmap_result = result;
512
19
        bitmap_result.mask_out_null();
513
514
19
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
19
        return Status::OK();
521
19
    }
522
523
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
524
115k
                        uint32_t result, size_t input_rows_count) const override {
525
115k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
115k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
115k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
115k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
115k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
115k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
115k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
115k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
115k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
115k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
199k
        auto can_compare = [](PrimitiveType t) -> bool {
563
199k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
199k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
68.0k
        auto can_compare = [](PrimitiveType t) -> bool {
563
68.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
68.0k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
6.39k
        auto can_compare = [](PrimitiveType t) -> bool {
563
6.39k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
6.39k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
47.1k
        auto can_compare = [](PrimitiveType t) -> bool {
563
47.1k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
47.1k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
29.2k
        auto can_compare = [](PrimitiveType t) -> bool {
563
29.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
29.2k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
15.6k
        auto can_compare = [](PrimitiveType t) -> bool {
563
15.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
15.6k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
33.0k
        auto can_compare = [](PrimitiveType t) -> bool {
563
33.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
33.0k
        };
565
566
115k
        if (can_compare(left_type->get_primitive_type()) &&
567
115k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
84.1k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
84.1k
        }
575
576
115k
        auto compare_type = left_type->get_primitive_type();
577
115k
        switch (compare_type) {
578
1.18k
        case TYPE_BOOLEAN:
579
1.18k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
8.62k
        case TYPE_DATEV2:
581
8.62k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
1.97k
        case TYPE_DATETIMEV2:
583
1.97k
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
16
        case TYPE_TIMESTAMPTZ:
585
16
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
5.43k
        case TYPE_TINYINT:
587
5.43k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
2.46k
        case TYPE_SMALLINT:
589
2.46k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
39.8k
        case TYPE_INT:
591
39.8k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
20.1k
        case TYPE_BIGINT:
593
20.1k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
673
        case TYPE_LARGEINT:
595
673
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
70
        case TYPE_IPV4:
597
70
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
48
        case TYPE_IPV6:
599
48
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
756
        case TYPE_FLOAT:
601
756
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
2.91k
        case TYPE_DOUBLE:
603
2.91k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
4
        case TYPE_TIMEV2:
606
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
438
        case TYPE_DECIMAL32:
609
5.63k
        case TYPE_DECIMAL64:
610
9.53k
        case TYPE_DECIMAL128I:
611
9.63k
        case TYPE_DECIMAL256:
612
9.63k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
9.63k
                                   col_with_type_and_name_right);
614
719
        case TYPE_CHAR:
615
9.12k
        case TYPE_VARCHAR:
616
21.4k
        case TYPE_STRING:
617
21.4k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
112
        default:
619
112
            return execute_generic(block, result, col_with_type_and_name_left,
620
112
                                   col_with_type_and_name_right);
621
115k
        }
622
0
        return Status::OK();
623
115k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
44.4k
                        uint32_t result, size_t input_rows_count) const override {
525
44.4k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
44.4k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
44.4k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
44.4k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
44.4k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
44.4k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
44.4k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
44.4k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
44.4k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
44.4k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
44.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
44.4k
        };
565
566
44.4k
        if (can_compare(left_type->get_primitive_type()) &&
567
44.4k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
23.6k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
23.6k
        }
575
576
44.4k
        auto compare_type = left_type->get_primitive_type();
577
44.4k
        switch (compare_type) {
578
866
        case TYPE_BOOLEAN:
579
866
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.55k
        case TYPE_DATEV2:
581
1.55k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
706
        case TYPE_DATETIMEV2:
583
706
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
3.66k
        case TYPE_TINYINT:
587
3.66k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
790
        case TYPE_SMALLINT:
589
790
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
6.28k
        case TYPE_INT:
591
6.28k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
9.12k
        case TYPE_BIGINT:
593
9.12k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
148
        case TYPE_LARGEINT:
595
148
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
31
        case TYPE_IPV4:
597
31
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
30
        case TYPE_IPV6:
599
30
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
99
        case TYPE_FLOAT:
601
99
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
351
        case TYPE_DOUBLE:
603
351
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
4
        case TYPE_TIMEV2:
606
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
217
        case TYPE_DECIMAL32:
609
458
        case TYPE_DECIMAL64:
610
1.61k
        case TYPE_DECIMAL128I:
611
1.64k
        case TYPE_DECIMAL256:
612
1.64k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
1.64k
                                   col_with_type_and_name_right);
614
487
        case TYPE_CHAR:
615
8.07k
        case TYPE_VARCHAR:
616
19.1k
        case TYPE_STRING:
617
19.1k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
17
        default:
619
17
            return execute_generic(block, result, col_with_type_and_name_left,
620
17
                                   col_with_type_and_name_right);
621
44.4k
        }
622
0
        return Status::OK();
623
44.4k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
3.67k
                        uint32_t result, size_t input_rows_count) const override {
525
3.67k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
3.67k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
3.67k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
3.67k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
3.67k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
3.67k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
3.67k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
3.67k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
3.67k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
3.67k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
3.67k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
3.67k
        };
565
566
3.67k
        if (can_compare(left_type->get_primitive_type()) &&
567
3.67k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
2.72k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
2.72k
        }
575
576
3.67k
        auto compare_type = left_type->get_primitive_type();
577
3.67k
        switch (compare_type) {
578
0
        case TYPE_BOOLEAN:
579
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
49
        case TYPE_DATEV2:
581
49
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
2
        case TYPE_DATETIMEV2:
583
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
0
        case TYPE_TIMESTAMPTZ:
585
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
96
        case TYPE_TINYINT:
587
96
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
4
        case TYPE_SMALLINT:
589
4
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
1.34k
        case TYPE_INT:
591
1.34k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
1.09k
        case TYPE_BIGINT:
593
1.09k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
0
        case TYPE_LARGEINT:
595
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
0
        case TYPE_IPV4:
597
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
0
        case TYPE_IPV6:
599
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
52
        case TYPE_FLOAT:
601
52
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
72
        case TYPE_DOUBLE:
603
72
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
0
        case TYPE_DECIMAL32:
609
61
        case TYPE_DECIMAL64:
610
237
        case TYPE_DECIMAL128I:
611
267
        case TYPE_DECIMAL256:
612
267
            return execute_decimal(block, result, col_with_type_and_name_left,
613
267
                                   col_with_type_and_name_right);
614
5
        case TYPE_CHAR:
615
229
        case TYPE_VARCHAR:
616
676
        case TYPE_STRING:
617
676
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
8
        default:
619
8
            return execute_generic(block, result, col_with_type_and_name_left,
620
8
                                   col_with_type_and_name_right);
621
3.67k
        }
622
0
        return Status::OK();
623
3.67k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
26.3k
                        uint32_t result, size_t input_rows_count) const override {
525
26.3k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
26.3k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
26.3k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
26.3k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
26.3k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
26.3k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
26.3k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
26.3k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
26.3k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
26.3k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
26.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
26.3k
        };
565
566
26.3k
        if (can_compare(left_type->get_primitive_type()) &&
567
26.3k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
20.8k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
20.8k
        }
575
576
26.3k
        auto compare_type = left_type->get_primitive_type();
577
26.3k
        switch (compare_type) {
578
0
        case TYPE_BOOLEAN:
579
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.17k
        case TYPE_DATEV2:
581
1.17k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
60
        case TYPE_DATETIMEV2:
583
60
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
666
        case TYPE_TINYINT:
587
666
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
1.02k
        case TYPE_SMALLINT:
589
1.02k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
7.73k
        case TYPE_INT:
591
7.73k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
8.00k
        case TYPE_BIGINT:
593
8.00k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
248
        case TYPE_LARGEINT:
595
248
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
2
        case TYPE_IPV4:
597
2
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
1
        case TYPE_IPV6:
599
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
232
        case TYPE_FLOAT:
601
232
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
1.66k
        case TYPE_DOUBLE:
603
1.66k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
22
        case TYPE_DECIMAL32:
609
3.70k
        case TYPE_DECIMAL64:
610
5.34k
        case TYPE_DECIMAL128I:
611
5.35k
        case TYPE_DECIMAL256:
612
5.35k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
5.35k
                                   col_with_type_and_name_right);
614
21
        case TYPE_CHAR:
615
90
        case TYPE_VARCHAR:
616
197
        case TYPE_STRING:
617
197
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
9
        default:
619
9
            return execute_generic(block, result, col_with_type_and_name_left,
620
9
                                   col_with_type_and_name_right);
621
26.3k
        }
622
0
        return Status::OK();
623
26.3k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
14.9k
                        uint32_t result, size_t input_rows_count) const override {
525
14.9k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
14.9k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
14.9k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
14.9k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
14.9k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
14.9k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
14.9k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
14.9k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
14.9k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
14.9k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
14.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
14.9k
        };
565
566
14.9k
        if (can_compare(left_type->get_primitive_type()) &&
567
14.9k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
14.2k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
14.2k
        }
575
576
14.9k
        auto compare_type = left_type->get_primitive_type();
577
14.9k
        switch (compare_type) {
578
123
        case TYPE_BOOLEAN:
579
123
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.11k
        case TYPE_DATEV2:
581
1.11k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
492
        case TYPE_DATETIMEV2:
583
492
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
93
        case TYPE_TINYINT:
587
93
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
174
        case TYPE_SMALLINT:
589
174
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
11.4k
        case TYPE_INT:
591
11.4k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
349
        case TYPE_BIGINT:
593
349
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
37
        case TYPE_LARGEINT:
595
37
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
11
        case TYPE_IPV4:
597
11
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
1
        case TYPE_IPV6:
599
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
126
        case TYPE_FLOAT:
601
126
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
213
        case TYPE_DOUBLE:
603
213
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
3
        case TYPE_DECIMAL32:
609
218
        case TYPE_DECIMAL64:
610
259
        case TYPE_DECIMAL128I:
611
280
        case TYPE_DECIMAL256:
612
280
            return execute_decimal(block, result, col_with_type_and_name_left,
613
280
                                   col_with_type_and_name_right);
614
21
        case TYPE_CHAR:
615
229
        case TYPE_VARCHAR:
616
472
        case TYPE_STRING:
617
472
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
45
        default:
619
45
            return execute_generic(block, result, col_with_type_and_name_left,
620
45
                                   col_with_type_and_name_right);
621
14.9k
        }
622
0
        return Status::OK();
623
14.9k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
8.53k
                        uint32_t result, size_t input_rows_count) const override {
525
8.53k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
8.53k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
8.53k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
8.53k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
8.53k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
8.53k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
8.53k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
8.53k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
8.53k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
8.53k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
8.53k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
8.53k
        };
565
566
8.53k
        if (can_compare(left_type->get_primitive_type()) &&
567
8.53k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
7.10k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
7.10k
        }
575
576
8.53k
        auto compare_type = left_type->get_primitive_type();
577
8.53k
        switch (compare_type) {
578
81
        case TYPE_BOOLEAN:
579
81
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
2.19k
        case TYPE_DATEV2:
581
2.19k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
447
        case TYPE_DATETIMEV2:
583
447
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
4
        case TYPE_TIMESTAMPTZ:
585
4
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
773
        case TYPE_TINYINT:
587
773
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
199
        case TYPE_SMALLINT:
589
199
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
1.46k
        case TYPE_INT:
591
1.46k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
1.16k
        case TYPE_BIGINT:
593
1.16k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
211
        case TYPE_LARGEINT:
595
211
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
16
        case TYPE_IPV4:
597
16
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
16
        case TYPE_IPV6:
599
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
127
        case TYPE_FLOAT:
601
127
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
413
        case TYPE_DOUBLE:
603
413
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
188
        case TYPE_DECIMAL32:
609
409
        case TYPE_DECIMAL64:
610
846
        case TYPE_DECIMAL128I:
611
847
        case TYPE_DECIMAL256:
612
847
            return execute_decimal(block, result, col_with_type_and_name_left,
613
847
                                   col_with_type_and_name_right);
614
162
        case TYPE_CHAR:
615
331
        case TYPE_VARCHAR:
616
570
        case TYPE_STRING:
617
570
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
11
        default:
619
11
            return execute_generic(block, result, col_with_type_and_name_left,
620
11
                                   col_with_type_and_name_right);
621
8.53k
        }
622
0
        return Status::OK();
623
8.53k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
17.3k
                        uint32_t result, size_t input_rows_count) const override {
525
17.3k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
17.3k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
17.3k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
17.3k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
17.3k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
17.3k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
17.3k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
17.3k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
17.3k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
17.3k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
17.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
17.3k
        };
565
566
17.3k
        if (can_compare(left_type->get_primitive_type()) &&
567
17.3k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
15.6k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
15.6k
        }
575
576
17.3k
        auto compare_type = left_type->get_primitive_type();
577
17.3k
        switch (compare_type) {
578
111
        case TYPE_BOOLEAN:
579
111
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
2.53k
        case TYPE_DATEV2:
581
2.53k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
264
        case TYPE_DATETIMEV2:
583
264
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
142
        case TYPE_TINYINT:
587
142
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
277
        case TYPE_SMALLINT:
589
277
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
11.5k
        case TYPE_INT:
591
11.5k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
415
        case TYPE_BIGINT:
593
415
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
29
        case TYPE_LARGEINT:
595
29
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
10
        case TYPE_IPV4:
597
10
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
0
        case TYPE_IPV6:
599
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
120
        case TYPE_FLOAT:
601
120
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
203
        case TYPE_DOUBLE:
603
203
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
8
        case TYPE_DECIMAL32:
609
779
        case TYPE_DECIMAL64:
610
1.22k
        case TYPE_DECIMAL128I:
611
1.24k
        case TYPE_DECIMAL256:
612
1.24k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
1.24k
                                   col_with_type_and_name_right);
614
23
        case TYPE_CHAR:
615
170
        case TYPE_VARCHAR:
616
432
        case TYPE_STRING:
617
432
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
22
        default:
619
22
            return execute_generic(block, result, col_with_type_and_name_left,
620
22
                                   col_with_type_and_name_right);
621
17.3k
        }
622
0
        return Status::OK();
623
17.3k
    }
624
};
625
626
#include "common/compile_check_end.h"
627
} // namespace doris