Coverage Report

Created: 2026-03-24 06:40

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/functions_comparison.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
// This file is copied from
18
// https://github.com/ClickHouse/ClickHouse/blob/master/src/Functions/FunctionsComparison.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include <limits>
24
#include <type_traits>
25
26
#include "common/logging.h"
27
#include "core/accurate_comparison.h"
28
#include "core/assert_cast.h"
29
#include "core/column/column_const.h"
30
#include "core/column/column_decimal.h"
31
#include "core/column/column_nullable.h"
32
#include "core/column/column_string.h"
33
#include "core/data_type/data_type_number.h"
34
#include "core/data_type/data_type_string.h"
35
#include "core/data_type/define_primitive_type.h"
36
#include "core/decimal_comparison.h"
37
#include "core/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
9.65M
        while (a_pos < a_end) {
73
9.63M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9.63M
            ++a_pos;
75
9.63M
            ++b_pos;
76
9.63M
            ++c_pos;
77
9.63M
        }
78
12.6k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
70
                                        PaddedPODArray<UInt8>& c) {
66
70
        size_t size = a.size();
67
70
        const A* __restrict a_pos = a.data();
68
70
        const B* __restrict b_pos = b.data();
69
70
        UInt8* __restrict c_pos = c.data();
70
70
        const A* __restrict a_end = a_pos + size;
71
72
140
        while (a_pos < a_end) {
73
70
            *c_pos = Op::apply(*a_pos, *b_pos);
74
70
            ++a_pos;
75
70
            ++b_pos;
76
70
            ++c_pos;
77
70
        }
78
70
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
313
                                        PaddedPODArray<UInt8>& c) {
66
313
        size_t size = a.size();
67
313
        const A* __restrict a_pos = a.data();
68
313
        const B* __restrict b_pos = b.data();
69
313
        UInt8* __restrict c_pos = c.data();
70
313
        const A* __restrict a_end = a_pos + size;
71
72
1.48k
        while (a_pos < a_end) {
73
1.17k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.17k
            ++a_pos;
75
1.17k
            ++b_pos;
76
1.17k
            ++c_pos;
77
1.17k
        }
78
313
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
252
                                        PaddedPODArray<UInt8>& c) {
66
252
        size_t size = a.size();
67
252
        const A* __restrict a_pos = a.data();
68
252
        const B* __restrict b_pos = b.data();
69
252
        UInt8* __restrict c_pos = c.data();
70
252
        const A* __restrict a_end = a_pos + size;
71
72
527
        while (a_pos < a_end) {
73
275
            *c_pos = Op::apply(*a_pos, *b_pos);
74
275
            ++a_pos;
75
275
            ++b_pos;
76
275
            ++c_pos;
77
275
        }
78
252
    }
_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
943
                                        PaddedPODArray<UInt8>& c) {
66
943
        size_t size = a.size();
67
943
        const A* __restrict a_pos = a.data();
68
943
        const B* __restrict b_pos = b.data();
69
943
        UInt8* __restrict c_pos = c.data();
70
943
        const A* __restrict a_end = a_pos + size;
71
72
5.72k
        while (a_pos < a_end) {
73
4.78k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.78k
            ++a_pos;
75
4.78k
            ++b_pos;
76
4.78k
            ++c_pos;
77
4.78k
        }
78
943
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
103
                                        PaddedPODArray<UInt8>& c) {
66
103
        size_t size = a.size();
67
103
        const A* __restrict a_pos = a.data();
68
103
        const B* __restrict b_pos = b.data();
69
103
        UInt8* __restrict c_pos = c.data();
70
103
        const A* __restrict a_end = a_pos + size;
71
72
506
        while (a_pos < a_end) {
73
403
            *c_pos = Op::apply(*a_pos, *b_pos);
74
403
            ++a_pos;
75
403
            ++b_pos;
76
403
            ++c_pos;
77
403
        }
78
103
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
319
                                        PaddedPODArray<UInt8>& c) {
66
319
        size_t size = a.size();
67
319
        const A* __restrict a_pos = a.data();
68
319
        const B* __restrict b_pos = b.data();
69
319
        UInt8* __restrict c_pos = c.data();
70
319
        const A* __restrict a_end = a_pos + size;
71
72
4.30k
        while (a_pos < a_end) {
73
3.98k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.98k
            ++a_pos;
75
3.98k
            ++b_pos;
76
3.98k
            ++c_pos;
77
3.98k
        }
78
319
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
449
                                        PaddedPODArray<UInt8>& c) {
66
449
        size_t size = a.size();
67
449
        const A* __restrict a_pos = a.data();
68
449
        const B* __restrict b_pos = b.data();
69
449
        UInt8* __restrict c_pos = c.data();
70
449
        const A* __restrict a_end = a_pos + size;
71
72
13.9k
        while (a_pos < a_end) {
73
13.5k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
13.5k
            ++a_pos;
75
13.5k
            ++b_pos;
76
13.5k
            ++c_pos;
77
13.5k
        }
78
449
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
74
                                        PaddedPODArray<UInt8>& c) {
66
74
        size_t size = a.size();
67
74
        const A* __restrict a_pos = a.data();
68
74
        const B* __restrict b_pos = b.data();
69
74
        UInt8* __restrict c_pos = c.data();
70
74
        const A* __restrict a_end = a_pos + size;
71
72
172
        while (a_pos < a_end) {
73
98
            *c_pos = Op::apply(*a_pos, *b_pos);
74
98
            ++a_pos;
75
98
            ++b_pos;
76
98
            ++c_pos;
77
98
        }
78
74
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
5
                                        PaddedPODArray<UInt8>& c) {
66
5
        size_t size = a.size();
67
5
        const A* __restrict a_pos = a.data();
68
5
        const B* __restrict b_pos = b.data();
69
5
        UInt8* __restrict c_pos = c.data();
70
5
        const A* __restrict a_end = a_pos + size;
71
72
10
        while (a_pos < a_end) {
73
5
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5
            ++a_pos;
75
5
            ++b_pos;
76
5
            ++c_pos;
77
5
        }
78
5
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
13
                                        PaddedPODArray<UInt8>& c) {
66
13
        size_t size = a.size();
67
13
        const A* __restrict a_pos = a.data();
68
13
        const B* __restrict b_pos = b.data();
69
13
        UInt8* __restrict c_pos = c.data();
70
13
        const A* __restrict a_end = a_pos + size;
71
72
26
        while (a_pos < a_end) {
73
13
            *c_pos = Op::apply(*a_pos, *b_pos);
74
13
            ++a_pos;
75
13
            ++b_pos;
76
13
            ++c_pos;
77
13
        }
78
13
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
85
                                        PaddedPODArray<UInt8>& c) {
66
85
        size_t size = a.size();
67
85
        const A* __restrict a_pos = a.data();
68
85
        const B* __restrict b_pos = b.data();
69
85
        UInt8* __restrict c_pos = c.data();
70
85
        const A* __restrict a_end = a_pos + size;
71
72
189
        while (a_pos < a_end) {
73
104
            *c_pos = Op::apply(*a_pos, *b_pos);
74
104
            ++a_pos;
75
104
            ++b_pos;
76
104
            ++c_pos;
77
104
        }
78
85
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
94
                                        PaddedPODArray<UInt8>& c) {
66
94
        size_t size = a.size();
67
94
        const A* __restrict a_pos = a.data();
68
94
        const B* __restrict b_pos = b.data();
69
94
        UInt8* __restrict c_pos = c.data();
70
94
        const A* __restrict a_end = a_pos + size;
71
72
209
        while (a_pos < a_end) {
73
115
            *c_pos = Op::apply(*a_pos, *b_pos);
74
115
            ++a_pos;
75
115
            ++b_pos;
76
115
            ++c_pos;
77
115
        }
78
94
    }
_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
563
                                        PaddedPODArray<UInt8>& c) {
66
563
        size_t size = a.size();
67
563
        const A* __restrict a_pos = a.data();
68
563
        const B* __restrict b_pos = b.data();
69
563
        UInt8* __restrict c_pos = c.data();
70
563
        const A* __restrict a_end = a_pos + size;
71
72
308k
        while (a_pos < a_end) {
73
307k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
307k
            ++a_pos;
75
307k
            ++b_pos;
76
307k
            ++c_pos;
77
307k
        }
78
563
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
419
                                        PaddedPODArray<UInt8>& c) {
66
419
        size_t size = a.size();
67
419
        const A* __restrict a_pos = a.data();
68
419
        const B* __restrict b_pos = b.data();
69
419
        UInt8* __restrict c_pos = c.data();
70
419
        const A* __restrict a_end = a_pos + size;
71
72
37.5k
        while (a_pos < a_end) {
73
37.1k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
37.1k
            ++a_pos;
75
37.1k
            ++b_pos;
76
37.1k
            ++c_pos;
77
37.1k
        }
78
419
    }
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.01k
                                        PaddedPODArray<UInt8>& c) {
66
1.01k
        size_t size = a.size();
67
1.01k
        const A* __restrict a_pos = a.data();
68
1.01k
        const B* __restrict b_pos = b.data();
69
1.01k
        UInt8* __restrict c_pos = c.data();
70
1.01k
        const A* __restrict a_end = a_pos + size;
71
72
2.62M
        while (a_pos < a_end) {
73
2.62M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.62M
            ++a_pos;
75
2.62M
            ++b_pos;
76
2.62M
            ++c_pos;
77
2.62M
        }
78
1.01k
    }
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
413
                                        PaddedPODArray<UInt8>& c) {
66
413
        size_t size = a.size();
67
413
        const A* __restrict a_pos = a.data();
68
413
        const B* __restrict b_pos = b.data();
69
413
        UInt8* __restrict c_pos = c.data();
70
413
        const A* __restrict a_end = a_pos + size;
71
72
2.85k
        while (a_pos < a_end) {
73
2.43k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.43k
            ++a_pos;
75
2.43k
            ++b_pos;
76
2.43k
            ++c_pos;
77
2.43k
        }
78
413
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
673
                                        PaddedPODArray<UInt8>& c) {
66
673
        size_t size = a.size();
67
673
        const A* __restrict a_pos = a.data();
68
673
        const B* __restrict b_pos = b.data();
69
673
        UInt8* __restrict c_pos = c.data();
70
673
        const A* __restrict a_end = a_pos + size;
71
72
4.54k
        while (a_pos < a_end) {
73
3.86k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.86k
            ++a_pos;
75
3.86k
            ++b_pos;
76
3.86k
            ++c_pos;
77
3.86k
        }
78
673
    }
_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
181
                                        PaddedPODArray<UInt8>& c) {
66
181
        size_t size = a.size();
67
181
        const A* __restrict a_pos = a.data();
68
181
        const B* __restrict b_pos = b.data();
69
181
        UInt8* __restrict c_pos = c.data();
70
181
        const A* __restrict a_end = a_pos + size;
71
72
1.65k
        while (a_pos < a_end) {
73
1.47k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.47k
            ++a_pos;
75
1.47k
            ++b_pos;
76
1.47k
            ++c_pos;
77
1.47k
        }
78
181
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
40
                                        PaddedPODArray<UInt8>& c) {
66
40
        size_t size = a.size();
67
40
        const A* __restrict a_pos = a.data();
68
40
        const B* __restrict b_pos = b.data();
69
40
        UInt8* __restrict c_pos = c.data();
70
40
        const A* __restrict a_end = a_pos + size;
71
72
192
        while (a_pos < a_end) {
73
152
            *c_pos = Op::apply(*a_pos, *b_pos);
74
152
            ++a_pos;
75
152
            ++b_pos;
76
152
            ++c_pos;
77
152
        }
78
40
    }
_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
51
                                        PaddedPODArray<UInt8>& c) {
66
51
        size_t size = a.size();
67
51
        const A* __restrict a_pos = a.data();
68
51
        const B* __restrict b_pos = b.data();
69
51
        UInt8* __restrict c_pos = c.data();
70
51
        const A* __restrict a_end = a_pos + size;
71
72
146
        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
51
    }
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
20
        while (a_pos < a_end) {
73
13
            *c_pos = Op::apply(*a_pos, *b_pos);
74
13
            ++a_pos;
75
13
            ++b_pos;
76
13
            ++c_pos;
77
13
        }
78
7
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
19
                                        PaddedPODArray<UInt8>& c) {
66
19
        size_t size = a.size();
67
19
        const A* __restrict a_pos = a.data();
68
19
        const B* __restrict b_pos = b.data();
69
19
        UInt8* __restrict c_pos = c.data();
70
19
        const A* __restrict a_end = a_pos + size;
71
72
138
        while (a_pos < a_end) {
73
119
            *c_pos = Op::apply(*a_pos, *b_pos);
74
119
            ++a_pos;
75
119
            ++b_pos;
76
119
            ++c_pos;
77
119
        }
78
19
    }
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
34
                                        PaddedPODArray<UInt8>& c) {
66
34
        size_t size = a.size();
67
34
        const A* __restrict a_pos = a.data();
68
34
        const B* __restrict b_pos = b.data();
69
34
        UInt8* __restrict c_pos = c.data();
70
34
        const A* __restrict a_end = a_pos + size;
71
72
140
        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
34
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
79
                                        PaddedPODArray<UInt8>& c) {
66
79
        size_t size = a.size();
67
79
        const A* __restrict a_pos = a.data();
68
79
        const B* __restrict b_pos = b.data();
69
79
        UInt8* __restrict c_pos = c.data();
70
79
        const A* __restrict a_end = a_pos + size;
71
72
158
        while (a_pos < a_end) {
73
79
            *c_pos = Op::apply(*a_pos, *b_pos);
74
79
            ++a_pos;
75
79
            ++b_pos;
76
79
            ++c_pos;
77
79
        }
78
79
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.61k
                                        PaddedPODArray<UInt8>& c) {
66
1.61k
        size_t size = a.size();
67
1.61k
        const A* __restrict a_pos = a.data();
68
1.61k
        const B* __restrict b_pos = b.data();
69
1.61k
        UInt8* __restrict c_pos = c.data();
70
1.61k
        const A* __restrict a_end = a_pos + size;
71
72
1.21M
        while (a_pos < a_end) {
73
1.21M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.21M
            ++a_pos;
75
1.21M
            ++b_pos;
76
1.21M
            ++c_pos;
77
1.21M
        }
78
1.61k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
244
                                        PaddedPODArray<UInt8>& c) {
66
244
        size_t size = a.size();
67
244
        const A* __restrict a_pos = a.data();
68
244
        const B* __restrict b_pos = b.data();
69
244
        UInt8* __restrict c_pos = c.data();
70
244
        const A* __restrict a_end = a_pos + size;
71
72
488
        while (a_pos < a_end) {
73
244
            *c_pos = Op::apply(*a_pos, *b_pos);
74
244
            ++a_pos;
75
244
            ++b_pos;
76
244
            ++c_pos;
77
244
        }
78
244
    }
_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
873
                                        PaddedPODArray<UInt8>& c) {
66
873
        size_t size = a.size();
67
873
        const A* __restrict a_pos = a.data();
68
873
        const B* __restrict b_pos = b.data();
69
873
        UInt8* __restrict c_pos = c.data();
70
873
        const A* __restrict a_end = a_pos + size;
71
72
5.12k
        while (a_pos < a_end) {
73
4.25k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.25k
            ++a_pos;
75
4.25k
            ++b_pos;
76
4.25k
            ++c_pos;
77
4.25k
        }
78
873
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
94
                                        PaddedPODArray<UInt8>& c) {
66
94
        size_t size = a.size();
67
94
        const A* __restrict a_pos = a.data();
68
94
        const B* __restrict b_pos = b.data();
69
94
        UInt8* __restrict c_pos = c.data();
70
94
        const A* __restrict a_end = a_pos + size;
71
72
189
        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
94
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
294
                                        PaddedPODArray<UInt8>& c) {
66
294
        size_t size = a.size();
67
294
        const A* __restrict a_pos = a.data();
68
294
        const B* __restrict b_pos = b.data();
69
294
        UInt8* __restrict c_pos = c.data();
70
294
        const A* __restrict a_end = a_pos + size;
71
72
2.95k
        while (a_pos < a_end) {
73
2.66k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.66k
            ++a_pos;
75
2.66k
            ++b_pos;
76
2.66k
            ++c_pos;
77
2.66k
        }
78
294
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
273
                                        PaddedPODArray<UInt8>& c) {
66
273
        size_t size = a.size();
67
273
        const A* __restrict a_pos = a.data();
68
273
        const B* __restrict b_pos = b.data();
69
273
        UInt8* __restrict c_pos = c.data();
70
273
        const A* __restrict a_end = a_pos + size;
71
72
7.72k
        while (a_pos < a_end) {
73
7.44k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
7.44k
            ++a_pos;
75
7.44k
            ++b_pos;
76
7.44k
            ++c_pos;
77
7.44k
        }
78
273
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
172
                                        PaddedPODArray<UInt8>& c) {
66
172
        size_t size = a.size();
67
172
        const A* __restrict a_pos = a.data();
68
172
        const B* __restrict b_pos = b.data();
69
172
        UInt8* __restrict c_pos = c.data();
70
172
        const A* __restrict a_end = a_pos + size;
71
72
489
        while (a_pos < a_end) {
73
317
            *c_pos = Op::apply(*a_pos, *b_pos);
74
317
            ++a_pos;
75
317
            ++b_pos;
76
317
            ++c_pos;
77
317
        }
78
172
    }
_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
122
                                        PaddedPODArray<UInt8>& c) {
66
122
        size_t size = a.size();
67
122
        const A* __restrict a_pos = a.data();
68
122
        const B* __restrict b_pos = b.data();
69
122
        UInt8* __restrict c_pos = c.data();
70
122
        const A* __restrict a_end = a_pos + size;
71
72
263
        while (a_pos < a_end) {
73
141
            *c_pos = Op::apply(*a_pos, *b_pos);
74
141
            ++a_pos;
75
141
            ++b_pos;
76
141
            ++c_pos;
77
141
        }
78
122
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
159
                                        PaddedPODArray<UInt8>& c) {
66
159
        size_t size = a.size();
67
159
        const A* __restrict a_pos = a.data();
68
159
        const B* __restrict b_pos = b.data();
69
159
        UInt8* __restrict c_pos = c.data();
70
159
        const A* __restrict a_end = a_pos + size;
71
72
355
        while (a_pos < a_end) {
73
196
            *c_pos = Op::apply(*a_pos, *b_pos);
74
196
            ++a_pos;
75
196
            ++b_pos;
76
196
            ++c_pos;
77
196
        }
78
159
    }
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
423
                                        PaddedPODArray<UInt8>& c) {
66
423
        size_t size = a.size();
67
423
        const A* __restrict a_pos = a.data();
68
423
        const B* __restrict b_pos = b.data();
69
423
        UInt8* __restrict c_pos = c.data();
70
423
        const A* __restrict a_end = a_pos + size;
71
72
6.62k
        while (a_pos < a_end) {
73
6.19k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.19k
            ++a_pos;
75
6.19k
            ++b_pos;
76
6.19k
            ++c_pos;
77
6.19k
        }
78
423
    }
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
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
1.08k
        while (a_pos < a_end) {
73
1.00k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.00k
            ++a_pos;
75
1.00k
            ++b_pos;
76
1.00k
            ++c_pos;
77
1.00k
        }
78
76
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
39
                                        PaddedPODArray<UInt8>& c) {
66
39
        size_t size = a.size();
67
39
        const A* __restrict a_pos = a.data();
68
39
        const B* __restrict b_pos = b.data();
69
39
        UInt8* __restrict c_pos = c.data();
70
39
        const A* __restrict a_end = a_pos + size;
71
72
213
        while (a_pos < a_end) {
73
174
            *c_pos = Op::apply(*a_pos, *b_pos);
74
174
            ++a_pos;
75
174
            ++b_pos;
76
174
            ++c_pos;
77
174
        }
78
39
    }
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
93.5k
                                          PaddedPODArray<UInt8>& c) {
82
93.5k
        size_t size = a.size();
83
93.5k
        const A* __restrict a_pos = a.data();
84
93.5k
        UInt8* __restrict c_pos = c.data();
85
93.5k
        const A* __restrict a_end = a_pos + size;
86
87
260M
        while (a_pos < a_end) {
88
260M
            *c_pos = Op::apply(*a_pos, b);
89
260M
            ++a_pos;
90
260M
            ++c_pos;
91
260M
        }
92
93.5k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
792
                                          PaddedPODArray<UInt8>& c) {
82
792
        size_t size = a.size();
83
792
        const A* __restrict a_pos = a.data();
84
792
        UInt8* __restrict c_pos = c.data();
85
792
        const A* __restrict a_end = a_pos + size;
86
87
3.22k
        while (a_pos < a_end) {
88
2.43k
            *c_pos = Op::apply(*a_pos, b);
89
2.43k
            ++a_pos;
90
2.43k
            ++c_pos;
91
2.43k
        }
92
792
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
1.00k
                                          PaddedPODArray<UInt8>& c) {
82
1.00k
        size_t size = a.size();
83
1.00k
        const A* __restrict a_pos = a.data();
84
1.00k
        UInt8* __restrict c_pos = c.data();
85
1.00k
        const A* __restrict a_end = a_pos + size;
86
87
205k
        while (a_pos < a_end) {
88
204k
            *c_pos = Op::apply(*a_pos, b);
89
204k
            ++a_pos;
90
204k
            ++c_pos;
91
204k
        }
92
1.00k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
403
                                          PaddedPODArray<UInt8>& c) {
82
403
        size_t size = a.size();
83
403
        const A* __restrict a_pos = a.data();
84
403
        UInt8* __restrict c_pos = c.data();
85
403
        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
403
    }
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
3.07k
                                          PaddedPODArray<UInt8>& c) {
82
3.07k
        size_t size = a.size();
83
3.07k
        const A* __restrict a_pos = a.data();
84
3.07k
        UInt8* __restrict c_pos = c.data();
85
3.07k
        const A* __restrict a_end = a_pos + size;
86
87
9.40M
        while (a_pos < a_end) {
88
9.39M
            *c_pos = Op::apply(*a_pos, b);
89
9.39M
            ++a_pos;
90
9.39M
            ++c_pos;
91
9.39M
        }
92
3.07k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
589
                                          PaddedPODArray<UInt8>& c) {
82
589
        size_t size = a.size();
83
589
        const A* __restrict a_pos = a.data();
84
589
        UInt8* __restrict c_pos = c.data();
85
589
        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
589
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
5.97k
                                          PaddedPODArray<UInt8>& c) {
82
5.97k
        size_t size = a.size();
83
5.97k
        const A* __restrict a_pos = a.data();
84
5.97k
        UInt8* __restrict c_pos = c.data();
85
5.97k
        const A* __restrict a_end = a_pos + size;
86
87
2.49M
        while (a_pos < a_end) {
88
2.48M
            *c_pos = Op::apply(*a_pos, b);
89
2.48M
            ++a_pos;
90
2.48M
            ++c_pos;
91
2.48M
        }
92
5.97k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
8.96k
                                          PaddedPODArray<UInt8>& c) {
82
8.96k
        size_t size = a.size();
83
8.96k
        const A* __restrict a_pos = a.data();
84
8.96k
        UInt8* __restrict c_pos = c.data();
85
8.96k
        const A* __restrict a_end = a_pos + size;
86
87
3.38M
        while (a_pos < a_end) {
88
3.37M
            *c_pos = Op::apply(*a_pos, b);
89
3.37M
            ++a_pos;
90
3.37M
            ++c_pos;
91
3.37M
        }
92
8.96k
    }
_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
13
                                          PaddedPODArray<UInt8>& c) {
82
13
        size_t size = a.size();
83
13
        const A* __restrict a_pos = a.data();
84
13
        UInt8* __restrict c_pos = c.data();
85
13
        const A* __restrict a_end = a_pos + size;
86
87
127
        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
13
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
6
                                          PaddedPODArray<UInt8>& c) {
82
6
        size_t size = a.size();
83
6
        const A* __restrict a_pos = a.data();
84
6
        UInt8* __restrict c_pos = c.data();
85
6
        const A* __restrict a_end = a_pos + size;
86
87
12
        while (a_pos < a_end) {
88
6
            *c_pos = Op::apply(*a_pos, b);
89
6
            ++a_pos;
90
6
            ++c_pos;
91
6
        }
92
6
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
4
                                          PaddedPODArray<UInt8>& c) {
82
4
        size_t size = a.size();
83
4
        const A* __restrict a_pos = a.data();
84
4
        UInt8* __restrict c_pos = c.data();
85
4
        const A* __restrict a_end = a_pos + size;
86
87
44
        while (a_pos < a_end) {
88
40
            *c_pos = Op::apply(*a_pos, b);
89
40
            ++a_pos;
90
40
            ++c_pos;
91
40
        }
92
4
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
192
                                          PaddedPODArray<UInt8>& c) {
82
192
        size_t size = a.size();
83
192
        const A* __restrict a_pos = a.data();
84
192
        UInt8* __restrict c_pos = c.data();
85
192
        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
192
    }
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
547
                                          PaddedPODArray<UInt8>& c) {
82
547
        size_t size = a.size();
83
547
        const A* __restrict a_pos = a.data();
84
547
        UInt8* __restrict c_pos = c.data();
85
547
        const A* __restrict a_end = a_pos + size;
86
87
488k
        while (a_pos < a_end) {
88
487k
            *c_pos = Op::apply(*a_pos, b);
89
487k
            ++a_pos;
90
487k
            ++c_pos;
91
487k
        }
92
547
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
542
                                          PaddedPODArray<UInt8>& c) {
82
542
        size_t size = a.size();
83
542
        const A* __restrict a_pos = a.data();
84
542
        UInt8* __restrict c_pos = c.data();
85
542
        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
542
    }
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
114
                                          PaddedPODArray<UInt8>& c) {
82
114
        size_t size = a.size();
83
114
        const A* __restrict a_pos = a.data();
84
114
        UInt8* __restrict c_pos = c.data();
85
114
        const A* __restrict a_end = a_pos + size;
86
87
1.50k
        while (a_pos < a_end) {
88
1.39k
            *c_pos = Op::apply(*a_pos, b);
89
1.39k
            ++a_pos;
90
1.39k
            ++c_pos;
91
1.39k
        }
92
114
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
443
                                          PaddedPODArray<UInt8>& c) {
82
443
        size_t size = a.size();
83
443
        const A* __restrict a_pos = a.data();
84
443
        UInt8* __restrict c_pos = c.data();
85
443
        const A* __restrict a_end = a_pos + size;
86
87
1.34M
        while (a_pos < a_end) {
88
1.34M
            *c_pos = Op::apply(*a_pos, b);
89
1.34M
            ++a_pos;
90
1.34M
            ++c_pos;
91
1.34M
        }
92
443
    }
_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
211
                                          PaddedPODArray<UInt8>& c) {
82
211
        size_t size = a.size();
83
211
        const A* __restrict a_pos = a.data();
84
211
        UInt8* __restrict c_pos = c.data();
85
211
        const A* __restrict a_end = a_pos + size;
86
87
29.9k
        while (a_pos < a_end) {
88
29.6k
            *c_pos = Op::apply(*a_pos, b);
89
29.6k
            ++a_pos;
90
29.6k
            ++c_pos;
91
29.6k
        }
92
211
    }
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
432
                                          PaddedPODArray<UInt8>& c) {
82
432
        size_t size = a.size();
83
432
        const A* __restrict a_pos = a.data();
84
432
        UInt8* __restrict c_pos = c.data();
85
432
        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
432
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
43
                                          PaddedPODArray<UInt8>& c) {
82
43
        size_t size = a.size();
83
43
        const A* __restrict a_pos = a.data();
84
43
        UInt8* __restrict c_pos = c.data();
85
43
        const A* __restrict a_end = a_pos + size;
86
87
1.79k
        while (a_pos < a_end) {
88
1.74k
            *c_pos = Op::apply(*a_pos, b);
89
1.74k
            ++a_pos;
90
1.74k
            ++c_pos;
91
1.74k
        }
92
43
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_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
7.90k
        while (a_pos < a_end) {
88
7.43k
            *c_pos = Op::apply(*a_pos, b);
89
7.43k
            ++a_pos;
90
7.43k
            ++c_pos;
91
7.43k
        }
92
463
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
104
                                          PaddedPODArray<UInt8>& c) {
82
104
        size_t size = a.size();
83
104
        const A* __restrict a_pos = a.data();
84
104
        UInt8* __restrict c_pos = c.data();
85
104
        const A* __restrict a_end = a_pos + size;
86
87
8.56k
        while (a_pos < a_end) {
88
8.45k
            *c_pos = Op::apply(*a_pos, b);
89
8.45k
            ++a_pos;
90
8.45k
            ++c_pos;
91
8.45k
        }
92
104
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
6.12k
                                          PaddedPODArray<UInt8>& c) {
82
6.12k
        size_t size = a.size();
83
6.12k
        const A* __restrict a_pos = a.data();
84
6.12k
        UInt8* __restrict c_pos = c.data();
85
6.12k
        const A* __restrict a_end = a_pos + size;
86
87
1.79M
        while (a_pos < a_end) {
88
1.79M
            *c_pos = Op::apply(*a_pos, b);
89
1.79M
            ++a_pos;
90
1.79M
            ++c_pos;
91
1.79M
        }
92
6.12k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.80k
                                          PaddedPODArray<UInt8>& c) {
82
1.80k
        size_t size = a.size();
83
1.80k
        const A* __restrict a_pos = a.data();
84
1.80k
        UInt8* __restrict c_pos = c.data();
85
1.80k
        const A* __restrict a_end = a_pos + size;
86
87
7.32M
        while (a_pos < a_end) {
88
7.32M
            *c_pos = Op::apply(*a_pos, b);
89
7.32M
            ++a_pos;
90
7.32M
            ++c_pos;
91
7.32M
        }
92
1.80k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
8.08k
                                          PaddedPODArray<UInt8>& c) {
82
8.08k
        size_t size = a.size();
83
8.08k
        const A* __restrict a_pos = a.data();
84
8.08k
        UInt8* __restrict c_pos = c.data();
85
8.08k
        const A* __restrict a_end = a_pos + size;
86
87
184k
        while (a_pos < a_end) {
88
176k
            *c_pos = Op::apply(*a_pos, b);
89
176k
            ++a_pos;
90
176k
            ++c_pos;
91
176k
        }
92
8.08k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.02k
                                          PaddedPODArray<UInt8>& c) {
82
1.02k
        size_t size = a.size();
83
1.02k
        const A* __restrict a_pos = a.data();
84
1.02k
        UInt8* __restrict c_pos = c.data();
85
1.02k
        const A* __restrict a_end = a_pos + size;
86
87
5.61k
        while (a_pos < a_end) {
88
4.59k
            *c_pos = Op::apply(*a_pos, b);
89
4.59k
            ++a_pos;
90
4.59k
            ++c_pos;
91
4.59k
        }
92
1.02k
    }
_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
100k
        while (a_pos < a_end) {
88
100k
            *c_pos = Op::apply(*a_pos, b);
89
100k
            ++a_pos;
90
100k
            ++c_pos;
91
100k
        }
92
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.41k
        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.68k
                                          PaddedPODArray<UInt8>& c) {
82
1.68k
        size_t size = a.size();
83
1.68k
        const A* __restrict a_pos = a.data();
84
1.68k
        UInt8* __restrict c_pos = c.data();
85
1.68k
        const A* __restrict a_end = a_pos + size;
86
87
529k
        while (a_pos < a_end) {
88
527k
            *c_pos = Op::apply(*a_pos, b);
89
527k
            ++a_pos;
90
527k
            ++c_pos;
91
527k
        }
92
1.68k
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
200
                                          PaddedPODArray<UInt8>& c) {
82
200
        size_t size = a.size();
83
200
        const A* __restrict a_pos = a.data();
84
200
        UInt8* __restrict c_pos = c.data();
85
200
        const A* __restrict a_end = a_pos + size;
86
87
312k
        while (a_pos < a_end) {
88
312k
            *c_pos = Op::apply(*a_pos, b);
89
312k
            ++a_pos;
90
312k
            ++c_pos;
91
312k
        }
92
200
    }
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
124
                                          PaddedPODArray<UInt8>& c) {
82
124
        size_t size = a.size();
83
124
        const A* __restrict a_pos = a.data();
84
124
        UInt8* __restrict c_pos = c.data();
85
124
        const A* __restrict a_end = a_pos + size;
86
87
91.3k
        while (a_pos < a_end) {
88
91.2k
            *c_pos = Op::apply(*a_pos, b);
89
91.2k
            ++a_pos;
90
91.2k
            ++c_pos;
91
91.2k
        }
92
124
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
116
                                          PaddedPODArray<UInt8>& c) {
82
116
        size_t size = a.size();
83
116
        const A* __restrict a_pos = a.data();
84
116
        UInt8* __restrict c_pos = c.data();
85
116
        const A* __restrict a_end = a_pos + size;
86
87
32.1k
        while (a_pos < a_end) {
88
32.0k
            *c_pos = Op::apply(*a_pos, b);
89
32.0k
            ++a_pos;
90
32.0k
            ++c_pos;
91
32.0k
        }
92
116
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
1.47k
                                          PaddedPODArray<UInt8>& c) {
82
1.47k
        size_t size = a.size();
83
1.47k
        const A* __restrict a_pos = a.data();
84
1.47k
        UInt8* __restrict c_pos = c.data();
85
1.47k
        const A* __restrict a_end = a_pos + size;
86
87
7.37M
        while (a_pos < a_end) {
88
7.37M
            *c_pos = Op::apply(*a_pos, b);
89
7.37M
            ++a_pos;
90
7.37M
            ++c_pos;
91
7.37M
        }
92
1.47k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
5.48k
                                          PaddedPODArray<UInt8>& c) {
82
5.48k
        size_t size = a.size();
83
5.48k
        const A* __restrict a_pos = a.data();
84
5.48k
        UInt8* __restrict c_pos = c.data();
85
5.48k
        const A* __restrict a_end = a_pos + size;
86
87
42.6M
        while (a_pos < a_end) {
88
42.6M
            *c_pos = Op::apply(*a_pos, b);
89
42.6M
            ++a_pos;
90
42.6M
            ++c_pos;
91
42.6M
        }
92
5.48k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
473
                                          PaddedPODArray<UInt8>& c) {
82
473
        size_t size = a.size();
83
473
        const A* __restrict a_pos = a.data();
84
473
        UInt8* __restrict c_pos = c.data();
85
473
        const A* __restrict a_end = a_pos + size;
86
87
1.38k
        while (a_pos < a_end) {
88
916
            *c_pos = Op::apply(*a_pos, b);
89
916
            ++a_pos;
90
916
            ++c_pos;
91
916
        }
92
473
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
266
                                          PaddedPODArray<UInt8>& c) {
82
266
        size_t size = a.size();
83
266
        const A* __restrict a_pos = a.data();
84
266
        UInt8* __restrict c_pos = c.data();
85
266
        const A* __restrict a_end = a_pos + size;
86
87
2.65k
        while (a_pos < a_end) {
88
2.39k
            *c_pos = Op::apply(*a_pos, b);
89
2.39k
            ++a_pos;
90
2.39k
            ++c_pos;
91
2.39k
        }
92
266
    }
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
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
9.49k
        while (a_pos < a_end) {
88
9.44k
            *c_pos = Op::apply(*a_pos, b);
89
9.44k
            ++a_pos;
90
9.44k
            ++c_pos;
91
9.44k
        }
92
52
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
75
                                          PaddedPODArray<UInt8>& c) {
82
75
        size_t size = a.size();
83
75
        const A* __restrict a_pos = a.data();
84
75
        UInt8* __restrict c_pos = c.data();
85
75
        const A* __restrict a_end = a_pos + size;
86
87
20.5k
        while (a_pos < a_end) {
88
20.4k
            *c_pos = Op::apply(*a_pos, b);
89
20.4k
            ++a_pos;
90
20.4k
            ++c_pos;
91
20.4k
        }
92
75
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
61
                                          PaddedPODArray<UInt8>& c) {
82
61
        size_t size = a.size();
83
61
        const A* __restrict a_pos = a.data();
84
61
        UInt8* __restrict c_pos = c.data();
85
61
        const A* __restrict a_end = a_pos + size;
86
87
39.7k
        while (a_pos < a_end) {
88
39.6k
            *c_pos = Op::apply(*a_pos, b);
89
39.6k
            ++a_pos;
90
39.6k
            ++c_pos;
91
39.6k
        }
92
61
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
86
                                          PaddedPODArray<UInt8>& c) {
82
86
        size_t size = a.size();
83
86
        const A* __restrict a_pos = a.data();
84
86
        UInt8* __restrict c_pos = c.data();
85
86
        const A* __restrict a_end = a_pos + size;
86
87
373
        while (a_pos < a_end) {
88
287
            *c_pos = Op::apply(*a_pos, b);
89
287
            ++a_pos;
90
287
            ++c_pos;
91
287
        }
92
86
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
20.2k
                                          PaddedPODArray<UInt8>& c) {
82
20.2k
        size_t size = a.size();
83
20.2k
        const A* __restrict a_pos = a.data();
84
20.2k
        UInt8* __restrict c_pos = c.data();
85
20.2k
        const A* __restrict a_end = a_pos + size;
86
87
90.4M
        while (a_pos < a_end) {
88
90.4M
            *c_pos = Op::apply(*a_pos, b);
89
90.4M
            ++a_pos;
90
90.4M
            ++c_pos;
91
90.4M
        }
92
20.2k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
20.2k
                                          PaddedPODArray<UInt8>& c) {
82
20.2k
        size_t size = a.size();
83
20.2k
        const A* __restrict a_pos = a.data();
84
20.2k
        UInt8* __restrict c_pos = c.data();
85
20.2k
        const A* __restrict a_end = a_pos + size;
86
87
90.4M
        while (a_pos < a_end) {
88
90.4M
            *c_pos = Op::apply(*a_pos, b);
89
90.4M
            ++a_pos;
90
90.4M
            ++c_pos;
91
90.4M
        }
92
20.2k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
418
                                          PaddedPODArray<UInt8>& c) {
82
418
        size_t size = a.size();
83
418
        const A* __restrict a_pos = a.data();
84
418
        UInt8* __restrict c_pos = c.data();
85
418
        const A* __restrict a_end = a_pos + size;
86
87
26.8k
        while (a_pos < a_end) {
88
26.3k
            *c_pos = Op::apply(*a_pos, b);
89
26.3k
            ++a_pos;
90
26.3k
            ++c_pos;
91
26.3k
        }
92
418
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
362
                                          PaddedPODArray<UInt8>& c) {
82
362
        size_t size = a.size();
83
362
        const A* __restrict a_pos = a.data();
84
362
        UInt8* __restrict c_pos = c.data();
85
362
        const A* __restrict a_end = a_pos + size;
86
87
8.17k
        while (a_pos < a_end) {
88
7.81k
            *c_pos = Op::apply(*a_pos, b);
89
7.81k
            ++a_pos;
90
7.81k
            ++c_pos;
91
7.81k
        }
92
362
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
46
                                          PaddedPODArray<UInt8>& c) {
82
46
        size_t size = a.size();
83
46
        const A* __restrict a_pos = a.data();
84
46
        UInt8* __restrict c_pos = c.data();
85
46
        const A* __restrict a_end = a_pos + size;
86
87
101k
        while (a_pos < a_end) {
88
100k
            *c_pos = Op::apply(*a_pos, b);
89
100k
            ++a_pos;
90
100k
            ++c_pos;
91
100k
        }
92
46
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
38
                                          PaddedPODArray<UInt8>& c) {
82
38
        size_t size = a.size();
83
38
        const A* __restrict a_pos = a.data();
84
38
        UInt8* __restrict c_pos = c.data();
85
38
        const A* __restrict a_end = a_pos + size;
86
87
67.5k
        while (a_pos < a_end) {
88
67.5k
            *c_pos = Op::apply(*a_pos, b);
89
67.5k
            ++a_pos;
90
67.5k
            ++c_pos;
91
67.5k
        }
92
38
    }
_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
66
                                          PaddedPODArray<UInt8>& c) {
82
66
        size_t size = a.size();
83
66
        const A* __restrict a_pos = a.data();
84
66
        UInt8* __restrict c_pos = c.data();
85
66
        const A* __restrict a_end = a_pos + size;
86
87
135
        while (a_pos < a_end) {
88
69
            *c_pos = Op::apply(*a_pos, b);
89
69
            ++a_pos;
90
69
            ++c_pos;
91
69
        }
92
66
    }
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_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
120
        while (a_pos < a_end) {
88
60
            *c_pos = Op::apply(*a_pos, b);
89
60
            ++a_pos;
90
60
            ++c_pos;
91
60
        }
92
60
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
131
                                          PaddedPODArray<UInt8>& c) {
82
131
        size_t size = a.size();
83
131
        const A* __restrict a_pos = a.data();
84
131
        UInt8* __restrict c_pos = c.data();
85
131
        const A* __restrict a_end = a_pos + size;
86
87
356k
        while (a_pos < a_end) {
88
356k
            *c_pos = Op::apply(*a_pos, b);
89
356k
            ++a_pos;
90
356k
            ++c_pos;
91
356k
        }
92
131
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
139
                                          PaddedPODArray<UInt8>& c) {
82
139
        size_t size = a.size();
83
139
        const A* __restrict a_pos = a.data();
84
139
        UInt8* __restrict c_pos = c.data();
85
139
        const A* __restrict a_end = a_pos + size;
86
87
276k
        while (a_pos < a_end) {
88
276k
            *c_pos = Op::apply(*a_pos, b);
89
276k
            ++a_pos;
90
276k
            ++c_pos;
91
276k
        }
92
139
    }
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
90
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
90
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
206k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
206k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
206k
        }
113
90
    }
_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
28
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
28
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
114k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
114k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
114k
        }
113
28
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
25
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
25
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
91.3k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
91.3k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
91.3k
        }
113
25
    }
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
461
                                                      PaddedPODArray<UInt8>& c) {
127
461
        size_t size = a_offsets.size();
128
461
        ColumnString::Offset prev_a_offset = 0;
129
461
        ColumnString::Offset prev_b_offset = 0;
130
461
        const auto* a_pos = a_data.data();
131
461
        const auto* b_pos = b_data.data();
132
133
1.21k
        for (size_t i = 0; i < size; ++i) {
134
758
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
758
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
758
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
758
                             0);
138
139
758
            prev_a_offset = a_offsets[i];
140
758
            prev_b_offset = b_offsets[i];
141
758
        }
142
461
    }
_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
46
                                                      PaddedPODArray<UInt8>& c) {
127
46
        size_t size = a_offsets.size();
128
46
        ColumnString::Offset prev_a_offset = 0;
129
46
        ColumnString::Offset prev_b_offset = 0;
130
46
        const auto* a_pos = a_data.data();
131
46
        const auto* b_pos = b_data.data();
132
133
340
        for (size_t i = 0; i < size; ++i) {
134
294
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
294
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
294
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
294
                             0);
138
139
294
            prev_a_offset = a_offsets[i];
140
294
            prev_b_offset = b_offsets[i];
141
294
        }
142
46
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
413
                                                      PaddedPODArray<UInt8>& c) {
127
413
        size_t size = a_offsets.size();
128
413
        ColumnString::Offset prev_a_offset = 0;
129
413
        ColumnString::Offset prev_b_offset = 0;
130
413
        const auto* a_pos = a_data.data();
131
413
        const auto* b_pos = b_data.data();
132
133
830
        for (size_t i = 0; i < size; ++i) {
134
417
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
417
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
417
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
417
                             0);
138
139
417
            prev_a_offset = a_offsets[i];
140
417
            prev_b_offset = b_offsets[i];
141
417
        }
142
413
    }
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.40k
                                                 PaddedPODArray<UInt8>& c) {
149
1.40k
        size_t size = a_offsets.size();
150
1.40k
        ColumnString::Offset prev_a_offset = 0;
151
1.40k
        const auto* a_pos = a_data.data();
152
1.40k
        const auto* b_pos = b_data.data();
153
154
934k
        for (size_t i = 0; i < size; ++i) {
155
933k
            c[i] = Op::apply(
156
933k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
933k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
933k
                    0);
159
160
933k
            prev_a_offset = a_offsets[i];
161
933k
        }
162
1.40k
    }
_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
324k
        for (size_t i = 0; i < size; ++i) {
155
324k
            c[i] = Op::apply(
156
324k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
324k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
324k
                    0);
159
160
324k
            prev_a_offset = a_offsets[i];
161
324k
        }
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.5k
        for (size_t i = 0; i < size; ++i) {
155
72.3k
            c[i] = Op::apply(
156
72.3k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
72.3k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
72.3k
                    0);
159
160
72.3k
            prev_a_offset = a_offsets[i];
161
72.3k
        }
162
215
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
451
                                                 PaddedPODArray<UInt8>& c) {
149
451
        size_t size = a_offsets.size();
150
451
        ColumnString::Offset prev_a_offset = 0;
151
451
        const auto* a_pos = a_data.data();
152
451
        const auto* b_pos = b_data.data();
153
154
213k
        for (size_t i = 0; i < size; ++i) {
155
212k
            c[i] = Op::apply(
156
212k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
212k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
212k
                    0);
159
160
212k
            prev_a_offset = a_offsets[i];
161
212k
        }
162
451
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
540
                                                 PaddedPODArray<UInt8>& c) {
149
540
        size_t size = a_offsets.size();
150
540
        ColumnString::Offset prev_a_offset = 0;
151
540
        const auto* a_pos = a_data.data();
152
540
        const auto* b_pos = b_data.data();
153
154
324k
        for (size_t i = 0; i < size; ++i) {
155
323k
            c[i] = Op::apply(
156
323k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
323k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
323k
                    0);
159
160
323k
            prev_a_offset = a_offsets[i];
161
323k
        }
162
540
    }
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
468
                                                      PaddedPODArray<UInt8>& c) {
181
468
        size_t size = a_offsets.size();
182
468
        ColumnString::Offset prev_a_offset = 0;
183
468
        ColumnString::Offset prev_b_offset = 0;
184
468
        const auto* a_pos = a_data.data();
185
468
        const auto* b_pos = b_data.data();
186
187
5.52k
        for (size_t i = 0; i < size; ++i) {
188
5.05k
            auto a_size = a_offsets[i] - prev_a_offset;
189
5.05k
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
5.05k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
5.05k
                                                               b_pos + prev_b_offset, b_size);
193
194
5.05k
            prev_a_offset = a_offsets[i];
195
5.05k
            prev_b_offset = b_offsets[i];
196
5.05k
        }
197
468
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
467
                                                      PaddedPODArray<UInt8>& c) {
181
467
        size_t size = a_offsets.size();
182
467
        ColumnString::Offset prev_a_offset = 0;
183
467
        ColumnString::Offset prev_b_offset = 0;
184
467
        const auto* a_pos = a_data.data();
185
467
        const auto* b_pos = b_data.data();
186
187
5.52k
        for (size_t i = 0; i < size; ++i) {
188
5.05k
            auto a_size = a_offsets[i] - prev_a_offset;
189
5.05k
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
5.05k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
5.05k
                                                               b_pos + prev_b_offset, b_size);
193
194
5.05k
            prev_a_offset = a_offsets[i];
195
5.05k
            prev_b_offset = b_offsets[i];
196
5.05k
        }
197
467
    }
_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
20.7k
                                                 PaddedPODArray<UInt8>& c) {
204
20.7k
        size_t size = a_offsets.size();
205
20.7k
        if (b_size == 0) {
206
41
            auto* __restrict data = c.data();
207
41
            auto* __restrict offsets = a_offsets.data();
208
209
41
            ColumnString::Offset prev_a_offset = 0;
210
1.22k
            for (size_t i = 0; i < size; ++i) {
211
1.18k
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
1.18k
                prev_a_offset = offsets[i];
213
1.18k
            }
214
20.6k
        } else {
215
20.6k
            ColumnString::Offset prev_a_offset = 0;
216
20.6k
            const auto* a_pos = a_data.data();
217
20.6k
            const auto* b_pos = b_data.data();
218
12.1M
            for (size_t i = 0; i < size; ++i) {
219
12.0M
                auto a_size = a_offsets[i] - prev_a_offset;
220
12.0M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
12.0M
                                                                   b_pos, b_size);
222
12.0M
                prev_a_offset = a_offsets[i];
223
12.0M
            }
224
20.6k
        }
225
20.7k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
19.9k
                                                 PaddedPODArray<UInt8>& c) {
204
19.9k
        size_t size = a_offsets.size();
205
19.9k
        if (b_size == 0) {
206
16
            auto* __restrict data = c.data();
207
16
            auto* __restrict offsets = a_offsets.data();
208
209
16
            ColumnString::Offset prev_a_offset = 0;
210
120
            for (size_t i = 0; i < size; ++i) {
211
104
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
104
                prev_a_offset = offsets[i];
213
104
            }
214
19.9k
        } else {
215
19.9k
            ColumnString::Offset prev_a_offset = 0;
216
19.9k
            const auto* a_pos = a_data.data();
217
19.9k
            const auto* b_pos = b_data.data();
218
11.7M
            for (size_t i = 0; i < size; ++i) {
219
11.7M
                auto a_size = a_offsets[i] - prev_a_offset;
220
11.7M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
11.7M
                                                                   b_pos, b_size);
222
11.7M
                prev_a_offset = a_offsets[i];
223
11.7M
            }
224
19.9k
        }
225
19.9k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
736
                                                 PaddedPODArray<UInt8>& c) {
204
736
        size_t size = a_offsets.size();
205
736
        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
711
        } else {
215
711
            ColumnString::Offset prev_a_offset = 0;
216
711
            const auto* a_pos = a_data.data();
217
711
            const auto* b_pos = b_data.data();
218
316k
            for (size_t i = 0; i < size; ++i) {
219
316k
                auto a_size = a_offsets[i] - prev_a_offset;
220
316k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
316k
                                                                   b_pos, b_size);
222
316k
                prev_a_offset = a_offsets[i];
223
316k
            }
224
711
        }
225
736
    }
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
500k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
265
426k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
265
1.34k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
265
6.63k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
265
31.0k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
265
3.32k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
265
32.1k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
266
267
501k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
267
426k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
267
1.34k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
267
6.63k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
267
31.0k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
267
3.32k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
267
32.1k
    FunctionComparison() = default;
268
269
1.23M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
269
1.18M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
269
1.48k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
269
7.62k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
269
20.4k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
269
3.77k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
269
18.8k
    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
106k
                            const ColumnPtr& col_right_ptr) const {
275
106k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
106k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
106k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
106k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
106k
        DCHECK(!(left_is_const && right_is_const));
282
283
106k
        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
93.5k
        } else if (!left_is_const && right_is_const) {
295
93.5k
            auto col_res = ColumnUInt8::create();
296
297
93.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
93.5k
            vec_res.resize(col_left->size());
299
93.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
93.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
93.5k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
93.5k
                                                       col_right->get_element(0), vec_res);
303
304
93.5k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } 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
106k
        return Status::OK();
318
106k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
862
                            const ColumnPtr& col_right_ptr) const {
275
862
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
862
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
862
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
862
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
862
        DCHECK(!(left_is_const && right_is_const));
282
283
862
        if (!left_is_const && !right_is_const) {
284
70
            auto col_res = ColumnUInt8::create();
285
286
70
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
70
            vec_res.resize(col_left->get_data().size());
288
70
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
70
                              typename PrimitiveTypeTraits<PT>::CppType,
290
70
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
70
                                                     vec_res);
292
293
70
            block.replace_by_position(result, std::move(col_res));
294
792
        } else if (!left_is_const && right_is_const) {
295
792
            auto col_res = ColumnUInt8::create();
296
297
792
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
792
            vec_res.resize(col_left->size());
299
792
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
792
                              typename PrimitiveTypeTraits<PT>::CppType,
301
792
                              Op<PT>>::vector_constant(col_left->get_data(),
302
792
                                                       col_right->get_element(0), vec_res);
303
304
792
            block.replace_by_position(result, std::move(col_res));
305
792
        } 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
862
        return Status::OK();
318
862
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.32k
                            const ColumnPtr& col_right_ptr) const {
275
1.32k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.32k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.32k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.32k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.32k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.32k
        if (!left_is_const && !right_is_const) {
284
313
            auto col_res = ColumnUInt8::create();
285
286
313
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
313
            vec_res.resize(col_left->get_data().size());
288
313
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
313
                              typename PrimitiveTypeTraits<PT>::CppType,
290
313
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
313
                                                     vec_res);
292
293
313
            block.replace_by_position(result, std::move(col_res));
294
1.00k
        } else if (!left_is_const && right_is_const) {
295
1.00k
            auto col_res = ColumnUInt8::create();
296
297
1.00k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.00k
            vec_res.resize(col_left->size());
299
1.00k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.00k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.00k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.00k
                                                       col_right->get_element(0), vec_res);
303
304
1.00k
            block.replace_by_position(result, std::move(col_res));
305
1.00k
        } 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.32k
        return Status::OK();
318
1.32k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
654
                            const ColumnPtr& col_right_ptr) const {
275
654
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
654
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
654
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
654
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
654
        DCHECK(!(left_is_const && right_is_const));
282
283
654
        if (!left_is_const && !right_is_const) {
284
252
            auto col_res = ColumnUInt8::create();
285
286
252
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
252
            vec_res.resize(col_left->get_data().size());
288
252
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
252
                              typename PrimitiveTypeTraits<PT>::CppType,
290
252
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
252
                                                     vec_res);
292
293
252
            block.replace_by_position(result, std::move(col_res));
294
402
        } else if (!left_is_const && right_is_const) {
295
402
            auto col_res = ColumnUInt8::create();
296
297
402
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
402
            vec_res.resize(col_left->size());
299
402
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
402
                              typename PrimitiveTypeTraits<PT>::CppType,
301
402
                              Op<PT>>::vector_constant(col_left->get_data(),
302
402
                                                       col_right->get_element(0), vec_res);
303
304
402
            block.replace_by_position(result, std::move(col_res));
305
402
        } 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
654
        return Status::OK();
318
654
    }
_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
4.02k
                            const ColumnPtr& col_right_ptr) const {
275
4.02k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4.02k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4.02k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4.02k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4.02k
        DCHECK(!(left_is_const && right_is_const));
282
283
4.02k
        if (!left_is_const && !right_is_const) {
284
942
            auto col_res = ColumnUInt8::create();
285
286
942
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
942
            vec_res.resize(col_left->get_data().size());
288
942
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
942
                              typename PrimitiveTypeTraits<PT>::CppType,
290
942
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
942
                                                     vec_res);
292
293
942
            block.replace_by_position(result, std::move(col_res));
294
3.07k
        } else if (!left_is_const && right_is_const) {
295
3.07k
            auto col_res = ColumnUInt8::create();
296
297
3.07k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
3.07k
            vec_res.resize(col_left->size());
299
3.07k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
3.07k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
3.07k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
3.07k
                                                       col_right->get_element(0), vec_res);
303
304
3.07k
            block.replace_by_position(result, std::move(col_res));
305
3.07k
        } 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.02k
        return Status::OK();
318
4.02k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
692
                            const ColumnPtr& col_right_ptr) const {
275
692
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
692
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
692
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
692
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
692
        DCHECK(!(left_is_const && right_is_const));
282
283
692
        if (!left_is_const && !right_is_const) {
284
103
            auto col_res = ColumnUInt8::create();
285
286
103
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
103
            vec_res.resize(col_left->get_data().size());
288
103
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
103
                              typename PrimitiveTypeTraits<PT>::CppType,
290
103
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
103
                                                     vec_res);
292
293
103
            block.replace_by_position(result, std::move(col_res));
294
589
        } else if (!left_is_const && right_is_const) {
295
589
            auto col_res = ColumnUInt8::create();
296
297
589
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
589
            vec_res.resize(col_left->size());
299
589
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
589
                              typename PrimitiveTypeTraits<PT>::CppType,
301
589
                              Op<PT>>::vector_constant(col_left->get_data(),
302
589
                                                       col_right->get_element(0), vec_res);
303
304
589
            block.replace_by_position(result, std::move(col_res));
305
589
        } 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
692
        return Status::OK();
318
692
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
6.28k
                            const ColumnPtr& col_right_ptr) const {
275
6.28k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
6.28k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
6.28k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
6.28k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
6.28k
        DCHECK(!(left_is_const && right_is_const));
282
283
6.28k
        if (!left_is_const && !right_is_const) {
284
319
            auto col_res = ColumnUInt8::create();
285
286
319
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
319
            vec_res.resize(col_left->get_data().size());
288
319
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
319
                              typename PrimitiveTypeTraits<PT>::CppType,
290
319
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
319
                                                     vec_res);
292
293
319
            block.replace_by_position(result, std::move(col_res));
294
5.96k
        } else if (!left_is_const && right_is_const) {
295
5.95k
            auto col_res = ColumnUInt8::create();
296
297
5.95k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
5.95k
            vec_res.resize(col_left->size());
299
5.95k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
5.95k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
5.95k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
5.95k
                                                       col_right->get_element(0), vec_res);
303
304
5.95k
            block.replace_by_position(result, std::move(col_res));
305
5.95k
        } 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.28k
        return Status::OK();
318
6.28k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
9.40k
                            const ColumnPtr& col_right_ptr) const {
275
9.40k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
9.40k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
9.40k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
9.40k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
9.40k
        DCHECK(!(left_is_const && right_is_const));
282
283
9.40k
        if (!left_is_const && !right_is_const) {
284
449
            auto col_res = ColumnUInt8::create();
285
286
449
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
449
            vec_res.resize(col_left->get_data().size());
288
449
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
449
                              typename PrimitiveTypeTraits<PT>::CppType,
290
449
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
449
                                                     vec_res);
292
293
449
            block.replace_by_position(result, std::move(col_res));
294
8.95k
        } else if (!left_is_const && right_is_const) {
295
8.95k
            auto col_res = ColumnUInt8::create();
296
297
8.95k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
8.95k
            vec_res.resize(col_left->size());
299
8.95k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
8.95k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
8.95k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
8.95k
                                                       col_right->get_element(0), vec_res);
303
304
8.95k
            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
9.40k
        return Status::OK();
318
9.40k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
114
                            const ColumnPtr& col_right_ptr) const {
275
114
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
114
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
114
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
114
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
114
        DCHECK(!(left_is_const && right_is_const));
282
283
114
        if (!left_is_const && !right_is_const) {
284
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
74
        } 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
114
        return Status::OK();
318
114
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
18
                            const ColumnPtr& col_right_ptr) const {
275
18
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
18
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
18
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
18
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
18
        DCHECK(!(left_is_const && right_is_const));
282
283
18
        if (!left_is_const && !right_is_const) {
284
5
            auto col_res = ColumnUInt8::create();
285
286
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
5
            vec_res.resize(col_left->get_data().size());
288
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
5
                              typename PrimitiveTypeTraits<PT>::CppType,
290
5
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
5
                                                     vec_res);
292
293
5
            block.replace_by_position(result, std::move(col_res));
294
13
        } else if (!left_is_const && right_is_const) {
295
13
            auto col_res = ColumnUInt8::create();
296
297
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
13
            vec_res.resize(col_left->size());
299
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
13
                              typename PrimitiveTypeTraits<PT>::CppType,
301
13
                              Op<PT>>::vector_constant(col_left->get_data(),
302
13
                                                       col_right->get_element(0), vec_res);
303
304
13
            block.replace_by_position(result, std::move(col_res));
305
13
        } 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
18
        return Status::OK();
318
18
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
19
                            const ColumnPtr& col_right_ptr) const {
275
19
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
19
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
19
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
19
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
19
        DCHECK(!(left_is_const && right_is_const));
282
283
19
        if (!left_is_const && !right_is_const) {
284
13
            auto col_res = ColumnUInt8::create();
285
286
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
13
            vec_res.resize(col_left->get_data().size());
288
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
13
                              typename PrimitiveTypeTraits<PT>::CppType,
290
13
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
13
                                                     vec_res);
292
293
13
            block.replace_by_position(result, std::move(col_res));
294
13
        } 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
19
        return Status::OK();
318
19
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
89
                            const ColumnPtr& col_right_ptr) const {
275
89
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
89
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
89
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
89
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
89
        DCHECK(!(left_is_const && right_is_const));
282
283
89
        if (!left_is_const && !right_is_const) {
284
85
            auto col_res = ColumnUInt8::create();
285
286
85
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
85
            vec_res.resize(col_left->get_data().size());
288
85
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
85
                              typename PrimitiveTypeTraits<PT>::CppType,
290
85
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
85
                                                     vec_res);
292
293
85
            block.replace_by_position(result, std::move(col_res));
294
85
        } 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
89
        return Status::OK();
318
89
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
286
                            const ColumnPtr& col_right_ptr) const {
275
286
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
286
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
286
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
286
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
286
        DCHECK(!(left_is_const && right_is_const));
282
283
286
        if (!left_is_const && !right_is_const) {
284
94
            auto col_res = ColumnUInt8::create();
285
286
94
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
94
            vec_res.resize(col_left->get_data().size());
288
94
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
94
                              typename PrimitiveTypeTraits<PT>::CppType,
290
94
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
94
                                                     vec_res);
292
293
94
            block.replace_by_position(result, std::move(col_res));
294
192
        } else if (!left_is_const && right_is_const) {
295
192
            auto col_res = ColumnUInt8::create();
296
297
192
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
192
            vec_res.resize(col_left->size());
299
192
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
192
                              typename PrimitiveTypeTraits<PT>::CppType,
301
192
                              Op<PT>>::vector_constant(col_left->get_data(),
302
192
                                                       col_right->get_element(0), vec_res);
303
304
192
            block.replace_by_position(result, std::move(col_res));
305
192
        } 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
286
        return Status::OK();
318
286
    }
_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.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
563
            auto col_res = ColumnUInt8::create();
285
286
563
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
563
            vec_res.resize(col_left->get_data().size());
288
563
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
563
                              typename PrimitiveTypeTraits<PT>::CppType,
290
563
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
563
                                                     vec_res);
292
293
563
            block.replace_by_position(result, std::move(col_res));
294
563
        } else if (!left_is_const && right_is_const) {
295
547
            auto col_res = ColumnUInt8::create();
296
297
547
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
547
            vec_res.resize(col_left->size());
299
547
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
547
                              typename PrimitiveTypeTraits<PT>::CppType,
301
547
                              Op<PT>>::vector_constant(col_left->get_data(),
302
547
                                                       col_right->get_element(0), vec_res);
303
304
547
            block.replace_by_position(result, std::move(col_res));
305
547
        } 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_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
961
                            const ColumnPtr& col_right_ptr) const {
275
961
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
961
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
961
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
961
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
961
        DCHECK(!(left_is_const && right_is_const));
282
283
961
        if (!left_is_const && !right_is_const) {
284
419
            auto col_res = ColumnUInt8::create();
285
286
419
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
419
            vec_res.resize(col_left->get_data().size());
288
419
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
419
                              typename PrimitiveTypeTraits<PT>::CppType,
290
419
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
419
                                                     vec_res);
292
293
419
            block.replace_by_position(result, std::move(col_res));
294
542
        } else if (!left_is_const && right_is_const) {
295
542
            auto col_res = ColumnUInt8::create();
296
297
542
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
542
            vec_res.resize(col_left->size());
299
542
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
542
                              typename PrimitiveTypeTraits<PT>::CppType,
301
542
                              Op<PT>>::vector_constant(col_left->get_data(),
302
542
                                                       col_right->get_element(0), vec_res);
303
304
542
            block.replace_by_position(result, std::move(col_res));
305
542
        } 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
961
        return Status::OK();
318
961
    }
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.12k
                            const ColumnPtr& col_right_ptr) const {
275
1.12k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.12k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.12k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.12k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.12k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.12k
        if (!left_is_const && !right_is_const) {
284
1.01k
            auto col_res = ColumnUInt8::create();
285
286
1.01k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.01k
            vec_res.resize(col_left->get_data().size());
288
1.01k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.01k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.01k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.01k
                                                     vec_res);
292
293
1.01k
            block.replace_by_position(result, std::move(col_res));
294
1.01k
        } else if (!left_is_const && right_is_const) {
295
114
            auto col_res = ColumnUInt8::create();
296
297
114
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
114
            vec_res.resize(col_left->size());
299
114
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
114
                              typename PrimitiveTypeTraits<PT>::CppType,
301
114
                              Op<PT>>::vector_constant(col_left->get_data(),
302
114
                                                       col_right->get_element(0), vec_res);
303
304
114
            block.replace_by_position(result, std::move(col_res));
305
114
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.12k
        return Status::OK();
318
1.12k
    }
_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
844
                            const ColumnPtr& col_right_ptr) const {
275
844
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
844
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
844
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
844
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
844
        DCHECK(!(left_is_const && right_is_const));
282
283
845
        if (!left_is_const && !right_is_const) {
284
413
            auto col_res = ColumnUInt8::create();
285
286
413
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
413
            vec_res.resize(col_left->get_data().size());
288
413
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
413
                              typename PrimitiveTypeTraits<PT>::CppType,
290
413
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
413
                                                     vec_res);
292
293
413
            block.replace_by_position(result, std::move(col_res));
294
432
        } else if (!left_is_const && right_is_const) {
295
432
            auto col_res = ColumnUInt8::create();
296
297
432
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
432
            vec_res.resize(col_left->size());
299
432
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
432
                              typename PrimitiveTypeTraits<PT>::CppType,
301
432
                              Op<PT>>::vector_constant(col_left->get_data(),
302
432
                                                       col_right->get_element(0), vec_res);
303
304
432
            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
844
        return Status::OK();
318
844
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.13k
                            const ColumnPtr& col_right_ptr) const {
275
1.13k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.13k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.13k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.13k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.13k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.13k
        if (!left_is_const && !right_is_const) {
284
673
            auto col_res = ColumnUInt8::create();
285
286
673
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
673
            vec_res.resize(col_left->get_data().size());
288
673
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
673
                              typename PrimitiveTypeTraits<PT>::CppType,
290
673
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
673
                                                     vec_res);
292
293
673
            block.replace_by_position(result, std::move(col_res));
294
673
        } 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
463
        } 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.13k
        return Status::OK();
318
1.13k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
7.90k
                            const ColumnPtr& col_right_ptr) const {
275
7.90k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
7.90k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
7.90k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
7.90k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
7.90k
        DCHECK(!(left_is_const && right_is_const));
282
283
7.90k
        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
6.12k
        } else if (!left_is_const && right_is_const) {
295
6.12k
            auto col_res = ColumnUInt8::create();
296
297
6.12k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6.12k
            vec_res.resize(col_left->size());
299
6.12k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6.12k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6.12k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6.12k
                                                       col_right->get_element(0), vec_res);
303
304
6.12k
            block.replace_by_position(result, std::move(col_res));
305
6.12k
        } 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.90k
        return Status::OK();
318
7.90k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
8.26k
                            const ColumnPtr& col_right_ptr) const {
275
8.26k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
8.26k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
8.26k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
8.26k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
8.26k
        DCHECK(!(left_is_const && right_is_const));
282
283
8.26k
        if (!left_is_const && !right_is_const) {
284
181
            auto col_res = ColumnUInt8::create();
285
286
181
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
181
            vec_res.resize(col_left->get_data().size());
288
181
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
181
                              typename PrimitiveTypeTraits<PT>::CppType,
290
181
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
181
                                                     vec_res);
292
293
181
            block.replace_by_position(result, std::move(col_res));
294
8.08k
        } else if (!left_is_const && right_is_const) {
295
8.08k
            auto col_res = ColumnUInt8::create();
296
297
8.08k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
8.08k
            vec_res.resize(col_left->size());
299
8.08k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
8.08k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
8.08k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
8.08k
                                                       col_right->get_element(0), vec_res);
303
304
8.08k
            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
8.26k
        return Status::OK();
318
8.26k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
247
                            const ColumnPtr& col_right_ptr) const {
275
247
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
247
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
247
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
247
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
247
        DCHECK(!(left_is_const && right_is_const));
282
283
247
        if (!left_is_const && !right_is_const) {
284
40
            auto col_res = ColumnUInt8::create();
285
286
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
40
            vec_res.resize(col_left->get_data().size());
288
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
40
                              typename PrimitiveTypeTraits<PT>::CppType,
290
40
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
40
                                                     vec_res);
292
293
40
            block.replace_by_position(result, std::move(col_res));
294
207
        } else if (!left_is_const && right_is_const) {
295
207
            auto col_res = ColumnUInt8::create();
296
297
207
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
207
            vec_res.resize(col_left->size());
299
207
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
207
                              typename PrimitiveTypeTraits<PT>::CppType,
301
207
                              Op<PT>>::vector_constant(col_left->get_data(),
302
207
                                                       col_right->get_element(0), vec_res);
303
304
207
            block.replace_by_position(result, std::move(col_res));
305
207
        } 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
247
        return Status::OK();
318
247
    }
_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
231
                            const ColumnPtr& col_right_ptr) const {
275
231
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
231
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
231
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
231
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
231
        DCHECK(!(left_is_const && right_is_const));
282
283
231
        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
211
        } else if (!left_is_const && right_is_const) {
295
211
            auto col_res = ColumnUInt8::create();
296
297
211
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
211
            vec_res.resize(col_left->size());
299
211
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
211
                              typename PrimitiveTypeTraits<PT>::CppType,
301
211
                              Op<PT>>::vector_constant(col_left->get_data(),
302
211
                                                       col_right->get_element(0), vec_res);
303
304
211
            block.replace_by_position(result, std::move(col_res));
305
211
        } 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
231
        return Status::OK();
318
231
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.74k
                            const ColumnPtr& col_right_ptr) const {
275
1.74k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.74k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.74k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.74k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.74k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.74k
        if (!left_is_const && !right_is_const) {
284
51
            auto col_res = ColumnUInt8::create();
285
286
51
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
51
            vec_res.resize(col_left->get_data().size());
288
51
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
51
                              typename PrimitiveTypeTraits<PT>::CppType,
290
51
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
51
                                                     vec_res);
292
293
51
            block.replace_by_position(result, std::move(col_res));
294
1.68k
        } else if (!left_is_const && right_is_const) {
295
1.68k
            auto col_res = ColumnUInt8::create();
296
297
1.68k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.68k
            vec_res.resize(col_left->size());
299
1.68k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.68k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.68k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.68k
                                                       col_right->get_element(0), vec_res);
303
304
1.68k
            block.replace_by_position(result, std::move(col_res));
305
1.68k
        } 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.74k
        return Status::OK();
318
1.74k
    }
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
124
                            const ColumnPtr& col_right_ptr) const {
275
124
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
124
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
124
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
124
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
124
        DCHECK(!(left_is_const && right_is_const));
282
283
124
        if (!left_is_const && !right_is_const) {
284
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
124
        } else if (!left_is_const && right_is_const) {
295
124
            auto col_res = ColumnUInt8::create();
296
297
124
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
124
            vec_res.resize(col_left->size());
299
124
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
124
                              typename PrimitiveTypeTraits<PT>::CppType,
301
124
                              Op<PT>>::vector_constant(col_left->get_data(),
302
124
                                                       col_right->get_element(0), vec_res);
303
304
124
            block.replace_by_position(result, std::move(col_res));
305
124
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
124
        return Status::OK();
318
124
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.48k
                            const ColumnPtr& col_right_ptr) const {
275
1.48k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.48k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.48k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.48k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.48k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.48k
        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.47k
        } else if (!left_is_const && right_is_const) {
295
1.47k
            auto col_res = ColumnUInt8::create();
296
297
1.47k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.47k
            vec_res.resize(col_left->size());
299
1.47k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.47k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.47k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.47k
                                                       col_right->get_element(0), vec_res);
303
304
1.47k
            block.replace_by_position(result, std::move(col_res));
305
1.47k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.48k
        return Status::OK();
318
1.48k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
481
                            const ColumnPtr& col_right_ptr) const {
275
481
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
481
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
481
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
481
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
481
        DCHECK(!(left_is_const && right_is_const));
282
283
481
        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
471
        } else if (!left_is_const && right_is_const) {
295
471
            auto col_res = ColumnUInt8::create();
296
297
471
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
471
            vec_res.resize(col_left->size());
299
471
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
471
                              typename PrimitiveTypeTraits<PT>::CppType,
301
471
                              Op<PT>>::vector_constant(col_left->get_data(),
302
471
                                                       col_right->get_element(0), vec_res);
303
304
471
            block.replace_by_position(result, std::move(col_res));
305
471
        } 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
481
        return Status::OK();
318
481
    }
_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
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
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
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
52
        return Status::OK();
318
52
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
61
                            const ColumnPtr& col_right_ptr) const {
275
61
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
61
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
61
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
61
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
61
        DCHECK(!(left_is_const && right_is_const));
282
283
61
        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
61
        } else if (!left_is_const && right_is_const) {
295
61
            auto col_res = ColumnUInt8::create();
296
297
61
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
61
            vec_res.resize(col_left->size());
299
61
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
61
                              typename PrimitiveTypeTraits<PT>::CppType,
301
61
                              Op<PT>>::vector_constant(col_left->get_data(),
302
61
                                                       col_right->get_element(0), vec_res);
303
304
61
            block.replace_by_position(result, std::move(col_res));
305
61
        } 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
61
        return Status::OK();
318
61
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
20.2k
                            const ColumnPtr& col_right_ptr) const {
275
20.2k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
20.2k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
20.2k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
20.2k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
20.2k
        DCHECK(!(left_is_const && right_is_const));
282
283
20.2k
        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
20.2k
        } else if (!left_is_const && right_is_const) {
295
20.2k
            auto col_res = ColumnUInt8::create();
296
297
20.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
20.2k
            vec_res.resize(col_left->size());
299
20.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
20.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
20.2k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
20.2k
                                                       col_right->get_element(0), vec_res);
303
304
20.2k
            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
20.2k
        return Status::OK();
318
20.2k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
437
                            const ColumnPtr& col_right_ptr) const {
275
437
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
437
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
437
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
437
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
437
        DCHECK(!(left_is_const && right_is_const));
282
283
437
        if (!left_is_const && !right_is_const) {
284
19
            auto col_res = ColumnUInt8::create();
285
286
19
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
19
            vec_res.resize(col_left->get_data().size());
288
19
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
19
                              typename PrimitiveTypeTraits<PT>::CppType,
290
19
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
19
                                                     vec_res);
292
293
19
            block.replace_by_position(result, std::move(col_res));
294
418
        } else if (!left_is_const && right_is_const) {
295
418
            auto col_res = ColumnUInt8::create();
296
297
418
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
418
            vec_res.resize(col_left->size());
299
418
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
418
                              typename PrimitiveTypeTraits<PT>::CppType,
301
418
                              Op<PT>>::vector_constant(col_left->get_data(),
302
418
                                                       col_right->get_element(0), vec_res);
303
304
418
            block.replace_by_position(result, std::move(col_res));
305
418
        } 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
437
        return Status::OK();
318
437
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
46
                            const ColumnPtr& col_right_ptr) const {
275
46
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
46
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
46
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
46
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
46
        DCHECK(!(left_is_const && right_is_const));
282
283
46
        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
46
        } else if (!left_is_const && right_is_const) {
295
46
            auto col_res = ColumnUInt8::create();
296
297
46
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
46
            vec_res.resize(col_left->size());
299
46
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
46
                              typename PrimitiveTypeTraits<PT>::CppType,
301
46
                              Op<PT>>::vector_constant(col_left->get_data(),
302
46
                                                       col_right->get_element(0), vec_res);
303
304
46
            block.replace_by_position(result, std::move(col_res));
305
46
        } 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
46
        return Status::OK();
318
46
    }
_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
86
                            const ColumnPtr& col_right_ptr) const {
275
86
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
86
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
86
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
86
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
86
        DCHECK(!(left_is_const && right_is_const));
282
283
86
        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
66
        } else if (!left_is_const && right_is_const) {
295
66
            auto col_res = ColumnUInt8::create();
296
297
66
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
66
            vec_res.resize(col_left->size());
299
66
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
66
                              typename PrimitiveTypeTraits<PT>::CppType,
301
66
                              Op<PT>>::vector_constant(col_left->get_data(),
302
66
                                                       col_right->get_element(0), vec_res);
303
304
66
            block.replace_by_position(result, std::move(col_res));
305
66
        } 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
86
        return Status::OK();
318
86
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
165
                            const ColumnPtr& col_right_ptr) const {
275
165
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
165
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
165
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
165
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
165
        DCHECK(!(left_is_const && right_is_const));
282
283
165
        if (!left_is_const && !right_is_const) {
284
34
            auto col_res = ColumnUInt8::create();
285
286
34
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
34
            vec_res.resize(col_left->get_data().size());
288
34
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
34
                              typename PrimitiveTypeTraits<PT>::CppType,
290
34
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
34
                                                     vec_res);
292
293
34
            block.replace_by_position(result, std::move(col_res));
294
131
        } else if (!left_is_const && right_is_const) {
295
131
            auto col_res = ColumnUInt8::create();
296
297
131
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
131
            vec_res.resize(col_left->size());
299
131
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
131
                              typename PrimitiveTypeTraits<PT>::CppType,
301
131
                              Op<PT>>::vector_constant(col_left->get_data(),
302
131
                                                       col_right->get_element(0), vec_res);
303
304
131
            block.replace_by_position(result, std::move(col_res));
305
131
        } 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
165
        return Status::OK();
318
165
    }
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
79
                            const ColumnPtr& col_right_ptr) const {
275
79
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
79
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
79
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
79
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
79
        DCHECK(!(left_is_const && right_is_const));
282
283
79
        if (!left_is_const && !right_is_const) {
284
79
            auto col_res = ColumnUInt8::create();
285
286
79
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
79
            vec_res.resize(col_left->get_data().size());
288
79
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
79
                              typename PrimitiveTypeTraits<PT>::CppType,
290
79
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
79
                                                     vec_res);
292
293
79
            block.replace_by_position(result, std::move(col_res));
294
79
        } 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
79
        return Status::OK();
318
79
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.05k
                            const ColumnPtr& col_right_ptr) const {
275
2.05k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.05k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.05k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.05k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.05k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.05k
        if (!left_is_const && !right_is_const) {
284
1.61k
            auto col_res = ColumnUInt8::create();
285
286
1.61k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.61k
            vec_res.resize(col_left->get_data().size());
288
1.61k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.61k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.61k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.61k
                                                     vec_res);
292
293
1.61k
            block.replace_by_position(result, std::move(col_res));
294
1.61k
        } else if (!left_is_const && right_is_const) {
295
443
            auto col_res = ColumnUInt8::create();
296
297
443
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
443
            vec_res.resize(col_left->size());
299
443
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
443
                              typename PrimitiveTypeTraits<PT>::CppType,
301
443
                              Op<PT>>::vector_constant(col_left->get_data(),
302
443
                                                       col_right->get_element(0), vec_res);
303
304
443
            block.replace_by_position(result, std::move(col_res));
305
443
        } 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.05k
        return Status::OK();
318
2.05k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
455
                            const ColumnPtr& col_right_ptr) const {
275
455
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
455
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
455
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
455
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
455
        DCHECK(!(left_is_const && right_is_const));
282
283
455
        if (!left_is_const && !right_is_const) {
284
244
            auto col_res = ColumnUInt8::create();
285
286
244
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
244
            vec_res.resize(col_left->get_data().size());
288
244
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
244
                              typename PrimitiveTypeTraits<PT>::CppType,
290
244
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
244
                                                     vec_res);
292
293
244
            block.replace_by_position(result, std::move(col_res));
294
244
        } else if (!left_is_const && right_is_const) {
295
211
            auto col_res = ColumnUInt8::create();
296
297
211
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
211
            vec_res.resize(col_left->size());
299
211
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
211
                              typename PrimitiveTypeTraits<PT>::CppType,
301
211
                              Op<PT>>::vector_constant(col_left->get_data(),
302
211
                                                       col_right->get_element(0), vec_res);
303
304
211
            block.replace_by_position(result, std::move(col_res));
305
211
        } 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
455
        return Status::OK();
318
455
    }
_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
914
                            const ColumnPtr& col_right_ptr) const {
275
914
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
914
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
914
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
914
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
914
        DCHECK(!(left_is_const && right_is_const));
282
283
915
        if (!left_is_const && !right_is_const) {
284
872
            auto col_res = ColumnUInt8::create();
285
286
872
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
872
            vec_res.resize(col_left->get_data().size());
288
872
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
872
                              typename PrimitiveTypeTraits<PT>::CppType,
290
872
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
872
                                                     vec_res);
292
293
872
            block.replace_by_position(result, std::move(col_res));
294
872
        } else if (!left_is_const && right_is_const) {
295
43
            auto col_res = ColumnUInt8::create();
296
297
43
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
43
            vec_res.resize(col_left->size());
299
43
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
43
                              typename PrimitiveTypeTraits<PT>::CppType,
301
43
                              Op<PT>>::vector_constant(col_left->get_data(),
302
43
                                                       col_right->get_element(0), vec_res);
303
304
43
            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
914
        return Status::OK();
318
914
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
198
                            const ColumnPtr& col_right_ptr) const {
275
198
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
198
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
198
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
198
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
198
        DCHECK(!(left_is_const && right_is_const));
282
283
198
        if (!left_is_const && !right_is_const) {
284
94
            auto col_res = ColumnUInt8::create();
285
286
94
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
94
            vec_res.resize(col_left->get_data().size());
288
94
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
94
                              typename PrimitiveTypeTraits<PT>::CppType,
290
94
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
94
                                                     vec_res);
292
293
94
            block.replace_by_position(result, std::move(col_res));
294
104
        } else if (!left_is_const && right_is_const) {
295
104
            auto col_res = ColumnUInt8::create();
296
297
104
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
104
            vec_res.resize(col_left->size());
299
104
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
104
                              typename PrimitiveTypeTraits<PT>::CppType,
301
104
                              Op<PT>>::vector_constant(col_left->get_data(),
302
104
                                                       col_right->get_element(0), vec_res);
303
304
104
            block.replace_by_position(result, std::move(col_res));
305
104
        } 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
198
        return Status::OK();
318
198
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.09k
                            const ColumnPtr& col_right_ptr) const {
275
2.09k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.09k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.09k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.09k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.09k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.09k
        if (!left_is_const && !right_is_const) {
284
294
            auto col_res = ColumnUInt8::create();
285
286
294
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
294
            vec_res.resize(col_left->get_data().size());
288
294
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
294
                              typename PrimitiveTypeTraits<PT>::CppType,
290
294
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
294
                                                     vec_res);
292
293
294
            block.replace_by_position(result, std::move(col_res));
294
1.80k
        } else if (!left_is_const && right_is_const) {
295
1.80k
            auto col_res = ColumnUInt8::create();
296
297
1.80k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.80k
            vec_res.resize(col_left->size());
299
1.80k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.80k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.80k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.80k
                                                       col_right->get_element(0), vec_res);
303
304
1.80k
            block.replace_by_position(result, std::move(col_res));
305
1.80k
        } 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.09k
        return Status::OK();
318
2.09k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.29k
                            const ColumnPtr& col_right_ptr) const {
275
1.29k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.29k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.29k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.29k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.29k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.29k
        if (!left_is_const && !right_is_const) {
284
273
            auto col_res = ColumnUInt8::create();
285
286
273
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
273
            vec_res.resize(col_left->get_data().size());
288
273
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
273
                              typename PrimitiveTypeTraits<PT>::CppType,
290
273
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
273
                                                     vec_res);
292
293
273
            block.replace_by_position(result, std::move(col_res));
294
1.02k
        } else if (!left_is_const && right_is_const) {
295
1.02k
            auto col_res = ColumnUInt8::create();
296
297
1.02k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.02k
            vec_res.resize(col_left->size());
299
1.02k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.02k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.02k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.02k
                                                       col_right->get_element(0), vec_res);
303
304
1.02k
            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.29k
        return Status::OK();
318
1.29k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
190
                            const ColumnPtr& col_right_ptr) const {
275
190
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
190
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
190
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
190
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
190
        DCHECK(!(left_is_const && right_is_const));
282
283
190
        if (!left_is_const && !right_is_const) {
284
172
            auto col_res = ColumnUInt8::create();
285
286
172
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
172
            vec_res.resize(col_left->get_data().size());
288
172
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
172
                              typename PrimitiveTypeTraits<PT>::CppType,
290
172
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
172
                                                     vec_res);
292
293
172
            block.replace_by_position(result, std::move(col_res));
294
172
        } 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
190
        return Status::OK();
318
190
    }
_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
140
                            const ColumnPtr& col_right_ptr) const {
275
140
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
140
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
140
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
140
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
140
        DCHECK(!(left_is_const && right_is_const));
282
283
140
        if (!left_is_const && !right_is_const) {
284
122
            auto col_res = ColumnUInt8::create();
285
286
122
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
122
            vec_res.resize(col_left->get_data().size());
288
122
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
122
                              typename PrimitiveTypeTraits<PT>::CppType,
290
122
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
122
                                                     vec_res);
292
293
122
            block.replace_by_position(result, std::move(col_res));
294
122
        } 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
140
        return Status::OK();
318
140
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
358
                            const ColumnPtr& col_right_ptr) const {
275
358
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
358
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
358
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
358
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
358
        DCHECK(!(left_is_const && right_is_const));
282
283
359
        if (!left_is_const && !right_is_const) {
284
159
            auto col_res = ColumnUInt8::create();
285
286
159
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
159
            vec_res.resize(col_left->get_data().size());
288
159
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
159
                              typename PrimitiveTypeTraits<PT>::CppType,
290
159
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
159
                                                     vec_res);
292
293
159
            block.replace_by_position(result, std::move(col_res));
294
200
        } else if (!left_is_const && right_is_const) {
295
200
            auto col_res = ColumnUInt8::create();
296
297
200
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
200
            vec_res.resize(col_left->size());
299
200
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
200
                              typename PrimitiveTypeTraits<PT>::CppType,
301
200
                              Op<PT>>::vector_constant(col_left->get_data(),
302
200
                                                       col_right->get_element(0), vec_res);
303
304
200
            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
358
        return Status::OK();
318
358
    }
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
114
                            const ColumnPtr& col_right_ptr) const {
275
114
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
114
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
114
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
114
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
114
        DCHECK(!(left_is_const && right_is_const));
282
283
114
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
116
        } else if (!left_is_const && right_is_const) {
295
116
            auto col_res = ColumnUInt8::create();
296
297
116
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
116
            vec_res.resize(col_left->size());
299
116
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
116
                              typename PrimitiveTypeTraits<PT>::CppType,
301
116
                              Op<PT>>::vector_constant(col_left->get_data(),
302
116
                                                       col_right->get_element(0), vec_res);
303
304
116
            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
114
        return Status::OK();
318
114
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
5.91k
                            const ColumnPtr& col_right_ptr) const {
275
5.91k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
5.91k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
5.91k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
5.91k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
5.91k
        DCHECK(!(left_is_const && right_is_const));
282
283
5.91k
        if (!left_is_const && !right_is_const) {
284
422
            auto col_res = ColumnUInt8::create();
285
286
422
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
422
            vec_res.resize(col_left->get_data().size());
288
422
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
422
                              typename PrimitiveTypeTraits<PT>::CppType,
290
422
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
422
                                                     vec_res);
292
293
422
            block.replace_by_position(result, std::move(col_res));
294
5.48k
        } else if (!left_is_const && right_is_const) {
295
5.48k
            auto col_res = ColumnUInt8::create();
296
297
5.48k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
5.48k
            vec_res.resize(col_left->size());
299
5.48k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
5.48k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
5.48k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
5.48k
                                                       col_right->get_element(0), vec_res);
303
304
5.48k
            block.replace_by_position(result, std::move(col_res));
305
5.48k
        } 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
5.91k
        return Status::OK();
318
5.91k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
266
                            const ColumnPtr& col_right_ptr) const {
275
266
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
266
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
266
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
266
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
266
        DCHECK(!(left_is_const && right_is_const));
282
283
266
        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
266
        } else if (!left_is_const && right_is_const) {
295
266
            auto col_res = ColumnUInt8::create();
296
297
266
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
266
            vec_res.resize(col_left->size());
299
266
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
266
                              typename PrimitiveTypeTraits<PT>::CppType,
301
266
                              Op<PT>>::vector_constant(col_left->get_data(),
302
266
                                                       col_right->get_element(0), vec_res);
303
304
266
            block.replace_by_position(result, std::move(col_res));
305
266
        } 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
266
        return Status::OK();
318
266
    }
_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
76
                            const ColumnPtr& col_right_ptr) const {
275
76
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
76
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
76
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
76
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
76
        DCHECK(!(left_is_const && right_is_const));
282
283
76
        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
75
        } else if (!left_is_const && right_is_const) {
295
75
            auto col_res = ColumnUInt8::create();
296
297
75
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
75
            vec_res.resize(col_left->size());
299
75
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
75
                              typename PrimitiveTypeTraits<PT>::CppType,
301
75
                              Op<PT>>::vector_constant(col_left->get_data(),
302
75
                                                       col_right->get_element(0), vec_res);
303
304
75
            block.replace_by_position(result, std::move(col_res));
305
75
        } 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
76
        return Status::OK();
318
76
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
86
                            const ColumnPtr& col_right_ptr) const {
275
86
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
86
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
86
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
86
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
86
        DCHECK(!(left_is_const && right_is_const));
282
283
86
        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
86
        } else if (!left_is_const && right_is_const) {
295
86
            auto col_res = ColumnUInt8::create();
296
297
86
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
86
            vec_res.resize(col_left->size());
299
86
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
86
                              typename PrimitiveTypeTraits<PT>::CppType,
301
86
                              Op<PT>>::vector_constant(col_left->get_data(),
302
86
                                                       col_right->get_element(0), vec_res);
303
304
86
            block.replace_by_position(result, std::move(col_res));
305
86
        } 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
86
        return Status::OK();
318
86
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
20.3k
                            const ColumnPtr& col_right_ptr) const {
275
20.3k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
20.3k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
20.3k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
20.3k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
20.3k
        DCHECK(!(left_is_const && right_is_const));
282
283
20.3k
        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
20.2k
        } else if (!left_is_const && right_is_const) {
295
20.2k
            auto col_res = ColumnUInt8::create();
296
297
20.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
20.2k
            vec_res.resize(col_left->size());
299
20.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
20.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
20.2k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
20.2k
                                                       col_right->get_element(0), vec_res);
303
304
20.2k
            block.replace_by_position(result, std::move(col_res));
305
20.2k
        } 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
20.3k
        return Status::OK();
318
20.3k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
401
                            const ColumnPtr& col_right_ptr) const {
275
401
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
401
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
401
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
401
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
401
        DCHECK(!(left_is_const && right_is_const));
282
283
401
        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
362
        } else if (!left_is_const && right_is_const) {
295
362
            auto col_res = ColumnUInt8::create();
296
297
362
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
362
            vec_res.resize(col_left->size());
299
362
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
362
                              typename PrimitiveTypeTraits<PT>::CppType,
301
362
                              Op<PT>>::vector_constant(col_left->get_data(),
302
362
                                                       col_right->get_element(0), vec_res);
303
304
362
            block.replace_by_position(result, std::move(col_res));
305
362
        } 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
401
        return Status::OK();
318
401
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
38
                            const ColumnPtr& col_right_ptr) const {
275
38
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
38
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
38
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
38
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
38
        DCHECK(!(left_is_const && right_is_const));
282
283
38
        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
38
        } else if (!left_is_const && right_is_const) {
295
38
            auto col_res = ColumnUInt8::create();
296
297
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
38
            vec_res.resize(col_left->size());
299
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
38
                              typename PrimitiveTypeTraits<PT>::CppType,
301
38
                              Op<PT>>::vector_constant(col_left->get_data(),
302
38
                                                       col_right->get_element(0), vec_res);
303
304
38
            block.replace_by_position(result, std::move(col_res));
305
38
        } 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
38
        return Status::OK();
318
38
    }
_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
80
                            const ColumnPtr& col_right_ptr) const {
275
80
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
80
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
80
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
80
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
80
        DCHECK(!(left_is_const && right_is_const));
282
283
80
        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
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
80
        return Status::OK();
318
80
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
159
                            const ColumnPtr& col_right_ptr) const {
275
159
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
159
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
159
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
159
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
159
        DCHECK(!(left_is_const && right_is_const));
282
283
159
        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
139
        } else if (!left_is_const && right_is_const) {
295
139
            auto col_res = ColumnUInt8::create();
296
297
139
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
139
            vec_res.resize(col_left->size());
299
139
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
139
                              typename PrimitiveTypeTraits<PT>::CppType,
301
139
                              Op<PT>>::vector_constant(col_left->get_data(),
302
139
                                                       col_right->get_element(0), vec_res);
303
304
139
            block.replace_by_position(result, std::move(col_res));
305
139
        } 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
159
        return Status::OK();
318
159
    }
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
12.5k
                           const ColumnWithTypeAndName& col_right) const {
322
12.5k
        auto call = [&](const auto& type) -> bool {
323
12.5k
            using DispatchType = std::decay_t<decltype(type)>;
324
12.5k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
12.5k
                    block, result, col_left, col_right);
326
12.5k
            return true;
327
12.5k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
223
        auto call = [&](const auto& type) -> bool {
323
223
            using DispatchType = std::decay_t<decltype(type)>;
324
223
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
223
                    block, result, col_left, col_right);
326
223
            return true;
327
223
        };
_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.30k
        auto call = [&](const auto& type) -> bool {
323
1.30k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.30k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.30k
                    block, result, col_left, col_right);
326
1.30k
            return true;
327
1.30k
        };
_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
324
        auto call = [&](const auto& type) -> bool {
323
324
            using DispatchType = std::decay_t<decltype(type)>;
324
324
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
324
                    block, result, col_left, col_right);
326
324
            return true;
327
324
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
30
        auto call = [&](const auto& type) -> bool {
323
30
            using DispatchType = std::decay_t<decltype(type)>;
324
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
30
                    block, result, col_left, col_right);
326
30
            return true;
327
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
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
4.11k
        auto call = [&](const auto& type) -> bool {
323
4.11k
            using DispatchType = std::decay_t<decltype(type)>;
324
4.11k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
4.11k
                    block, result, col_left, col_right);
326
4.11k
            return true;
327
4.11k
        };
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.76k
        auto call = [&](const auto& type) -> bool {
323
1.76k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.76k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.76k
                    block, result, col_left, col_right);
326
1.76k
            return true;
327
1.76k
        };
_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
6
        auto call = [&](const auto& type) -> bool {
323
6
            using DispatchType = std::decay_t<decltype(type)>;
324
6
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
6
                    block, result, col_left, col_right);
326
6
            return true;
327
6
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
253
        auto call = [&](const auto& type) -> bool {
323
253
            using DispatchType = std::decay_t<decltype(type)>;
324
253
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
253
                    block, result, col_left, col_right);
326
253
            return true;
327
253
        };
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
40
        auto call = [&](const auto& type) -> bool {
323
40
            using DispatchType = std::decay_t<decltype(type)>;
324
40
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
40
                    block, result, col_left, col_right);
326
40
            return true;
327
40
        };
_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
214
        auto call = [&](const auto& type) -> bool {
323
214
            using DispatchType = std::decay_t<decltype(type)>;
324
214
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
214
                    block, result, col_left, col_right);
326
214
            return true;
327
214
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
230
        auto call = [&](const auto& type) -> bool {
323
230
            using DispatchType = std::decay_t<decltype(type)>;
324
230
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
230
                    block, result, col_left, col_right);
326
230
            return true;
327
230
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
515
        auto call = [&](const auto& type) -> bool {
323
515
            using DispatchType = std::decay_t<decltype(type)>;
324
515
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
515
                    block, result, col_left, col_right);
326
515
            return true;
327
515
        };
_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
11
        auto call = [&](const auto& type) -> bool {
323
11
            using DispatchType = std::decay_t<decltype(type)>;
324
11
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
11
                    block, result, col_left, col_right);
326
11
            return true;
327
11
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
2.40k
        auto call = [&](const auto& type) -> bool {
323
2.40k
            using DispatchType = std::decay_t<decltype(type)>;
324
2.40k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
2.40k
                    block, result, col_left, col_right);
326
2.40k
            return true;
327
2.40k
        };
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
702
        auto call = [&](const auto& type) -> bool {
323
702
            using DispatchType = std::decay_t<decltype(type)>;
324
702
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
702
                    block, result, col_left, col_right);
326
702
            return true;
327
702
        };
_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
12.5k
        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
12.5k
        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
12.5k
        return Status::OK();
340
12.5k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.79k
                           const ColumnWithTypeAndName& col_right) const {
322
1.79k
        auto call = [&](const auto& type) -> bool {
323
1.79k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.79k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.79k
                    block, result, col_left, col_right);
326
1.79k
            return true;
327
1.79k
        };
328
329
1.79k
        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.79k
        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.79k
        return Status::OK();
340
1.79k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
415
                           const ColumnWithTypeAndName& col_right) const {
322
415
        auto call = [&](const auto& type) -> bool {
323
415
            using DispatchType = std::decay_t<decltype(type)>;
324
415
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
415
                    block, result, col_left, col_right);
326
415
            return true;
327
415
        };
328
329
415
        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
415
        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
415
        return Status::OK();
340
415
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
5.91k
                           const ColumnWithTypeAndName& col_right) const {
322
5.91k
        auto call = [&](const auto& type) -> bool {
323
5.91k
            using DispatchType = std::decay_t<decltype(type)>;
324
5.91k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
5.91k
                    block, result, col_left, col_right);
326
5.91k
            return true;
327
5.91k
        };
328
329
5.91k
        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.91k
        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.91k
        return Status::OK();
340
5.91k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
320
                           const ColumnWithTypeAndName& col_right) const {
322
320
        auto call = [&](const auto& type) -> bool {
323
320
            using DispatchType = std::decay_t<decltype(type)>;
324
320
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
320
                    block, result, col_left, col_right);
326
320
            return true;
327
320
        };
328
329
320
        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
320
        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
320
        return Status::OK();
340
320
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
959
                           const ColumnWithTypeAndName& col_right) const {
322
959
        auto call = [&](const auto& type) -> bool {
323
959
            using DispatchType = std::decay_t<decltype(type)>;
324
959
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
959
                    block, result, col_left, col_right);
326
959
            return true;
327
959
        };
328
329
959
        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
959
        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
959
        return Status::OK();
340
959
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
3.13k
                           const ColumnWithTypeAndName& col_right) const {
322
3.13k
        auto call = [&](const auto& type) -> bool {
323
3.13k
            using DispatchType = std::decay_t<decltype(type)>;
324
3.13k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
3.13k
                    block, result, col_left, col_right);
326
3.13k
            return true;
327
3.13k
        };
328
329
3.13k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
3.13k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
3.13k
        return Status::OK();
340
3.13k
    }
341
342
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
343
23.0k
                          const IColumn* c1) const {
344
23.0k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
23.0k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
23.0k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
23.0k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
23.0k
        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
23.0k
        DCHECK(!(c0_const && c1_const));
353
23.0k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
23.0k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
23.0k
        ColumnString::Offset c0_const_size = 0;
356
23.0k
        ColumnString::Offset c1_const_size = 0;
357
358
23.0k
        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
23.0k
        if (c1_const) {
372
22.1k
            const ColumnString* c1_const_string =
373
22.1k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
22.1k
            if (c1_const_string) {
376
22.1k
                c1_const_chars = &c1_const_string->get_chars();
377
22.1k
                c1_const_size = c1_const_string->get_offsets()[0];
378
22.1k
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
22.1k
        }
383
384
23.0k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
23.0k
        auto c_res = ColumnUInt8::create();
387
23.0k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
23.0k
        vec_res.resize(c0->size());
389
390
23.0k
        if (c0_string && c1_string) {
391
929
            StringImpl::string_vector_string_vector(
392
929
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
929
                    c1_string->get_offsets(), vec_res);
394
22.1k
        } else if (c0_string && c1_const) {
395
22.1k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
22.1k
                                               *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
23.0k
        block.replace_by_position(result, std::move(c_res));
406
23.0k
        return Status::OK();
407
23.0k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
20.4k
                          const IColumn* c1) const {
344
20.4k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
20.4k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
20.4k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
20.4k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
20.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
20.4k
        DCHECK(!(c0_const && c1_const));
353
20.4k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
20.4k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
20.4k
        ColumnString::Offset c0_const_size = 0;
356
20.4k
        ColumnString::Offset c1_const_size = 0;
357
358
20.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
20.4k
        if (c1_const) {
372
19.9k
            const ColumnString* c1_const_string =
373
19.9k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
19.9k
            if (c1_const_string) {
376
19.9k
                c1_const_chars = &c1_const_string->get_chars();
377
19.9k
                c1_const_size = c1_const_string->get_offsets()[0];
378
19.9k
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
19.9k
        }
383
384
20.4k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
20.4k
        auto c_res = ColumnUInt8::create();
387
20.4k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
20.4k
        vec_res.resize(c0->size());
389
390
20.4k
        if (c0_string && c1_string) {
391
467
            StringImpl::string_vector_string_vector(
392
467
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
467
                    c1_string->get_offsets(), vec_res);
394
19.9k
        } else if (c0_string && c1_const) {
395
19.9k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
19.9k
                                               *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
20.4k
        block.replace_by_position(result, std::move(c_res));
406
20.4k
        return Status::OK();
407
20.4k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
737
                          const IColumn* c1) const {
344
737
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
737
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
737
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
737
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
737
        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
737
        DCHECK(!(c0_const && c1_const));
353
737
        const ColumnString::Chars* c0_const_chars = nullptr;
354
737
        const ColumnString::Chars* c1_const_chars = nullptr;
355
737
        ColumnString::Offset c0_const_size = 0;
356
737
        ColumnString::Offset c1_const_size = 0;
357
358
737
        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
737
        if (c1_const) {
372
736
            const ColumnString* c1_const_string =
373
736
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
736
            if (c1_const_string) {
376
736
                c1_const_chars = &c1_const_string->get_chars();
377
736
                c1_const_size = c1_const_string->get_offsets()[0];
378
736
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
736
        }
383
384
737
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
737
        auto c_res = ColumnUInt8::create();
387
737
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
737
        vec_res.resize(c0->size());
389
390
737
        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
736
        } else if (c0_string && c1_const) {
395
736
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
736
                                               *c1_const_chars, c1_const_size, vec_res);
397
736
        } 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
737
        block.replace_by_position(result, std::move(c_res));
406
737
        return Status::OK();
407
737
    }
_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
497
                          const IColumn* c1) const {
344
497
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
497
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
497
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
497
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
497
        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
497
        DCHECK(!(c0_const && c1_const));
353
497
        const ColumnString::Chars* c0_const_chars = nullptr;
354
497
        const ColumnString::Chars* c1_const_chars = nullptr;
355
497
        ColumnString::Offset c0_const_size = 0;
356
497
        ColumnString::Offset c1_const_size = 0;
357
358
497
        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
497
        if (c1_const) {
372
451
            const ColumnString* c1_const_string =
373
451
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
451
            if (c1_const_string) {
376
451
                c1_const_chars = &c1_const_string->get_chars();
377
451
                c1_const_size = c1_const_string->get_offsets()[0];
378
451
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
451
        }
383
384
497
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
497
        auto c_res = ColumnUInt8::create();
387
497
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
497
        vec_res.resize(c0->size());
389
390
497
        if (c0_string && c1_string) {
391
46
            StringImpl::string_vector_string_vector(
392
46
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
46
                    c1_string->get_offsets(), vec_res);
394
451
        } else if (c0_string && c1_const) {
395
451
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
451
                                               *c1_const_chars, c1_const_size, vec_res);
397
451
        } 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
497
        block.replace_by_position(result, std::move(c_res));
406
497
        return Status::OK();
407
497
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
627
                          const IColumn* c1) const {
344
627
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
627
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
627
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
627
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
628
        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
627
        DCHECK(!(c0_const && c1_const));
353
627
        const ColumnString::Chars* c0_const_chars = nullptr;
354
627
        const ColumnString::Chars* c1_const_chars = nullptr;
355
627
        ColumnString::Offset c0_const_size = 0;
356
627
        ColumnString::Offset c1_const_size = 0;
357
358
627
        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
627
        if (c1_const) {
372
214
            const ColumnString* c1_const_string =
373
214
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
214
            if (c1_const_string) {
376
214
                c1_const_chars = &c1_const_string->get_chars();
377
214
                c1_const_size = c1_const_string->get_offsets()[0];
378
214
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
214
        }
383
384
627
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
627
        auto c_res = ColumnUInt8::create();
387
627
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
627
        vec_res.resize(c0->size());
389
390
628
        if (c0_string && c1_string) {
391
413
            StringImpl::string_vector_string_vector(
392
413
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
413
                    c1_string->get_offsets(), vec_res);
394
413
        } 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
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
628
        block.replace_by_position(result, std::move(c_res));
406
628
        return Status::OK();
407
627
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
540
                          const IColumn* c1) const {
344
540
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
540
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
540
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
540
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
540
        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
540
        DCHECK(!(c0_const && c1_const));
353
540
        const ColumnString::Chars* c0_const_chars = nullptr;
354
540
        const ColumnString::Chars* c1_const_chars = nullptr;
355
540
        ColumnString::Offset c0_const_size = 0;
356
540
        ColumnString::Offset c1_const_size = 0;
357
358
540
        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
540
        if (c1_const) {
372
540
            const ColumnString* c1_const_string =
373
540
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
540
            if (c1_const_string) {
376
540
                c1_const_chars = &c1_const_string->get_chars();
377
540
                c1_const_size = c1_const_string->get_offsets()[0];
378
540
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
540
        }
383
384
540
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
540
        auto c_res = ColumnUInt8::create();
387
540
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
540
        vec_res.resize(c0->size());
389
390
540
        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
540
        } else if (c0_string && c1_const) {
395
540
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
540
                                               *c1_const_chars, c1_const_size, vec_res);
397
540
        } 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
540
        block.replace_by_position(result, std::move(c_res));
406
540
        return Status::OK();
407
540
    }
408
409
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
410
99
                                         const IColumn* c1) const {
411
99
        bool c0_const = is_column_const(*c0);
412
99
        bool c1_const = is_column_const(*c1);
413
414
99
        DCHECK(!(c0_const && c1_const));
415
416
99
        auto c_res = ColumnUInt8::create();
417
99
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
99
        vec_res.resize(c0->size());
419
420
99
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
99
        } else if (c1_const) {
423
90
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
90
        } else {
425
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
9
        }
427
428
99
        block.replace_by_position(result, std::move(c_res));
429
99
    }
_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
26
                                         const IColumn* c1) const {
411
26
        bool c0_const = is_column_const(*c0);
412
26
        bool c1_const = is_column_const(*c1);
413
414
26
        DCHECK(!(c0_const && c1_const));
415
416
26
        auto c_res = ColumnUInt8::create();
417
26
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
26
        vec_res.resize(c0->size());
419
420
26
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
26
        } else if (c1_const) {
423
25
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
25
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
26
        block.replace_by_position(result, std::move(c_res));
429
26
    }
_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
28
                                         const IColumn* c1) const {
411
28
        bool c0_const = is_column_const(*c0);
412
28
        bool c1_const = is_column_const(*c1);
413
414
28
        DCHECK(!(c0_const && c1_const));
415
416
28
        auto c_res = ColumnUInt8::create();
417
28
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
28
        vec_res.resize(c0->size());
419
420
28
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
28
        } else if (c1_const) {
423
28
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
28
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
28
        block.replace_by_position(result, std::move(c_res));
429
28
    }
430
431
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
432
99
                           const ColumnWithTypeAndName& c1) const {
433
99
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
99
        return Status::OK();
435
99
    }
_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
26
                           const ColumnWithTypeAndName& c1) const {
433
26
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
26
        return Status::OK();
435
26
    }
_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
28
                           const ColumnWithTypeAndName& c1) const {
433
28
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
28
        return Status::OK();
435
28
    }
436
437
public:
438
214
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
62
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
35
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
438
38
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
77
    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
500k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
426k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
1.33k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
440
6.62k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
30.9k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
440
3.31k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
32.1k
    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
500k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
500k
        return std::make_shared<DataTypeUInt8>();
445
500k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
426k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
426k
        return std::make_shared<DataTypeUInt8>();
445
426k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
1.33k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
1.33k
        return std::make_shared<DataTypeUInt8>();
445
1.33k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
6.62k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
6.62k
        return std::make_shared<DataTypeUInt8>();
445
6.62k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
31.0k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
31.0k
        return std::make_shared<DataTypeUInt8>();
445
31.0k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
3.31k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
3.31k
        return std::make_shared<DataTypeUInt8>();
445
3.31k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
32.1k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
32.1k
        return std::make_shared<DataTypeUInt8>();
445
32.1k
    }
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.73k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
1.73k
        DCHECK(arguments.size() == 1);
454
1.73k
        DCHECK(data_type_with_names.size() == 1);
455
1.73k
        DCHECK(iterators.size() == 1);
456
1.73k
        auto* iter = iterators[0];
457
1.73k
        auto data_type_with_name = data_type_with_names[0];
458
1.73k
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
1.73k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
424
            return Status::OK();
463
424
        }
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
851
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
851
        } else if (name_view == NameLess::name) {
469
111
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
345
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
247
        } else if (name_view == NameGreater::name) {
473
114
            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.30k
        if (segment_v2::is_range_query(query_type) &&
481
1.30k
            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.13k
        Field param_value;
486
1.13k
        arguments[0].column->get(0, param_value);
487
1.13k
        if (param_value.is_null()) {
488
1
            return Status::OK();
489
1
        }
490
1.13k
        auto param_type = arguments[0].type->get_primitive_type();
491
1.13k
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
1.13k
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
1.13k
                param_type, &param_value, query_param));
494
495
1.13k
        segment_v2::InvertedIndexParam param;
496
1.13k
        param.column_name = data_type_with_name.first;
497
1.13k
        param.column_type = data_type_with_name.second;
498
1.13k
        param.query_value = query_param->get_value();
499
1.13k
        param.query_type = query_type;
500
1.13k
        param.num_rows = num_rows;
501
1.13k
        param.roaring = std::make_shared<roaring::Roaring>();
502
1.13k
        param.analyzer_ctx = analyzer_ctx;
503
1.13k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
984
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
984
        if (iter->has_null()) {
506
979
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
979
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
979
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
979
        }
510
984
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
984
        bitmap_result = result;
512
984
        bitmap_result.mask_out_null();
513
514
984
        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
984
        return Status::OK();
521
984
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
847
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
847
        DCHECK(arguments.size() == 1);
454
847
        DCHECK(data_type_with_names.size() == 1);
455
847
        DCHECK(iterators.size() == 1);
456
847
        auto* iter = iterators[0];
457
847
        auto data_type_with_name = data_type_with_names[0];
458
847
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
847
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
66
            return Status::OK();
463
66
        }
464
781
        segment_v2::InvertedIndexQueryType query_type;
465
781
        std::string_view name_view(name);
466
781
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
781
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
781
        } 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
781
        if (segment_v2::is_range_query(query_type) &&
481
781
            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
781
        Field param_value;
486
781
        arguments[0].column->get(0, param_value);
487
781
        if (param_value.is_null()) {
488
1
            return Status::OK();
489
1
        }
490
780
        auto param_type = arguments[0].type->get_primitive_type();
491
780
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
780
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
780
                param_type, &param_value, query_param));
494
495
779
        segment_v2::InvertedIndexParam param;
496
779
        param.column_name = data_type_with_name.first;
497
779
        param.column_type = data_type_with_name.second;
498
779
        param.query_value = query_param->get_value();
499
779
        param.query_type = query_type;
500
779
        param.num_rows = num_rows;
501
779
        param.roaring = std::make_shared<roaring::Roaring>();
502
779
        param.analyzer_ctx = analyzer_ctx;
503
779
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
733
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
735
        if (iter->has_null()) {
506
735
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
735
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
735
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
735
        }
510
733
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
733
        bitmap_result = result;
512
733
        bitmap_result.mask_out_null();
513
514
733
        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
733
        return Status::OK();
521
733
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
78
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
78
        DCHECK(arguments.size() == 1);
454
78
        DCHECK(data_type_with_names.size() == 1);
455
78
        DCHECK(iterators.size() == 1);
456
78
        auto* iter = iterators[0];
457
78
        auto data_type_with_name = data_type_with_names[0];
458
78
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
78
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
8
            return Status::OK();
463
8
        }
464
70
        segment_v2::InvertedIndexQueryType query_type;
465
70
        std::string_view name_view(name);
466
70
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
70
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
70
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
0
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
0
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
0
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
70
        if (segment_v2::is_range_query(query_type) &&
481
70
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
0
            return Status::OK();
484
0
        }
485
70
        Field param_value;
486
70
        arguments[0].column->get(0, param_value);
487
70
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
70
        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
61
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
61
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
61
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
61
        }
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
114
        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
114
        } else if (name_view == NameGreater::name) {
473
114
            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
114
        if (segment_v2::is_range_query(query_type) &&
481
114
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
28
            return Status::OK();
484
28
        }
485
86
        Field param_value;
486
86
        arguments[0].column->get(0, param_value);
487
86
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
86
        auto param_type = arguments[0].type->get_primitive_type();
491
86
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
86
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
86
                param_type, &param_value, query_param));
494
495
86
        segment_v2::InvertedIndexParam param;
496
86
        param.column_name = data_type_with_name.first;
497
86
        param.column_type = data_type_with_name.second;
498
86
        param.query_value = query_param->get_value();
499
86
        param.query_type = query_type;
500
86
        param.num_rows = num_rows;
501
86
        param.roaring = std::make_shared<roaring::Roaring>();
502
86
        param.analyzer_ctx = analyzer_ctx;
503
86
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
67
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
67
        if (iter->has_null()) {
506
67
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
67
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
67
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
67
        }
510
67
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
67
        bitmap_result = result;
512
67
        bitmap_result.mask_out_null();
513
514
67
        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
67
        return Status::OK();
521
67
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
249
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
249
        DCHECK(arguments.size() == 1);
454
249
        DCHECK(data_type_with_names.size() == 1);
455
249
        DCHECK(iterators.size() == 1);
456
249
        auto* iter = iterators[0];
457
249
        auto data_type_with_name = data_type_with_names[0];
458
249
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
249
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
114
            return Status::OK();
463
114
        }
464
135
        segment_v2::InvertedIndexQueryType query_type;
465
135
        std::string_view name_view(name);
466
135
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
135
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
135
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
135
        } 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
135
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
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
35
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
35
        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
35
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
35
        bitmap_result = result;
512
35
        bitmap_result.mask_out_null();
513
514
35
        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
35
        return Status::OK();
521
35
    }
_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
111
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
111
        } else if (name_view == NameLess::name) {
469
111
            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
111
        if (segment_v2::is_range_query(query_type) &&
481
111
            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
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
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
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_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
211
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
211
        DCHECK(arguments.size() == 1);
454
211
        DCHECK(data_type_with_names.size() == 1);
455
211
        DCHECK(iterators.size() == 1);
456
211
        auto* iter = iterators[0];
457
211
        auto data_type_with_name = data_type_with_names[0];
458
211
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
211
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
113
            return Status::OK();
463
113
        }
464
98
        segment_v2::InvertedIndexQueryType query_type;
465
98
        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
98
        } 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
98
        } 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
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
20
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
20
        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
20
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
20
        bitmap_result = result;
512
20
        bitmap_result.mask_out_null();
513
514
20
        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
20
        return Status::OK();
521
20
    }
522
523
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
524
141k
                        uint32_t result, size_t input_rows_count) const override {
525
141k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
141k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
141k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
141k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
141k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
141k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
141k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
141k
        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
141k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
141k
            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
248k
        auto can_compare = [](PrimitiveType t) -> bool {
563
248k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
248k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
69.7k
        auto can_compare = [](PrimitiveType t) -> bool {
563
69.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
69.7k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
5.85k
        auto can_compare = [](PrimitiveType t) -> bool {
563
5.85k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
5.85k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
49.2k
        auto can_compare = [](PrimitiveType t) -> bool {
563
49.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
49.2k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
47.2k
        auto can_compare = [](PrimitiveType t) -> bool {
563
47.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
47.2k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
17.2k
        auto can_compare = [](PrimitiveType t) -> bool {
563
17.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
17.2k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
58.7k
        auto can_compare = [](PrimitiveType t) -> bool {
563
58.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
58.7k
        };
565
566
141k
        if (can_compare(left_type->get_primitive_type()) &&
567
141k
            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
106k
            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
106k
        }
575
576
141k
        auto compare_type = left_type->get_primitive_type();
577
141k
        switch (compare_type) {
578
1.17k
        case TYPE_BOOLEAN:
579
1.17k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
11.9k
        case TYPE_DATEV2:
581
11.9k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
1.91k
        case TYPE_DATETIMEV2:
583
1.91k
            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
6.00k
        case TYPE_TINYINT:
587
6.00k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
2.17k
        case TYPE_SMALLINT:
589
2.17k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
57.9k
        case TYPE_INT:
591
57.9k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
20.7k
        case TYPE_BIGINT:
593
20.7k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
635
        case TYPE_LARGEINT:
595
635
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
57
        case TYPE_IPV4:
597
57
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
37
        case TYPE_IPV6:
599
37
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
678
        case TYPE_FLOAT:
601
678
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
2.78k
        case TYPE_DOUBLE:
603
2.78k
            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
476
        case TYPE_DECIMAL32:
609
7.78k
        case TYPE_DECIMAL64:
610
12.4k
        case TYPE_DECIMAL128I:
611
12.5k
        case TYPE_DECIMAL256:
612
12.5k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
12.5k
                                   col_with_type_and_name_right);
614
938
        case TYPE_CHAR:
615
9.51k
        case TYPE_VARCHAR:
616
23.0k
        case TYPE_STRING:
617
23.0k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
99
        default:
619
99
            return execute_generic(block, result, col_with_type_and_name_left,
620
99
                                   col_with_type_and_name_right);
621
141k
        }
622
0
        return Status::OK();
623
141k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
46.0k
                        uint32_t result, size_t input_rows_count) const override {
525
46.0k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
46.0k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
46.0k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
46.0k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
46.0k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
46.0k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
46.0k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
46.0k
        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
46.0k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
46.0k
            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
46.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
46.0k
        };
565
566
46.0k
        if (can_compare(left_type->get_primitive_type()) &&
567
46.0k
            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.7k
            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.7k
        }
575
576
46.0k
        auto compare_type = left_type->get_primitive_type();
577
46.0k
        switch (compare_type) {
578
862
        case TYPE_BOOLEAN:
579
862
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.32k
        case TYPE_DATEV2:
581
1.32k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
654
        case TYPE_DATETIMEV2:
583
654
            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
4.02k
        case TYPE_TINYINT:
587
4.02k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
692
        case TYPE_SMALLINT:
589
692
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
6.29k
        case TYPE_INT:
591
6.29k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
9.40k
        case TYPE_BIGINT:
593
9.40k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
114
        case TYPE_LARGEINT:
595
114
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
18
        case TYPE_IPV4:
597
18
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
19
        case TYPE_IPV6:
599
19
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
89
        case TYPE_FLOAT:
601
89
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
286
        case TYPE_DOUBLE:
603
286
            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
223
        case TYPE_DECIMAL32:
609
464
        case TYPE_DECIMAL64:
610
1.76k
        case TYPE_DECIMAL128I:
611
1.79k
        case TYPE_DECIMAL256:
612
1.79k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
1.79k
                                   col_with_type_and_name_right);
614
673
        case TYPE_CHAR:
615
8.23k
        case TYPE_VARCHAR:
616
20.4k
        case TYPE_STRING:
617
20.4k
            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
46.0k
        }
622
0
        return Status::OK();
623
46.0k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
3.50k
                        uint32_t result, size_t input_rows_count) const override {
525
3.50k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
3.50k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
3.50k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
3.50k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
3.50k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
3.50k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
3.50k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
3.50k
        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.50k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
3.50k
            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.50k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
3.50k
        };
565
566
3.50k
        if (can_compare(left_type->get_primitive_type()) &&
567
3.50k
            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.34k
            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.34k
        }
575
576
3.50k
        auto compare_type = left_type->get_primitive_type();
577
3.50k
        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.11k
        case TYPE_INT:
591
1.11k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
961
        case TYPE_BIGINT:
593
961
            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
385
        case TYPE_DECIMAL128I:
611
415
        case TYPE_DECIMAL256:
612
415
            return execute_decimal(block, result, col_with_type_and_name_left,
613
415
                                   col_with_type_and_name_right);
614
9
        case TYPE_CHAR:
615
289
        case TYPE_VARCHAR:
616
737
        case TYPE_STRING:
617
737
            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.50k
        }
622
0
        return Status::OK();
623
3.50k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
27.6k
                        uint32_t result, size_t input_rows_count) const override {
525
27.6k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
27.6k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
27.6k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
27.6k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
27.6k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
27.6k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
27.6k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
27.6k
        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
27.6k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
27.6k
            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
27.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
27.6k
        };
565
566
27.6k
        if (can_compare(left_type->get_primitive_type()) &&
567
27.6k
            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
21.5k
            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
21.5k
        }
575
576
27.6k
        auto compare_type = left_type->get_primitive_type();
577
27.6k
        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.12k
        case TYPE_DATEV2:
581
1.12k
            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
844
        case TYPE_TINYINT:
587
844
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
1.13k
        case TYPE_SMALLINT:
589
1.13k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
7.90k
        case TYPE_INT:
591
7.90k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
8.26k
        case TYPE_BIGINT:
593
8.26k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
247
        case TYPE_LARGEINT:
595
247
            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
231
        case TYPE_FLOAT:
601
231
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
1.74k
        case TYPE_DOUBLE:
603
1.74k
            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
4.14k
        case TYPE_DECIMAL64:
610
5.90k
        case TYPE_DECIMAL128I:
611
5.91k
        case TYPE_DECIMAL256:
612
5.91k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
5.91k
                                   col_with_type_and_name_right);
614
21
        case TYPE_CHAR:
615
91
        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
27.6k
        }
622
0
        return Status::OK();
623
27.6k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
24.0k
                        uint32_t result, size_t input_rows_count) const override {
525
24.0k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
24.0k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
24.0k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
24.0k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
24.0k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
24.0k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
24.0k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
24.0k
        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
24.0k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
24.0k
            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
24.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
24.0k
        };
565
566
24.0k
        if (can_compare(left_type->get_primitive_type()) &&
567
24.0k
            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.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
23.2k
        }
575
576
24.0k
        auto compare_type = left_type->get_primitive_type();
577
24.0k
        switch (compare_type) {
578
124
        case TYPE_BOOLEAN:
579
124
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.48k
        case TYPE_DATEV2:
581
1.48k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
481
        case TYPE_DATETIMEV2:
583
481
            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
52
        case TYPE_TINYINT:
587
52
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
61
        case TYPE_SMALLINT:
589
61
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
20.2k
        case TYPE_INT:
591
20.2k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
437
        case TYPE_BIGINT:
593
437
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
46
        case TYPE_LARGEINT:
595
46
            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
86
        case TYPE_FLOAT:
601
86
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
165
        case TYPE_DOUBLE:
603
165
            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
6
        case TYPE_DECIMAL32:
609
259
        case TYPE_DECIMAL64:
610
299
        case TYPE_DECIMAL128I:
611
320
        case TYPE_DECIMAL256:
612
320
            return execute_decimal(block, result, col_with_type_and_name_left,
613
320
                                   col_with_type_and_name_right);
614
12
        case TYPE_CHAR:
615
252
        case TYPE_VARCHAR:
616
497
        case TYPE_STRING:
617
497
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
26
        default:
619
26
            return execute_generic(block, result, col_with_type_and_name_left,
620
26
                                   col_with_type_and_name_right);
621
24.0k
        }
622
0
        return Status::OK();
623
24.0k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
9.41k
                        uint32_t result, size_t input_rows_count) const override {
525
9.41k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
9.41k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
9.41k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
9.41k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
9.41k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
9.41k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
9.41k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
9.41k
        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
9.41k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
9.41k
            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
9.41k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
9.41k
        };
565
566
9.41k
        if (can_compare(left_type->get_primitive_type()) &&
567
9.41k
            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.81k
            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.81k
        }
575
576
9.41k
        auto compare_type = left_type->get_primitive_type();
577
9.41k
        switch (compare_type) {
578
79
        case TYPE_BOOLEAN:
579
79
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
2.05k
        case TYPE_DATEV2:
581
2.05k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
455
        case TYPE_DATETIMEV2:
583
455
            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
915
        case TYPE_TINYINT:
587
915
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
198
        case TYPE_SMALLINT:
589
198
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
2.09k
        case TYPE_INT:
591
2.09k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
1.30k
        case TYPE_BIGINT:
593
1.30k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
190
        case TYPE_LARGEINT:
595
190
            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
140
        case TYPE_FLOAT:
601
140
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
358
        case TYPE_DOUBLE:
603
358
            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
214
        case TYPE_DECIMAL32:
609
444
        case TYPE_DECIMAL64:
610
959
        case TYPE_DECIMAL128I:
611
960
        case TYPE_DECIMAL256:
612
960
            return execute_decimal(block, result, col_with_type_and_name_left,
613
960
                                   col_with_type_and_name_right);
614
187
        case TYPE_CHAR:
615
364
        case TYPE_VARCHAR:
616
627
        case TYPE_STRING:
617
627
            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
9.41k
        }
622
0
        return Status::OK();
623
9.41k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
31.1k
                        uint32_t result, size_t input_rows_count) const override {
525
31.1k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
31.1k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
31.1k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
31.1k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
31.1k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
31.1k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
31.1k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
31.1k
        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
31.1k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
31.1k
            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
31.1k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
31.1k
        };
565
566
31.1k
        if (can_compare(left_type->get_primitive_type()) &&
567
31.1k
            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
27.5k
            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
27.5k
        }
575
576
31.1k
        auto compare_type = left_type->get_primitive_type();
577
31.1k
        switch (compare_type) {
578
114
        case TYPE_BOOLEAN:
579
114
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
5.91k
        case TYPE_DATEV2:
581
5.91k
            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
76
        case TYPE_TINYINT:
587
76
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
86
        case TYPE_SMALLINT:
589
86
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
20.3k
        case TYPE_INT:
591
20.3k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
401
        case TYPE_BIGINT:
593
401
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
38
        case TYPE_LARGEINT:
595
38
            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
80
        case TYPE_FLOAT:
601
80
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
159
        case TYPE_DOUBLE:
603
159
            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
11
        case TYPE_DECIMAL32:
609
2.41k
        case TYPE_DECIMAL64:
610
3.12k
        case TYPE_DECIMAL128I:
611
3.13k
        case TYPE_DECIMAL256:
612
3.13k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
3.13k
                                   col_with_type_and_name_right);
614
36
        case TYPE_CHAR:
615
286
        case TYPE_VARCHAR:
616
540
        case TYPE_STRING:
617
540
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
28
        default:
619
28
            return execute_generic(block, result, col_with_type_and_name_left,
620
28
                                   col_with_type_and_name_right);
621
31.1k
        }
622
0
        return Status::OK();
623
31.1k
    }
624
};
625
626
#include "common/compile_check_end.h"
627
} // namespace doris