Coverage Report

Created: 2026-03-27 21:20

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.0k
                                        PaddedPODArray<UInt8>& c) {
66
12.0k
        size_t size = a.size();
67
12.0k
        const A* __restrict a_pos = a.data();
68
12.0k
        const B* __restrict b_pos = b.data();
69
12.0k
        UInt8* __restrict c_pos = c.data();
70
12.0k
        const A* __restrict a_end = a_pos + size;
71
72
9.63M
        while (a_pos < a_end) {
73
9.61M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9.61M
            ++a_pos;
75
9.61M
            ++b_pos;
76
9.61M
            ++c_pos;
77
9.61M
        }
78
12.0k
    }
_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
334
                                        PaddedPODArray<UInt8>& c) {
66
334
        size_t size = a.size();
67
334
        const A* __restrict a_pos = a.data();
68
334
        const B* __restrict b_pos = b.data();
69
334
        UInt8* __restrict c_pos = c.data();
70
334
        const A* __restrict a_end = a_pos + size;
71
72
1.52k
        while (a_pos < a_end) {
73
1.18k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.18k
            ++a_pos;
75
1.18k
            ++b_pos;
76
1.18k
            ++c_pos;
77
1.18k
        }
78
334
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
238
                                        PaddedPODArray<UInt8>& c) {
66
238
        size_t size = a.size();
67
238
        const A* __restrict a_pos = a.data();
68
238
        const B* __restrict b_pos = b.data();
69
238
        UInt8* __restrict c_pos = c.data();
70
238
        const A* __restrict a_end = a_pos + size;
71
72
497
        while (a_pos < a_end) {
73
259
            *c_pos = Op::apply(*a_pos, *b_pos);
74
259
            ++a_pos;
75
259
            ++b_pos;
76
259
            ++c_pos;
77
259
        }
78
238
    }
_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
877
                                        PaddedPODArray<UInt8>& c) {
66
877
        size_t size = a.size();
67
877
        const A* __restrict a_pos = a.data();
68
877
        const B* __restrict b_pos = b.data();
69
877
        UInt8* __restrict c_pos = c.data();
70
877
        const A* __restrict a_end = a_pos + size;
71
72
5.64k
        while (a_pos < a_end) {
73
4.77k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.77k
            ++a_pos;
75
4.77k
            ++b_pos;
76
4.77k
            ++c_pos;
77
4.77k
        }
78
877
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_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
544
        while (a_pos < a_end) {
73
422
            *c_pos = Op::apply(*a_pos, *b_pos);
74
422
            ++a_pos;
75
422
            ++b_pos;
76
422
            ++c_pos;
77
422
        }
78
122
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
269
                                        PaddedPODArray<UInt8>& c) {
66
269
        size_t size = a.size();
67
269
        const A* __restrict a_pos = a.data();
68
269
        const B* __restrict b_pos = b.data();
69
269
        UInt8* __restrict c_pos = c.data();
70
269
        const A* __restrict a_end = a_pos + size;
71
72
1.97k
        while (a_pos < a_end) {
73
1.70k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.70k
            ++a_pos;
75
1.70k
            ++b_pos;
76
1.70k
            ++c_pos;
77
1.70k
        }
78
269
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
408
                                        PaddedPODArray<UInt8>& c) {
66
408
        size_t size = a.size();
67
408
        const A* __restrict a_pos = a.data();
68
408
        const B* __restrict b_pos = b.data();
69
408
        UInt8* __restrict c_pos = c.data();
70
408
        const A* __restrict a_end = a_pos + size;
71
72
12.0k
        while (a_pos < a_end) {
73
11.6k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
11.6k
            ++a_pos;
75
11.6k
            ++b_pos;
76
11.6k
            ++c_pos;
77
11.6k
        }
78
408
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
68
                                        PaddedPODArray<UInt8>& c) {
66
68
        size_t size = a.size();
67
68
        const A* __restrict a_pos = a.data();
68
68
        const B* __restrict b_pos = b.data();
69
68
        UInt8* __restrict c_pos = c.data();
70
68
        const A* __restrict a_end = a_pos + size;
71
72
160
        while (a_pos < a_end) {
73
92
            *c_pos = Op::apply(*a_pos, *b_pos);
74
92
            ++a_pos;
75
92
            ++b_pos;
76
92
            ++c_pos;
77
92
        }
78
68
    }
_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
95
                                        PaddedPODArray<UInt8>& c) {
66
95
        size_t size = a.size();
67
95
        const A* __restrict a_pos = a.data();
68
95
        const B* __restrict b_pos = b.data();
69
95
        UInt8* __restrict c_pos = c.data();
70
95
        const A* __restrict a_end = a_pos + size;
71
72
209
        while (a_pos < a_end) {
73
114
            *c_pos = Op::apply(*a_pos, *b_pos);
74
114
            ++a_pos;
75
114
            ++b_pos;
76
114
            ++c_pos;
77
114
        }
78
95
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
102
                                        PaddedPODArray<UInt8>& c) {
66
102
        size_t size = a.size();
67
102
        const A* __restrict a_pos = a.data();
68
102
        const B* __restrict b_pos = b.data();
69
102
        UInt8* __restrict c_pos = c.data();
70
102
        const A* __restrict a_end = a_pos + size;
71
72
225
        while (a_pos < a_end) {
73
123
            *c_pos = Op::apply(*a_pos, *b_pos);
74
123
            ++a_pos;
75
123
            ++b_pos;
76
123
            ++c_pos;
77
123
        }
78
102
    }
_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
360
                                        PaddedPODArray<UInt8>& c) {
66
360
        size_t size = a.size();
67
360
        const A* __restrict a_pos = a.data();
68
360
        const B* __restrict b_pos = b.data();
69
360
        UInt8* __restrict c_pos = c.data();
70
360
        const A* __restrict a_end = a_pos + size;
71
72
297k
        while (a_pos < a_end) {
73
297k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
297k
            ++a_pos;
75
297k
            ++b_pos;
76
297k
            ++c_pos;
77
297k
        }
78
360
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
444
                                        PaddedPODArray<UInt8>& c) {
66
444
        size_t size = a.size();
67
444
        const A* __restrict a_pos = a.data();
68
444
        const B* __restrict b_pos = b.data();
69
444
        UInt8* __restrict c_pos = c.data();
70
444
        const A* __restrict a_end = a_pos + size;
71
72
24.8k
        while (a_pos < a_end) {
73
24.4k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
24.4k
            ++a_pos;
75
24.4k
            ++b_pos;
76
24.4k
            ++c_pos;
77
24.4k
        }
78
444
    }
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
932
                                        PaddedPODArray<UInt8>& c) {
66
932
        size_t size = a.size();
67
932
        const A* __restrict a_pos = a.data();
68
932
        const B* __restrict b_pos = b.data();
69
932
        UInt8* __restrict c_pos = c.data();
70
932
        const A* __restrict a_end = a_pos + size;
71
72
2.66M
        while (a_pos < a_end) {
73
2.66M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.66M
            ++a_pos;
75
2.66M
            ++b_pos;
76
2.66M
            ++c_pos;
77
2.66M
        }
78
932
    }
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
385
                                        PaddedPODArray<UInt8>& c) {
66
385
        size_t size = a.size();
67
385
        const A* __restrict a_pos = a.data();
68
385
        const B* __restrict b_pos = b.data();
69
385
        UInt8* __restrict c_pos = c.data();
70
385
        const A* __restrict a_end = a_pos + size;
71
72
2.75k
        while (a_pos < a_end) {
73
2.36k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.36k
            ++a_pos;
75
2.36k
            ++b_pos;
76
2.36k
            ++c_pos;
77
2.36k
        }
78
385
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
625
                                        PaddedPODArray<UInt8>& c) {
66
625
        size_t size = a.size();
67
625
        const A* __restrict a_pos = a.data();
68
625
        const B* __restrict b_pos = b.data();
69
625
        UInt8* __restrict c_pos = c.data();
70
625
        const A* __restrict a_end = a_pos + size;
71
72
4.52k
        while (a_pos < a_end) {
73
3.90k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.90k
            ++a_pos;
75
3.90k
            ++b_pos;
76
3.90k
            ++c_pos;
77
3.90k
        }
78
625
    }
_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
171
                                        PaddedPODArray<UInt8>& c) {
66
171
        size_t size = a.size();
67
171
        const A* __restrict a_pos = a.data();
68
171
        const B* __restrict b_pos = b.data();
69
171
        UInt8* __restrict c_pos = c.data();
70
171
        const A* __restrict a_end = a_pos + size;
71
72
1.78k
        while (a_pos < a_end) {
73
1.61k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.61k
            ++a_pos;
75
1.61k
            ++b_pos;
76
1.61k
            ++c_pos;
77
1.61k
        }
78
171
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
41
                                        PaddedPODArray<UInt8>& c) {
66
41
        size_t size = a.size();
67
41
        const A* __restrict a_pos = a.data();
68
41
        const B* __restrict b_pos = b.data();
69
41
        UInt8* __restrict c_pos = c.data();
70
41
        const A* __restrict a_end = a_pos + size;
71
72
195
        while (a_pos < a_end) {
73
154
            *c_pos = Op::apply(*a_pos, *b_pos);
74
154
            ++a_pos;
75
154
            ++b_pos;
76
154
            ++c_pos;
77
154
        }
78
41
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
49
                                        PaddedPODArray<UInt8>& c) {
66
49
        size_t size = a.size();
67
49
        const A* __restrict a_pos = a.data();
68
49
        const B* __restrict b_pos = b.data();
69
49
        UInt8* __restrict c_pos = c.data();
70
49
        const A* __restrict a_end = a_pos + size;
71
72
145
        while (a_pos < a_end) {
73
96
            *c_pos = Op::apply(*a_pos, *b_pos);
74
96
            ++a_pos;
75
96
            ++b_pos;
76
96
            ++c_pos;
77
96
        }
78
49
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
7
                                        PaddedPODArray<UInt8>& c) {
66
7
        size_t size = a.size();
67
7
        const A* __restrict a_pos = a.data();
68
7
        const B* __restrict b_pos = b.data();
69
7
        UInt8* __restrict c_pos = c.data();
70
7
        const A* __restrict a_end = a_pos + size;
71
72
38
        while (a_pos < a_end) {
73
31
            *c_pos = Op::apply(*a_pos, *b_pos);
74
31
            ++a_pos;
75
31
            ++b_pos;
76
31
            ++c_pos;
77
31
        }
78
7
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
10
                                        PaddedPODArray<UInt8>& c) {
66
10
        size_t size = a.size();
67
10
        const A* __restrict a_pos = a.data();
68
10
        const B* __restrict b_pos = b.data();
69
10
        UInt8* __restrict c_pos = c.data();
70
10
        const A* __restrict a_end = a_pos + size;
71
72
101
        while (a_pos < a_end) {
73
91
            *c_pos = Op::apply(*a_pos, *b_pos);
74
91
            ++a_pos;
75
91
            ++b_pos;
76
91
            ++c_pos;
77
91
        }
78
10
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
7
                                        PaddedPODArray<UInt8>& c) {
66
7
        size_t size = a.size();
67
7
        const A* __restrict a_pos = a.data();
68
7
        const B* __restrict b_pos = b.data();
69
7
        UInt8* __restrict c_pos = c.data();
70
7
        const A* __restrict a_end = a_pos + size;
71
72
26
        while (a_pos < a_end) {
73
19
            *c_pos = Op::apply(*a_pos, *b_pos);
74
19
            ++a_pos;
75
19
            ++b_pos;
76
19
            ++c_pos;
77
19
        }
78
7
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
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
124
        while (a_pos < a_end) {
73
108
            *c_pos = Op::apply(*a_pos, *b_pos);
74
108
            ++a_pos;
75
108
            ++b_pos;
76
108
            ++c_pos;
77
108
        }
78
16
    }
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
59
                                        PaddedPODArray<UInt8>& c) {
66
59
        size_t size = a.size();
67
59
        const A* __restrict a_pos = a.data();
68
59
        const B* __restrict b_pos = b.data();
69
59
        UInt8* __restrict c_pos = c.data();
70
59
        const A* __restrict a_end = a_pos + size;
71
72
165
        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
59
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
75
                                        PaddedPODArray<UInt8>& c) {
66
75
        size_t size = a.size();
67
75
        const A* __restrict a_pos = a.data();
68
75
        const B* __restrict b_pos = b.data();
69
75
        UInt8* __restrict c_pos = c.data();
70
75
        const A* __restrict a_end = a_pos + size;
71
72
150
        while (a_pos < a_end) {
73
75
            *c_pos = Op::apply(*a_pos, *b_pos);
74
75
            ++a_pos;
75
75
            ++b_pos;
76
75
            ++c_pos;
77
75
        }
78
75
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.60k
                                        PaddedPODArray<UInt8>& c) {
66
1.60k
        size_t size = a.size();
67
1.60k
        const A* __restrict a_pos = a.data();
68
1.60k
        const B* __restrict b_pos = b.data();
69
1.60k
        UInt8* __restrict c_pos = c.data();
70
1.60k
        const A* __restrict a_end = a_pos + size;
71
72
1.18M
        while (a_pos < a_end) {
73
1.18M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.18M
            ++a_pos;
75
1.18M
            ++b_pos;
76
1.18M
            ++c_pos;
77
1.18M
        }
78
1.60k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
228
                                        PaddedPODArray<UInt8>& c) {
66
228
        size_t size = a.size();
67
228
        const A* __restrict a_pos = a.data();
68
228
        const B* __restrict b_pos = b.data();
69
228
        UInt8* __restrict c_pos = c.data();
70
228
        const A* __restrict a_end = a_pos + size;
71
72
456
        while (a_pos < a_end) {
73
228
            *c_pos = Op::apply(*a_pos, *b_pos);
74
228
            ++a_pos;
75
228
            ++b_pos;
76
228
            ++c_pos;
77
228
        }
78
228
    }
_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
815
                                        PaddedPODArray<UInt8>& c) {
66
815
        size_t size = a.size();
67
815
        const A* __restrict a_pos = a.data();
68
815
        const B* __restrict b_pos = b.data();
69
815
        UInt8* __restrict c_pos = c.data();
70
815
        const A* __restrict a_end = a_pos + size;
71
72
5.06k
        while (a_pos < a_end) {
73
4.24k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.24k
            ++a_pos;
75
4.24k
            ++b_pos;
76
4.24k
            ++c_pos;
77
4.24k
        }
78
815
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
112
                                        PaddedPODArray<UInt8>& c) {
66
112
        size_t size = a.size();
67
112
        const A* __restrict a_pos = a.data();
68
112
        const B* __restrict b_pos = b.data();
69
112
        UInt8* __restrict c_pos = c.data();
70
112
        const A* __restrict a_end = a_pos + size;
71
72
226
        while (a_pos < a_end) {
73
114
            *c_pos = Op::apply(*a_pos, *b_pos);
74
114
            ++a_pos;
75
114
            ++b_pos;
76
114
            ++c_pos;
77
114
        }
78
112
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
271
                                        PaddedPODArray<UInt8>& c) {
66
271
        size_t size = a.size();
67
271
        const A* __restrict a_pos = a.data();
68
271
        const B* __restrict b_pos = b.data();
69
271
        UInt8* __restrict c_pos = c.data();
70
271
        const A* __restrict a_end = a_pos + size;
71
72
875
        while (a_pos < a_end) {
73
604
            *c_pos = Op::apply(*a_pos, *b_pos);
74
604
            ++a_pos;
75
604
            ++b_pos;
76
604
            ++c_pos;
77
604
        }
78
271
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
241
                                        PaddedPODArray<UInt8>& c) {
66
241
        size_t size = a.size();
67
241
        const A* __restrict a_pos = a.data();
68
241
        const B* __restrict b_pos = b.data();
69
241
        UInt8* __restrict c_pos = c.data();
70
241
        const A* __restrict a_end = a_pos + size;
71
72
5.72k
        while (a_pos < a_end) {
73
5.48k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.48k
            ++a_pos;
75
5.48k
            ++b_pos;
76
5.48k
            ++c_pos;
77
5.48k
        }
78
241
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
173
                                        PaddedPODArray<UInt8>& c) {
66
173
        size_t size = a.size();
67
173
        const A* __restrict a_pos = a.data();
68
173
        const B* __restrict b_pos = b.data();
69
173
        UInt8* __restrict c_pos = c.data();
70
173
        const A* __restrict a_end = a_pos + size;
71
72
493
        while (a_pos < a_end) {
73
320
            *c_pos = Op::apply(*a_pos, *b_pos);
74
320
            ++a_pos;
75
320
            ++b_pos;
76
320
            ++c_pos;
77
320
        }
78
173
    }
_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
129
                                        PaddedPODArray<UInt8>& c) {
66
129
        size_t size = a.size();
67
129
        const A* __restrict a_pos = a.data();
68
129
        const B* __restrict b_pos = b.data();
69
129
        UInt8* __restrict c_pos = c.data();
70
129
        const A* __restrict a_end = a_pos + size;
71
72
277
        while (a_pos < a_end) {
73
148
            *c_pos = Op::apply(*a_pos, *b_pos);
74
148
            ++a_pos;
75
148
            ++b_pos;
76
148
            ++c_pos;
77
148
        }
78
129
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
151
                                        PaddedPODArray<UInt8>& c) {
66
151
        size_t size = a.size();
67
151
        const A* __restrict a_pos = a.data();
68
151
        const B* __restrict b_pos = b.data();
69
151
        UInt8* __restrict c_pos = c.data();
70
151
        const A* __restrict a_end = a_pos + size;
71
72
349
        while (a_pos < a_end) {
73
198
            *c_pos = Op::apply(*a_pos, *b_pos);
74
198
            ++a_pos;
75
198
            ++b_pos;
76
198
            ++c_pos;
77
198
        }
78
151
    }
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
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
6.70k
        while (a_pos < a_end) {
73
6.28k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.28k
            ++a_pos;
75
6.28k
            ++b_pos;
76
6.28k
            ++c_pos;
77
6.28k
        }
78
419
    }
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
77
                                        PaddedPODArray<UInt8>& c) {
66
77
        size_t size = a.size();
67
77
        const A* __restrict a_pos = a.data();
68
77
        const B* __restrict b_pos = b.data();
69
77
        UInt8* __restrict c_pos = c.data();
70
77
        const A* __restrict a_end = a_pos + size;
71
72
1.11k
        while (a_pos < a_end) {
73
1.04k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.04k
            ++a_pos;
75
1.04k
            ++b_pos;
76
1.04k
            ++c_pos;
77
1.04k
        }
78
77
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
31
                                        PaddedPODArray<UInt8>& c) {
66
31
        size_t size = a.size();
67
31
        const A* __restrict a_pos = a.data();
68
31
        const B* __restrict b_pos = b.data();
69
31
        UInt8* __restrict c_pos = c.data();
70
31
        const A* __restrict a_end = a_pos + size;
71
72
215
        while (a_pos < a_end) {
73
184
            *c_pos = Op::apply(*a_pos, *b_pos);
74
184
            ++a_pos;
75
184
            ++b_pos;
76
184
            ++c_pos;
77
184
        }
78
31
    }
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
70.3k
                                          PaddedPODArray<UInt8>& c) {
82
70.3k
        size_t size = a.size();
83
70.3k
        const A* __restrict a_pos = a.data();
84
70.3k
        UInt8* __restrict c_pos = c.data();
85
70.3k
        const A* __restrict a_end = a_pos + size;
86
87
144M
        while (a_pos < a_end) {
88
144M
            *c_pos = Op::apply(*a_pos, b);
89
144M
            ++a_pos;
90
144M
            ++c_pos;
91
144M
        }
92
70.3k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
790
                                          PaddedPODArray<UInt8>& c) {
82
790
        size_t size = a.size();
83
790
        const A* __restrict a_pos = a.data();
84
790
        UInt8* __restrict c_pos = c.data();
85
790
        const A* __restrict a_end = a_pos + size;
86
87
3.21k
        while (a_pos < a_end) {
88
2.42k
            *c_pos = Op::apply(*a_pos, b);
89
2.42k
            ++a_pos;
90
2.42k
            ++c_pos;
91
2.42k
        }
92
790
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
1.09k
                                          PaddedPODArray<UInt8>& c) {
82
1.09k
        size_t size = a.size();
83
1.09k
        const A* __restrict a_pos = a.data();
84
1.09k
        UInt8* __restrict c_pos = c.data();
85
1.09k
        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.09k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
394
                                          PaddedPODArray<UInt8>& c) {
82
394
        size_t size = a.size();
83
394
        const A* __restrict a_pos = a.data();
84
394
        UInt8* __restrict c_pos = c.data();
85
394
        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
394
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
2.91k
                                          PaddedPODArray<UInt8>& c) {
82
2.91k
        size_t size = a.size();
83
2.91k
        const A* __restrict a_pos = a.data();
84
2.91k
        UInt8* __restrict c_pos = c.data();
85
2.91k
        const A* __restrict a_end = a_pos + size;
86
87
8.98M
        while (a_pos < a_end) {
88
8.98M
            *c_pos = Op::apply(*a_pos, b);
89
8.98M
            ++a_pos;
90
8.98M
            ++c_pos;
91
8.98M
        }
92
2.91k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
627
                                          PaddedPODArray<UInt8>& c) {
82
627
        size_t size = a.size();
83
627
        const A* __restrict a_pos = a.data();
84
627
        UInt8* __restrict c_pos = c.data();
85
627
        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
627
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
6.08k
                                          PaddedPODArray<UInt8>& c) {
82
6.08k
        size_t size = a.size();
83
6.08k
        const A* __restrict a_pos = a.data();
84
6.08k
        UInt8* __restrict c_pos = c.data();
85
6.08k
        const A* __restrict a_end = a_pos + size;
86
87
1.96M
        while (a_pos < a_end) {
88
1.96M
            *c_pos = Op::apply(*a_pos, b);
89
1.96M
            ++a_pos;
90
1.96M
            ++c_pos;
91
1.96M
        }
92
6.08k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
8.72k
                                          PaddedPODArray<UInt8>& c) {
82
8.72k
        size_t size = a.size();
83
8.72k
        const A* __restrict a_pos = a.data();
84
8.72k
        UInt8* __restrict c_pos = c.data();
85
8.72k
        const A* __restrict a_end = a_pos + size;
86
87
2.37M
        while (a_pos < a_end) {
88
2.36M
            *c_pos = Op::apply(*a_pos, b);
89
2.36M
            ++a_pos;
90
2.36M
            ++c_pos;
91
2.36M
        }
92
8.72k
    }
_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
14
                                          PaddedPODArray<UInt8>& c) {
82
14
        size_t size = a.size();
83
14
        const A* __restrict a_pos = a.data();
84
14
        UInt8* __restrict c_pos = c.data();
85
14
        const A* __restrict a_end = a_pos + size;
86
87
128
        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
14
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
6
                                          PaddedPODArray<UInt8>& c) {
82
6
        size_t size = a.size();
83
6
        const A* __restrict a_pos = a.data();
84
6
        UInt8* __restrict c_pos = c.data();
85
6
        const A* __restrict a_end = a_pos + size;
86
87
12
        while (a_pos < a_end) {
88
6
            *c_pos = Op::apply(*a_pos, b);
89
6
            ++a_pos;
90
6
            ++c_pos;
91
6
        }
92
6
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
2
                                          PaddedPODArray<UInt8>& c) {
82
2
        size_t size = a.size();
83
2
        const A* __restrict a_pos = a.data();
84
2
        UInt8* __restrict c_pos = c.data();
85
2
        const A* __restrict a_end = a_pos + size;
86
87
22
        while (a_pos < a_end) {
88
20
            *c_pos = Op::apply(*a_pos, b);
89
20
            ++a_pos;
90
20
            ++c_pos;
91
20
        }
92
2
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
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
700k
        while (a_pos < a_end) {
88
700k
            *c_pos = Op::apply(*a_pos, b);
89
700k
            ++a_pos;
90
700k
            ++c_pos;
91
700k
        }
92
200
    }
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
535
                                          PaddedPODArray<UInt8>& c) {
82
535
        size_t size = a.size();
83
535
        const A* __restrict a_pos = a.data();
84
535
        UInt8* __restrict c_pos = c.data();
85
535
        const A* __restrict a_end = a_pos + size;
86
87
384k
        while (a_pos < a_end) {
88
384k
            *c_pos = Op::apply(*a_pos, b);
89
384k
            ++a_pos;
90
384k
            ++c_pos;
91
384k
        }
92
535
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
543
                                          PaddedPODArray<UInt8>& c) {
82
543
        size_t size = a.size();
83
543
        const A* __restrict a_pos = a.data();
84
543
        UInt8* __restrict c_pos = c.data();
85
543
        const A* __restrict a_end = a_pos + size;
86
87
201k
        while (a_pos < a_end) {
88
201k
            *c_pos = Op::apply(*a_pos, b);
89
201k
            ++a_pos;
90
201k
            ++c_pos;
91
201k
        }
92
543
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
32
                                          PaddedPODArray<UInt8>& c) {
82
32
        size_t size = a.size();
83
32
        const A* __restrict a_pos = a.data();
84
32
        UInt8* __restrict c_pos = c.data();
85
32
        const A* __restrict a_end = a_pos + size;
86
87
80
        while (a_pos < a_end) {
88
48
            *c_pos = Op::apply(*a_pos, b);
89
48
            ++a_pos;
90
48
            ++c_pos;
91
48
        }
92
32
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
52
                                          PaddedPODArray<UInt8>& c) {
82
52
        size_t size = a.size();
83
52
        const A* __restrict a_pos = a.data();
84
52
        UInt8* __restrict c_pos = c.data();
85
52
        const A* __restrict a_end = a_pos + size;
86
87
312
        while (a_pos < a_end) {
88
260
            *c_pos = Op::apply(*a_pos, b);
89
260
            ++a_pos;
90
260
            ++c_pos;
91
260
        }
92
52
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
78
                                          PaddedPODArray<UInt8>& c) {
82
78
        size_t size = a.size();
83
78
        const A* __restrict a_pos = a.data();
84
78
        UInt8* __restrict c_pos = c.data();
85
78
        const A* __restrict a_end = a_pos + size;
86
87
1.01k
        while (a_pos < a_end) {
88
934
            *c_pos = Op::apply(*a_pos, b);
89
934
            ++a_pos;
90
934
            ++c_pos;
91
934
        }
92
78
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
439
                                          PaddedPODArray<UInt8>& c) {
82
439
        size_t size = a.size();
83
439
        const A* __restrict a_pos = a.data();
84
439
        UInt8* __restrict c_pos = c.data();
85
439
        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
439
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
60
                                          PaddedPODArray<UInt8>& c) {
82
60
        size_t size = a.size();
83
60
        const A* __restrict a_pos = a.data();
84
60
        UInt8* __restrict c_pos = c.data();
85
60
        const A* __restrict a_end = a_pos + size;
86
87
142
        while (a_pos < a_end) {
88
82
            *c_pos = Op::apply(*a_pos, b);
89
82
            ++a_pos;
90
82
            ++c_pos;
91
82
        }
92
60
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
213
                                          PaddedPODArray<UInt8>& c) {
82
213
        size_t size = a.size();
83
213
        const A* __restrict a_pos = a.data();
84
213
        UInt8* __restrict c_pos = c.data();
85
213
        const A* __restrict a_end = a_pos + size;
86
87
29.9k
        while (a_pos < a_end) {
88
29.7k
            *c_pos = Op::apply(*a_pos, b);
89
29.7k
            ++a_pos;
90
29.7k
            ++c_pos;
91
29.7k
        }
92
213
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
81
1
                                          PaddedPODArray<UInt8>& c) {
82
1
        size_t size = a.size();
83
1
        const A* __restrict a_pos = a.data();
84
1
        UInt8* __restrict c_pos = c.data();
85
1
        const A* __restrict a_end = a_pos + size;
86
87
8
        while (a_pos < a_end) {
88
7
            *c_pos = Op::apply(*a_pos, b);
89
7
            ++a_pos;
90
7
            ++c_pos;
91
7
        }
92
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
425
                                          PaddedPODArray<UInt8>& c) {
82
425
        size_t size = a.size();
83
425
        const A* __restrict a_pos = a.data();
84
425
        UInt8* __restrict c_pos = c.data();
85
425
        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
425
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
41
                                          PaddedPODArray<UInt8>& c) {
82
41
        size_t size = a.size();
83
41
        const A* __restrict a_pos = a.data();
84
41
        UInt8* __restrict c_pos = c.data();
85
41
        const A* __restrict a_end = a_pos + size;
86
87
1.78k
        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
41
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
455
                                          PaddedPODArray<UInt8>& c) {
82
455
        size_t size = a.size();
83
455
        const A* __restrict a_pos = a.data();
84
455
        UInt8* __restrict c_pos = c.data();
85
455
        const A* __restrict a_end = a_pos + size;
86
87
7.90k
        while (a_pos < a_end) {
88
7.44k
            *c_pos = Op::apply(*a_pos, b);
89
7.44k
            ++a_pos;
90
7.44k
            ++c_pos;
91
7.44k
        }
92
455
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
102
                                          PaddedPODArray<UInt8>& c) {
82
102
        size_t size = a.size();
83
102
        const A* __restrict a_pos = a.data();
84
102
        UInt8* __restrict c_pos = c.data();
85
102
        const A* __restrict a_end = a_pos + size;
86
87
8.54k
        while (a_pos < a_end) {
88
8.44k
            *c_pos = Op::apply(*a_pos, b);
89
8.44k
            ++a_pos;
90
8.44k
            ++c_pos;
91
8.44k
        }
92
102
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
5.98k
                                          PaddedPODArray<UInt8>& c) {
82
5.98k
        size_t size = a.size();
83
5.98k
        const A* __restrict a_pos = a.data();
84
5.98k
        UInt8* __restrict c_pos = c.data();
85
5.98k
        const A* __restrict a_end = a_pos + size;
86
87
1.24M
        while (a_pos < a_end) {
88
1.24M
            *c_pos = Op::apply(*a_pos, b);
89
1.24M
            ++a_pos;
90
1.24M
            ++c_pos;
91
1.24M
        }
92
5.98k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.29k
                                          PaddedPODArray<UInt8>& c) {
82
1.29k
        size_t size = a.size();
83
1.29k
        const A* __restrict a_pos = a.data();
84
1.29k
        UInt8* __restrict c_pos = c.data();
85
1.29k
        const A* __restrict a_end = a_pos + size;
86
87
3.85M
        while (a_pos < a_end) {
88
3.85M
            *c_pos = Op::apply(*a_pos, b);
89
3.85M
            ++a_pos;
90
3.85M
            ++c_pos;
91
3.85M
        }
92
1.29k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
7.82k
                                          PaddedPODArray<UInt8>& c) {
82
7.82k
        size_t size = a.size();
83
7.82k
        const A* __restrict a_pos = a.data();
84
7.82k
        UInt8* __restrict c_pos = c.data();
85
7.82k
        const A* __restrict a_end = a_pos + size;
86
87
173k
        while (a_pos < a_end) {
88
166k
            *c_pos = Op::apply(*a_pos, b);
89
166k
            ++a_pos;
90
166k
            ++c_pos;
91
166k
        }
92
7.82k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
973
                                          PaddedPODArray<UInt8>& c) {
82
973
        size_t size = a.size();
83
973
        const A* __restrict a_pos = a.data();
84
973
        UInt8* __restrict c_pos = c.data();
85
973
        const A* __restrict a_end = a_pos + size;
86
87
2.80k
        while (a_pos < a_end) {
88
1.83k
            *c_pos = Op::apply(*a_pos, b);
89
1.83k
            ++a_pos;
90
1.83k
            ++c_pos;
91
1.83k
        }
92
973
    }
_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
17
                                          PaddedPODArray<UInt8>& c) {
82
17
        size_t size = a.size();
83
17
        const A* __restrict a_pos = a.data();
84
17
        UInt8* __restrict c_pos = c.data();
85
17
        const A* __restrict a_end = a_pos + size;
86
87
85.9k
        while (a_pos < a_end) {
88
85.8k
            *c_pos = Op::apply(*a_pos, b);
89
85.8k
            ++a_pos;
90
85.8k
            ++c_pos;
91
85.8k
        }
92
17
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1
                                          PaddedPODArray<UInt8>& c) {
82
1
        size_t size = a.size();
83
1
        const A* __restrict a_pos = a.data();
84
1
        UInt8* __restrict c_pos = c.data();
85
1
        const A* __restrict a_end = a_pos + size;
86
87
9
        while (a_pos < a_end) {
88
8
            *c_pos = Op::apply(*a_pos, b);
89
8
            ++a_pos;
90
8
            ++c_pos;
91
8
        }
92
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
212
                                          PaddedPODArray<UInt8>& c) {
82
212
        size_t size = a.size();
83
212
        const A* __restrict a_pos = a.data();
84
212
        UInt8* __restrict c_pos = c.data();
85
212
        const A* __restrict a_end = a_pos + size;
86
87
3.40k
        while (a_pos < a_end) {
88
3.19k
            *c_pos = Op::apply(*a_pos, b);
89
3.19k
            ++a_pos;
90
3.19k
            ++c_pos;
91
3.19k
        }
92
212
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
18
                                          PaddedPODArray<UInt8>& c) {
82
18
        size_t size = a.size();
83
18
        const A* __restrict a_pos = a.data();
84
18
        UInt8* __restrict c_pos = c.data();
85
18
        const A* __restrict a_end = a_pos + size;
86
87
48
        while (a_pos < a_end) {
88
30
            *c_pos = Op::apply(*a_pos, b);
89
30
            ++a_pos;
90
30
            ++c_pos;
91
30
        }
92
18
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.62k
                                          PaddedPODArray<UInt8>& c) {
82
1.62k
        size_t size = a.size();
83
1.62k
        const A* __restrict a_pos = a.data();
84
1.62k
        UInt8* __restrict c_pos = c.data();
85
1.62k
        const A* __restrict a_end = a_pos + size;
86
87
289k
        while (a_pos < a_end) {
88
287k
            *c_pos = Op::apply(*a_pos, b);
89
287k
            ++a_pos;
90
287k
            ++c_pos;
91
287k
        }
92
1.62k
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
195
                                          PaddedPODArray<UInt8>& c) {
82
195
        size_t size = a.size();
83
195
        const A* __restrict a_pos = a.data();
84
195
        UInt8* __restrict c_pos = c.data();
85
195
        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
195
    }
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
110
                                          PaddedPODArray<UInt8>& c) {
82
110
        size_t size = a.size();
83
110
        const A* __restrict a_pos = a.data();
84
110
        UInt8* __restrict c_pos = c.data();
85
110
        const A* __restrict a_end = a_pos + size;
86
87
27.9k
        while (a_pos < a_end) {
88
27.8k
            *c_pos = Op::apply(*a_pos, b);
89
27.8k
            ++a_pos;
90
27.8k
            ++c_pos;
91
27.8k
        }
92
110
    }
_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
70.3k
        while (a_pos < a_end) {
88
70.2k
            *c_pos = Op::apply(*a_pos, b);
89
70.2k
            ++a_pos;
90
70.2k
            ++c_pos;
91
70.2k
        }
92
116
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
1.10k
                                          PaddedPODArray<UInt8>& c) {
82
1.10k
        size_t size = a.size();
83
1.10k
        const A* __restrict a_pos = a.data();
84
1.10k
        UInt8* __restrict c_pos = c.data();
85
1.10k
        const A* __restrict a_end = a_pos + size;
86
87
4.42M
        while (a_pos < a_end) {
88
4.42M
            *c_pos = Op::apply(*a_pos, b);
89
4.42M
            ++a_pos;
90
4.42M
            ++c_pos;
91
4.42M
        }
92
1.10k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
3.60k
                                          PaddedPODArray<UInt8>& c) {
82
3.60k
        size_t size = a.size();
83
3.60k
        const A* __restrict a_pos = a.data();
84
3.60k
        UInt8* __restrict c_pos = c.data();
85
3.60k
        const A* __restrict a_end = a_pos + size;
86
87
27.6M
        while (a_pos < a_end) {
88
27.6M
            *c_pos = Op::apply(*a_pos, b);
89
27.6M
            ++a_pos;
90
27.6M
            ++c_pos;
91
27.6M
        }
92
3.60k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
481
                                          PaddedPODArray<UInt8>& c) {
82
481
        size_t size = a.size();
83
481
        const A* __restrict a_pos = a.data();
84
481
        UInt8* __restrict c_pos = c.data();
85
481
        const A* __restrict a_end = a_pos + size;
86
87
1.42k
        while (a_pos < a_end) {
88
942
            *c_pos = Op::apply(*a_pos, b);
89
942
            ++a_pos;
90
942
            ++c_pos;
91
942
        }
92
481
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
262
                                          PaddedPODArray<UInt8>& c) {
82
262
        size_t size = a.size();
83
262
        const A* __restrict a_pos = a.data();
84
262
        UInt8* __restrict c_pos = c.data();
85
262
        const A* __restrict a_end = a_pos + size;
86
87
596
        while (a_pos < a_end) {
88
334
            *c_pos = Op::apply(*a_pos, b);
89
334
            ++a_pos;
90
334
            ++c_pos;
91
334
        }
92
262
    }
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
71
                                          PaddedPODArray<UInt8>& c) {
82
71
        size_t size = a.size();
83
71
        const A* __restrict a_pos = a.data();
84
71
        UInt8* __restrict c_pos = c.data();
85
71
        const A* __restrict a_end = a_pos + size;
86
87
78.3k
        while (a_pos < a_end) {
88
78.2k
            *c_pos = Op::apply(*a_pos, b);
89
78.2k
            ++a_pos;
90
78.2k
            ++c_pos;
91
78.2k
        }
92
71
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
95
                                          PaddedPODArray<UInt8>& c) {
82
95
        size_t size = a.size();
83
95
        const A* __restrict a_pos = a.data();
84
95
        UInt8* __restrict c_pos = c.data();
85
95
        const A* __restrict a_end = a_pos + size;
86
87
88.7k
        while (a_pos < a_end) {
88
88.6k
            *c_pos = Op::apply(*a_pos, b);
89
88.6k
            ++a_pos;
90
88.6k
            ++c_pos;
91
88.6k
        }
92
95
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
68
                                          PaddedPODArray<UInt8>& c) {
82
68
        size_t size = a.size();
83
68
        const A* __restrict a_pos = a.data();
84
68
        UInt8* __restrict c_pos = c.data();
85
68
        const A* __restrict a_end = a_pos + size;
86
87
11.6k
        while (a_pos < a_end) {
88
11.5k
            *c_pos = Op::apply(*a_pos, b);
89
11.5k
            ++a_pos;
90
11.5k
            ++c_pos;
91
11.5k
        }
92
68
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
97
                                          PaddedPODArray<UInt8>& c) {
82
97
        size_t size = a.size();
83
97
        const A* __restrict a_pos = a.data();
84
97
        UInt8* __restrict c_pos = c.data();
85
97
        const A* __restrict a_end = a_pos + size;
86
87
29.6k
        while (a_pos < a_end) {
88
29.5k
            *c_pos = Op::apply(*a_pos, b);
89
29.5k
            ++a_pos;
90
29.5k
            ++c_pos;
91
29.5k
        }
92
97
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
10.4k
                                          PaddedPODArray<UInt8>& c) {
82
10.4k
        size_t size = a.size();
83
10.4k
        const A* __restrict a_pos = a.data();
84
10.4k
        UInt8* __restrict c_pos = c.data();
85
10.4k
        const A* __restrict a_end = a_pos + size;
86
87
44.6M
        while (a_pos < a_end) {
88
44.6M
            *c_pos = Op::apply(*a_pos, b);
89
44.6M
            ++a_pos;
90
44.6M
            ++c_pos;
91
44.6M
        }
92
10.4k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
10.4k
                                          PaddedPODArray<UInt8>& c) {
82
10.4k
        size_t size = a.size();
83
10.4k
        const A* __restrict a_pos = a.data();
84
10.4k
        UInt8* __restrict c_pos = c.data();
85
10.4k
        const A* __restrict a_end = a_pos + size;
86
87
44.6M
        while (a_pos < a_end) {
88
44.5M
            *c_pos = Op::apply(*a_pos, b);
89
44.5M
            ++a_pos;
90
44.5M
            ++c_pos;
91
44.5M
        }
92
10.4k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
326
                                          PaddedPODArray<UInt8>& c) {
82
326
        size_t size = a.size();
83
326
        const A* __restrict a_pos = a.data();
84
326
        UInt8* __restrict c_pos = c.data();
85
326
        const A* __restrict a_end = a_pos + size;
86
87
14.7k
        while (a_pos < a_end) {
88
14.4k
            *c_pos = Op::apply(*a_pos, b);
89
14.4k
            ++a_pos;
90
14.4k
            ++c_pos;
91
14.4k
        }
92
326
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
383
                                          PaddedPODArray<UInt8>& c) {
82
383
        size_t size = a.size();
83
383
        const A* __restrict a_pos = a.data();
84
383
        UInt8* __restrict c_pos = c.data();
85
383
        const A* __restrict a_end = a_pos + size;
86
87
4.03k
        while (a_pos < a_end) {
88
3.65k
            *c_pos = Op::apply(*a_pos, b);
89
3.65k
            ++a_pos;
90
3.65k
            ++c_pos;
91
3.65k
        }
92
383
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_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
83.7k
        while (a_pos < a_end) {
88
83.7k
            *c_pos = Op::apply(*a_pos, b);
89
83.7k
            ++a_pos;
90
83.7k
            ++c_pos;
91
83.7k
        }
92
40
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
27
                                          PaddedPODArray<UInt8>& c) {
82
27
        size_t size = a.size();
83
27
        const A* __restrict a_pos = a.data();
84
27
        UInt8* __restrict c_pos = c.data();
85
27
        const A* __restrict a_end = a_pos + size;
86
87
9.16k
        while (a_pos < a_end) {
88
9.13k
            *c_pos = Op::apply(*a_pos, b);
89
9.13k
            ++a_pos;
90
9.13k
            ++c_pos;
91
9.13k
        }
92
27
    }
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
10
                                          PaddedPODArray<UInt8>& c) {
82
10
        size_t size = a.size();
83
10
        const A* __restrict a_pos = a.data();
84
10
        UInt8* __restrict c_pos = c.data();
85
10
        const A* __restrict a_end = a_pos + size;
86
87
110
        while (a_pos < a_end) {
88
100
            *c_pos = Op::apply(*a_pos, b);
89
100
            ++a_pos;
90
100
            ++c_pos;
91
100
        }
92
10
    }
_ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
10
                                          PaddedPODArray<UInt8>& c) {
82
10
        size_t size = a.size();
83
10
        const A* __restrict a_pos = a.data();
84
10
        UInt8* __restrict c_pos = c.data();
85
10
        const A* __restrict a_end = a_pos + size;
86
87
110
        while (a_pos < a_end) {
88
100
            *c_pos = Op::apply(*a_pos, b);
89
100
            ++a_pos;
90
100
            ++c_pos;
91
100
        }
92
10
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
106
                                          PaddedPODArray<UInt8>& c) {
82
106
        size_t size = a.size();
83
106
        const A* __restrict a_pos = a.data();
84
106
        UInt8* __restrict c_pos = c.data();
85
106
        const A* __restrict a_end = a_pos + size;
86
87
215
        while (a_pos < a_end) {
88
109
            *c_pos = Op::apply(*a_pos, b);
89
109
            ++a_pos;
90
109
            ++c_pos;
91
109
        }
92
106
    }
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
100
                                          PaddedPODArray<UInt8>& c) {
82
100
        size_t size = a.size();
83
100
        const A* __restrict a_pos = a.data();
84
100
        UInt8* __restrict c_pos = c.data();
85
100
        const A* __restrict a_end = a_pos + size;
86
87
200
        while (a_pos < a_end) {
88
100
            *c_pos = Op::apply(*a_pos, b);
89
100
            ++a_pos;
90
100
            ++c_pos;
91
100
        }
92
100
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
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
276k
        while (a_pos < a_end) {
88
275k
            *c_pos = Op::apply(*a_pos, b);
89
275k
            ++a_pos;
90
275k
            ++c_pos;
91
275k
        }
92
104
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
118
                                          PaddedPODArray<UInt8>& c) {
82
118
        size_t size = a.size();
83
118
        const A* __restrict a_pos = a.data();
84
118
        UInt8* __restrict c_pos = c.data();
85
118
        const A* __restrict a_end = a_pos + size;
86
87
275k
        while (a_pos < a_end) {
88
275k
            *c_pos = Op::apply(*a_pos, b);
89
275k
            ++a_pos;
90
275k
            ++c_pos;
91
275k
        }
92
118
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
93
94
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
99
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
99
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
179k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
179k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
179k
        }
113
99
    }
_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
39
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
39
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
122k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
122k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
122k
        }
113
39
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
23
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
23
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
56.6k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
56.6k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
56.6k
        }
113
23
    }
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
468
                                                      PaddedPODArray<UInt8>& c) {
127
468
        size_t size = a_offsets.size();
128
468
        ColumnString::Offset prev_a_offset = 0;
129
468
        ColumnString::Offset prev_b_offset = 0;
130
468
        const auto* a_pos = a_data.data();
131
468
        const auto* b_pos = b_data.data();
132
133
1.23k
        for (size_t i = 0; i < size; ++i) {
134
765
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
765
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
765
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
765
                             0);
138
139
765
            prev_a_offset = a_offsets[i];
140
765
            prev_b_offset = b_offsets[i];
141
765
        }
142
468
    }
_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
420
                                                      PaddedPODArray<UInt8>& c) {
127
420
        size_t size = a_offsets.size();
128
420
        ColumnString::Offset prev_a_offset = 0;
129
420
        ColumnString::Offset prev_b_offset = 0;
130
420
        const auto* a_pos = a_data.data();
131
420
        const auto* b_pos = b_data.data();
132
133
844
        for (size_t i = 0; i < size; ++i) {
134
424
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
424
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
424
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
424
                             0);
138
139
424
            prev_a_offset = a_offsets[i];
140
424
            prev_b_offset = b_offsets[i];
141
424
        }
142
420
    }
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.24k
                                                 PaddedPODArray<UInt8>& c) {
149
1.24k
        size_t size = a_offsets.size();
150
1.24k
        ColumnString::Offset prev_a_offset = 0;
151
1.24k
        const auto* a_pos = a_data.data();
152
1.24k
        const auto* b_pos = b_data.data();
153
154
1.06M
        for (size_t i = 0; i < size; ++i) {
155
1.06M
            c[i] = Op::apply(
156
1.06M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
1.06M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
1.06M
                    0);
159
160
1.06M
            prev_a_offset = a_offsets[i];
161
1.06M
        }
162
1.24k
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
196
                                                 PaddedPODArray<UInt8>& c) {
149
196
        size_t size = a_offsets.size();
150
196
        ColumnString::Offset prev_a_offset = 0;
151
196
        const auto* a_pos = a_data.data();
152
196
        const auto* b_pos = b_data.data();
153
154
325k
        for (size_t i = 0; i < size; ++i) {
155
325k
            c[i] = Op::apply(
156
325k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
325k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
325k
                    0);
159
160
325k
            prev_a_offset = a_offsets[i];
161
325k
        }
162
196
    }
_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.9k
        for (size_t i = 0; i < size; ++i) {
155
72.7k
            c[i] = Op::apply(
156
72.7k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
72.7k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
72.7k
                    0);
159
160
72.7k
            prev_a_offset = a_offsets[i];
161
72.7k
        }
162
215
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
433
                                                 PaddedPODArray<UInt8>& c) {
149
433
        size_t size = a_offsets.size();
150
433
        ColumnString::Offset prev_a_offset = 0;
151
433
        const auto* a_pos = a_data.data();
152
433
        const auto* b_pos = b_data.data();
153
154
342k
        for (size_t i = 0; i < size; ++i) {
155
342k
            c[i] = Op::apply(
156
342k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
342k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
342k
                    0);
159
160
342k
            prev_a_offset = a_offsets[i];
161
342k
        }
162
433
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
403
                                                 PaddedPODArray<UInt8>& c) {
149
403
        size_t size = a_offsets.size();
150
403
        ColumnString::Offset prev_a_offset = 0;
151
403
        const auto* a_pos = a_data.data();
152
403
        const auto* b_pos = b_data.data();
153
154
328k
        for (size_t i = 0; i < size; ++i) {
155
327k
            c[i] = Op::apply(
156
327k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
327k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
327k
                    0);
159
160
327k
            prev_a_offset = a_offsets[i];
161
327k
        }
162
403
    }
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
455
                                                      PaddedPODArray<UInt8>& c) {
181
455
        size_t size = a_offsets.size();
182
455
        ColumnString::Offset prev_a_offset = 0;
183
455
        ColumnString::Offset prev_b_offset = 0;
184
455
        const auto* a_pos = a_data.data();
185
455
        const auto* b_pos = b_data.data();
186
187
1.38k
        for (size_t i = 0; i < size; ++i) {
188
926
            auto a_size = a_offsets[i] - prev_a_offset;
189
926
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
926
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
926
                                                               b_pos + prev_b_offset, b_size);
193
194
926
            prev_a_offset = a_offsets[i];
195
926
            prev_b_offset = b_offsets[i];
196
926
        }
197
455
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
454
                                                      PaddedPODArray<UInt8>& c) {
181
454
        size_t size = a_offsets.size();
182
454
        ColumnString::Offset prev_a_offset = 0;
183
454
        ColumnString::Offset prev_b_offset = 0;
184
454
        const auto* a_pos = a_data.data();
185
454
        const auto* b_pos = b_data.data();
186
187
1.37k
        for (size_t i = 0; i < size; ++i) {
188
922
            auto a_size = a_offsets[i] - prev_a_offset;
189
922
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
922
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
922
                                                               b_pos + prev_b_offset, b_size);
193
194
922
            prev_a_offset = a_offsets[i];
195
922
            prev_b_offset = b_offsets[i];
196
922
        }
197
454
    }
_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
18.6k
                                                 PaddedPODArray<UInt8>& c) {
204
18.6k
        size_t size = a_offsets.size();
205
18.6k
        if (b_size == 0) {
206
37
            auto* __restrict data = c.data();
207
37
            auto* __restrict offsets = a_offsets.data();
208
209
37
            ColumnString::Offset prev_a_offset = 0;
210
1.18k
            for (size_t i = 0; i < size; ++i) {
211
1.14k
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
1.14k
                prev_a_offset = offsets[i];
213
1.14k
            }
214
18.6k
        } else {
215
18.6k
            ColumnString::Offset prev_a_offset = 0;
216
18.6k
            const auto* a_pos = a_data.data();
217
18.6k
            const auto* b_pos = b_data.data();
218
6.90M
            for (size_t i = 0; i < size; ++i) {
219
6.88M
                auto a_size = a_offsets[i] - prev_a_offset;
220
6.88M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
6.88M
                                                                   b_pos, b_size);
222
6.88M
                prev_a_offset = a_offsets[i];
223
6.88M
            }
224
18.6k
        }
225
18.6k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
18.0k
                                                 PaddedPODArray<UInt8>& c) {
204
18.0k
        size_t size = a_offsets.size();
205
18.0k
        if (b_size == 0) {
206
12
            auto* __restrict data = c.data();
207
12
            auto* __restrict offsets = a_offsets.data();
208
209
12
            ColumnString::Offset prev_a_offset = 0;
210
76
            for (size_t i = 0; i < size; ++i) {
211
64
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
64
                prev_a_offset = offsets[i];
213
64
            }
214
18.0k
        } else {
215
18.0k
            ColumnString::Offset prev_a_offset = 0;
216
18.0k
            const auto* a_pos = a_data.data();
217
18.0k
            const auto* b_pos = b_data.data();
218
6.68M
            for (size_t i = 0; i < size; ++i) {
219
6.66M
                auto a_size = a_offsets[i] - prev_a_offset;
220
6.66M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
6.66M
                                                                   b_pos, b_size);
222
6.66M
                prev_a_offset = a_offsets[i];
223
6.66M
            }
224
18.0k
        }
225
18.0k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
666
                                                 PaddedPODArray<UInt8>& c) {
204
666
        size_t size = a_offsets.size();
205
666
        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
641
        } else {
215
641
            ColumnString::Offset prev_a_offset = 0;
216
641
            const auto* a_pos = a_data.data();
217
641
            const auto* b_pos = b_data.data();
218
220k
            for (size_t i = 0; i < size; ++i) {
219
219k
                auto a_size = a_offsets[i] - prev_a_offset;
220
219k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
219k
                                                                   b_pos, b_size);
222
219k
                prev_a_offset = a_offsets[i];
223
219k
            }
224
641
        }
225
666
    }
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
464k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
265
397k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
265
1.37k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
265
6.46k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
265
27.6k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
265
3.21k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
265
28.1k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
266
267
464k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
267
397k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
267
1.37k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
267
6.46k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
267
27.6k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
267
3.21k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
267
28.1k
    FunctionComparison() = default;
268
269
1.14M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
269
1.10M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
269
1.17k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
269
6.67k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
269
18.4k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
269
3.36k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
269
17.0k
    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
82.4k
                            const ColumnPtr& col_right_ptr) const {
275
82.4k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
82.4k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
82.4k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
82.4k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
82.4k
        DCHECK(!(left_is_const && right_is_const));
282
283
82.4k
        if (!left_is_const && !right_is_const) {
284
12.0k
            auto col_res = ColumnUInt8::create();
285
286
12.0k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
12.0k
            vec_res.resize(col_left->get_data().size());
288
12.0k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
12.0k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
12.0k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
12.0k
                                                     vec_res);
292
293
12.0k
            block.replace_by_position(result, std::move(col_res));
294
70.3k
        } else if (!left_is_const && right_is_const) {
295
70.3k
            auto col_res = ColumnUInt8::create();
296
297
70.3k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
70.3k
            vec_res.resize(col_left->size());
299
70.3k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
70.3k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
70.3k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
70.3k
                                                       col_right->get_element(0), vec_res);
303
304
70.3k
            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
82.4k
        return Status::OK();
318
82.4k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
860
                            const ColumnPtr& col_right_ptr) const {
275
860
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
860
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
860
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
860
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
860
        DCHECK(!(left_is_const && right_is_const));
282
283
860
        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
790
        } else if (!left_is_const && right_is_const) {
295
790
            auto col_res = ColumnUInt8::create();
296
297
790
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
790
            vec_res.resize(col_left->size());
299
790
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
790
                              typename PrimitiveTypeTraits<PT>::CppType,
301
790
                              Op<PT>>::vector_constant(col_left->get_data(),
302
790
                                                       col_right->get_element(0), vec_res);
303
304
790
            block.replace_by_position(result, std::move(col_res));
305
790
        } 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
860
        return Status::OK();
318
860
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.42k
                            const ColumnPtr& col_right_ptr) const {
275
1.42k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.42k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.42k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.42k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.42k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.42k
        if (!left_is_const && !right_is_const) {
284
334
            auto col_res = ColumnUInt8::create();
285
286
334
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
334
            vec_res.resize(col_left->get_data().size());
288
334
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
334
                              typename PrimitiveTypeTraits<PT>::CppType,
290
334
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
334
                                                     vec_res);
292
293
334
            block.replace_by_position(result, std::move(col_res));
294
1.08k
        } else if (!left_is_const && right_is_const) {
295
1.08k
            auto col_res = ColumnUInt8::create();
296
297
1.08k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.08k
            vec_res.resize(col_left->size());
299
1.08k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.08k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.08k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.08k
                                                       col_right->get_element(0), vec_res);
303
304
1.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
1.42k
        return Status::OK();
318
1.42k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
630
                            const ColumnPtr& col_right_ptr) const {
275
630
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
630
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
630
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
630
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
630
        DCHECK(!(left_is_const && right_is_const));
282
283
630
        if (!left_is_const && !right_is_const) {
284
238
            auto col_res = ColumnUInt8::create();
285
286
238
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
238
            vec_res.resize(col_left->get_data().size());
288
238
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
238
                              typename PrimitiveTypeTraits<PT>::CppType,
290
238
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
238
                                                     vec_res);
292
293
238
            block.replace_by_position(result, std::move(col_res));
294
393
        } else if (!left_is_const && right_is_const) {
295
393
            auto col_res = ColumnUInt8::create();
296
297
393
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
393
            vec_res.resize(col_left->size());
299
393
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
393
                              typename PrimitiveTypeTraits<PT>::CppType,
301
393
                              Op<PT>>::vector_constant(col_left->get_data(),
302
393
                                                       col_right->get_element(0), vec_res);
303
304
393
            block.replace_by_position(result, std::move(col_res));
305
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
630
        return Status::OK();
318
630
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3.78k
                            const ColumnPtr& col_right_ptr) const {
275
3.78k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.78k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.78k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.78k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.78k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.78k
        if (!left_is_const && !right_is_const) {
284
877
            auto col_res = ColumnUInt8::create();
285
286
877
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
877
            vec_res.resize(col_left->get_data().size());
288
877
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
877
                              typename PrimitiveTypeTraits<PT>::CppType,
290
877
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
877
                                                     vec_res);
292
293
877
            block.replace_by_position(result, std::move(col_res));
294
2.91k
        } else if (!left_is_const && right_is_const) {
295
2.91k
            auto col_res = ColumnUInt8::create();
296
297
2.91k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2.91k
            vec_res.resize(col_left->size());
299
2.91k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2.91k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2.91k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2.91k
                                                       col_right->get_element(0), vec_res);
303
304
2.91k
            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
3.78k
        return Status::OK();
318
3.78k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
747
                            const ColumnPtr& col_right_ptr) const {
275
747
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
747
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
747
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
747
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
747
        DCHECK(!(left_is_const && right_is_const));
282
283
748
        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
626
        } else if (!left_is_const && right_is_const) {
295
626
            auto col_res = ColumnUInt8::create();
296
297
626
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
626
            vec_res.resize(col_left->size());
299
626
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
626
                              typename PrimitiveTypeTraits<PT>::CppType,
301
626
                              Op<PT>>::vector_constant(col_left->get_data(),
302
626
                                                       col_right->get_element(0), vec_res);
303
304
626
            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
747
        return Status::OK();
318
747
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
6.34k
                            const ColumnPtr& col_right_ptr) const {
275
6.34k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
6.34k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
6.34k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
6.34k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
6.34k
        DCHECK(!(left_is_const && right_is_const));
282
283
6.34k
        if (!left_is_const && !right_is_const) {
284
268
            auto col_res = ColumnUInt8::create();
285
286
268
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
268
            vec_res.resize(col_left->get_data().size());
288
268
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
268
                              typename PrimitiveTypeTraits<PT>::CppType,
290
268
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
268
                                                     vec_res);
292
293
268
            block.replace_by_position(result, std::move(col_res));
294
6.07k
        } else if (!left_is_const && right_is_const) {
295
6.06k
            auto col_res = ColumnUInt8::create();
296
297
6.06k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6.06k
            vec_res.resize(col_left->size());
299
6.06k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6.06k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6.06k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6.06k
                                                       col_right->get_element(0), vec_res);
303
304
6.06k
            block.replace_by_position(result, std::move(col_res));
305
6.06k
        } 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.34k
        return Status::OK();
318
6.34k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
9.11k
                            const ColumnPtr& col_right_ptr) const {
275
9.11k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
9.11k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
9.11k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
9.11k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
9.11k
        DCHECK(!(left_is_const && right_is_const));
282
283
9.12k
        if (!left_is_const && !right_is_const) {
284
408
            auto col_res = ColumnUInt8::create();
285
286
408
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
408
            vec_res.resize(col_left->get_data().size());
288
408
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
408
                              typename PrimitiveTypeTraits<PT>::CppType,
290
408
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
408
                                                     vec_res);
292
293
408
            block.replace_by_position(result, std::move(col_res));
294
8.71k
        } else if (!left_is_const && right_is_const) {
295
8.71k
            auto col_res = ColumnUInt8::create();
296
297
8.71k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
8.71k
            vec_res.resize(col_left->size());
299
8.71k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
8.71k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
8.71k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
8.71k
                                                       col_right->get_element(0), vec_res);
303
304
8.71k
            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.11k
        return Status::OK();
318
9.11k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
108
                            const ColumnPtr& col_right_ptr) const {
275
108
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
108
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
108
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
108
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
108
        DCHECK(!(left_is_const && right_is_const));
282
283
108
        if (!left_is_const && !right_is_const) {
284
68
            auto col_res = ColumnUInt8::create();
285
286
68
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
68
            vec_res.resize(col_left->get_data().size());
288
68
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
68
                              typename PrimitiveTypeTraits<PT>::CppType,
290
68
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
68
                                                     vec_res);
292
293
68
            block.replace_by_position(result, std::move(col_res));
294
68
        } 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
108
        return Status::OK();
318
108
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_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
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
14
        } else if (!left_is_const && right_is_const) {
295
14
            auto col_res = ColumnUInt8::create();
296
297
14
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
14
            vec_res.resize(col_left->size());
299
14
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
14
                              typename PrimitiveTypeTraits<PT>::CppType,
301
14
                              Op<PT>>::vector_constant(col_left->get_data(),
302
14
                                                       col_right->get_element(0), vec_res);
303
304
14
            block.replace_by_position(result, std::move(col_res));
305
14
        } 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_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
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
97
        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
94
        } 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
96
        return Status::OK();
318
96
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
301
                            const ColumnPtr& col_right_ptr) const {
275
301
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
301
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
301
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
301
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
301
        DCHECK(!(left_is_const && right_is_const));
282
283
302
        if (!left_is_const && !right_is_const) {
284
101
            auto col_res = ColumnUInt8::create();
285
286
101
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
101
            vec_res.resize(col_left->get_data().size());
288
101
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
101
                              typename PrimitiveTypeTraits<PT>::CppType,
290
101
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
101
                                                     vec_res);
292
293
101
            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
200
        } 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
301
        return Status::OK();
318
301
    }
_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
895
                            const ColumnPtr& col_right_ptr) const {
275
895
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
895
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
895
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
895
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
895
        DCHECK(!(left_is_const && right_is_const));
282
283
895
        if (!left_is_const && !right_is_const) {
284
360
            auto col_res = ColumnUInt8::create();
285
286
360
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
360
            vec_res.resize(col_left->get_data().size());
288
360
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
360
                              typename PrimitiveTypeTraits<PT>::CppType,
290
360
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
360
                                                     vec_res);
292
293
360
            block.replace_by_position(result, std::move(col_res));
294
535
        } else if (!left_is_const && right_is_const) {
295
535
            auto col_res = ColumnUInt8::create();
296
297
535
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
535
            vec_res.resize(col_left->size());
299
535
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
535
                              typename PrimitiveTypeTraits<PT>::CppType,
301
535
                              Op<PT>>::vector_constant(col_left->get_data(),
302
535
                                                       col_right->get_element(0), vec_res);
303
304
535
            block.replace_by_position(result, std::move(col_res));
305
535
        } 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
895
        return Status::OK();
318
895
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
987
                            const ColumnPtr& col_right_ptr) const {
275
987
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
987
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
987
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
987
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
987
        DCHECK(!(left_is_const && right_is_const));
282
283
987
        if (!left_is_const && !right_is_const) {
284
444
            auto col_res = ColumnUInt8::create();
285
286
444
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
444
            vec_res.resize(col_left->get_data().size());
288
444
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
444
                              typename PrimitiveTypeTraits<PT>::CppType,
290
444
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
444
                                                     vec_res);
292
293
444
            block.replace_by_position(result, std::move(col_res));
294
543
        } else if (!left_is_const && right_is_const) {
295
543
            auto col_res = ColumnUInt8::create();
296
297
543
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
543
            vec_res.resize(col_left->size());
299
543
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
543
                              typename PrimitiveTypeTraits<PT>::CppType,
301
543
                              Op<PT>>::vector_constant(col_left->get_data(),
302
543
                                                       col_right->get_element(0), vec_res);
303
304
543
            block.replace_by_position(result, std::move(col_res));
305
543
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
987
        return Status::OK();
318
987
    }
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.01k
                            const ColumnPtr& col_right_ptr) const {
275
1.01k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.01k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.01k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.01k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.01k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.01k
        if (!left_is_const && !right_is_const) {
284
932
            auto col_res = ColumnUInt8::create();
285
286
932
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
932
            vec_res.resize(col_left->get_data().size());
288
932
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
932
                              typename PrimitiveTypeTraits<PT>::CppType,
290
932
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
932
                                                     vec_res);
292
293
932
            block.replace_by_position(result, std::move(col_res));
294
932
        } else if (!left_is_const && right_is_const) {
295
78
            auto col_res = ColumnUInt8::create();
296
297
78
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
78
            vec_res.resize(col_left->size());
299
78
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
78
                              typename PrimitiveTypeTraits<PT>::CppType,
301
78
                              Op<PT>>::vector_constant(col_left->get_data(),
302
78
                                                       col_right->get_element(0), vec_res);
303
304
78
            block.replace_by_position(result, std::move(col_res));
305
78
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.01k
        return Status::OK();
318
1.01k
    }
_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
809
                            const ColumnPtr& col_right_ptr) const {
275
809
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
809
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
809
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
809
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
809
        DCHECK(!(left_is_const && right_is_const));
282
283
809
        if (!left_is_const && !right_is_const) {
284
385
            auto col_res = ColumnUInt8::create();
285
286
385
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
385
            vec_res.resize(col_left->get_data().size());
288
385
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
385
                              typename PrimitiveTypeTraits<PT>::CppType,
290
385
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
385
                                                     vec_res);
292
293
385
            block.replace_by_position(result, std::move(col_res));
294
424
        } else if (!left_is_const && right_is_const) {
295
424
            auto col_res = ColumnUInt8::create();
296
297
424
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
424
            vec_res.resize(col_left->size());
299
424
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
424
                              typename PrimitiveTypeTraits<PT>::CppType,
301
424
                              Op<PT>>::vector_constant(col_left->get_data(),
302
424
                                                       col_right->get_element(0), vec_res);
303
304
424
            block.replace_by_position(result, std::move(col_res));
305
424
        } 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
809
        return Status::OK();
318
809
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.07k
                            const ColumnPtr& col_right_ptr) const {
275
1.07k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.07k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.07k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.07k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.07k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.08k
        if (!left_is_const && !right_is_const) {
284
624
            auto col_res = ColumnUInt8::create();
285
286
624
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
624
            vec_res.resize(col_left->get_data().size());
288
624
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
624
                              typename PrimitiveTypeTraits<PT>::CppType,
290
624
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
624
                                                     vec_res);
292
293
624
            block.replace_by_position(result, std::move(col_res));
294
624
        } else if (!left_is_const && right_is_const) {
295
455
            auto col_res = ColumnUInt8::create();
296
297
455
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
455
            vec_res.resize(col_left->size());
299
455
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
455
                              typename PrimitiveTypeTraits<PT>::CppType,
301
455
                              Op<PT>>::vector_constant(col_left->get_data(),
302
455
                                                       col_right->get_element(0), vec_res);
303
304
455
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.07k
        return Status::OK();
318
1.07k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
7.74k
                            const ColumnPtr& col_right_ptr) const {
275
7.74k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
7.74k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
7.74k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
7.74k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
7.74k
        DCHECK(!(left_is_const && right_is_const));
282
283
7.75k
        if (!left_is_const && !right_is_const) {
284
1.78k
            auto col_res = ColumnUInt8::create();
285
286
1.78k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.78k
            vec_res.resize(col_left->get_data().size());
288
1.78k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.78k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.78k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.78k
                                                     vec_res);
292
293
1.78k
            block.replace_by_position(result, std::move(col_res));
294
5.97k
        } else if (!left_is_const && right_is_const) {
295
5.97k
            auto col_res = ColumnUInt8::create();
296
297
5.97k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
5.97k
            vec_res.resize(col_left->size());
299
5.97k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
5.97k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
5.97k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
5.97k
                                                       col_right->get_element(0), vec_res);
303
304
5.97k
            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
7.74k
        return Status::OK();
318
7.74k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
7.99k
                            const ColumnPtr& col_right_ptr) const {
275
7.99k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
7.99k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
7.99k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
7.99k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
7.99k
        DCHECK(!(left_is_const && right_is_const));
282
283
7.99k
        if (!left_is_const && !right_is_const) {
284
171
            auto col_res = ColumnUInt8::create();
285
286
171
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
171
            vec_res.resize(col_left->get_data().size());
288
171
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
171
                              typename PrimitiveTypeTraits<PT>::CppType,
290
171
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
171
                                                     vec_res);
292
293
171
            block.replace_by_position(result, std::move(col_res));
294
7.82k
        } else if (!left_is_const && right_is_const) {
295
7.82k
            auto col_res = ColumnUInt8::create();
296
297
7.82k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
7.82k
            vec_res.resize(col_left->size());
299
7.82k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
7.82k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
7.82k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
7.82k
                                                       col_right->get_element(0), vec_res);
303
304
7.82k
            block.replace_by_position(result, std::move(col_res));
305
7.82k
        } 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.99k
        return Status::OK();
318
7.99k
    }
_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
41
            auto col_res = ColumnUInt8::create();
285
286
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
41
            vec_res.resize(col_left->get_data().size());
288
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
41
                              typename PrimitiveTypeTraits<PT>::CppType,
290
41
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
41
                                                     vec_res);
292
293
41
            block.replace_by_position(result, std::move(col_res));
294
206
        } else if (!left_is_const && right_is_const) {
295
206
            auto col_res = ColumnUInt8::create();
296
297
206
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
206
            vec_res.resize(col_left->size());
299
206
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
206
                              typename PrimitiveTypeTraits<PT>::CppType,
301
206
                              Op<PT>>::vector_constant(col_left->get_data(),
302
206
                                                       col_right->get_element(0), vec_res);
303
304
206
            block.replace_by_position(result, std::move(col_res));
305
206
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
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
210
            auto col_res = ColumnUInt8::create();
296
297
210
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
210
            vec_res.resize(col_left->size());
299
210
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
210
                              typename PrimitiveTypeTraits<PT>::CppType,
301
210
                              Op<PT>>::vector_constant(col_left->get_data(),
302
210
                                                       col_right->get_element(0), vec_res);
303
304
210
            block.replace_by_position(result, std::move(col_res));
305
210
        } 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.66k
                            const ColumnPtr& col_right_ptr) const {
275
1.66k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.66k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.66k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.66k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.66k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.66k
        if (!left_is_const && !right_is_const) {
284
49
            auto col_res = ColumnUInt8::create();
285
286
49
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
49
            vec_res.resize(col_left->get_data().size());
288
49
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
49
                              typename PrimitiveTypeTraits<PT>::CppType,
290
49
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
49
                                                     vec_res);
292
293
49
            block.replace_by_position(result, std::move(col_res));
294
1.61k
        } else if (!left_is_const && right_is_const) {
295
1.61k
            auto col_res = ColumnUInt8::create();
296
297
1.61k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.61k
            vec_res.resize(col_left->size());
299
1.61k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.61k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.61k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.61k
                                                       col_right->get_element(0), vec_res);
303
304
1.61k
            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.66k
        return Status::OK();
318
1.66k
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
110
                            const ColumnPtr& col_right_ptr) const {
275
110
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
110
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
110
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
110
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
110
        DCHECK(!(left_is_const && right_is_const));
282
283
110
        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
110
        } else if (!left_is_const && right_is_const) {
295
110
            auto col_res = ColumnUInt8::create();
296
297
110
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
110
            vec_res.resize(col_left->size());
299
110
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
110
                              typename PrimitiveTypeTraits<PT>::CppType,
301
110
                              Op<PT>>::vector_constant(col_left->get_data(),
302
110
                                                       col_right->get_element(0), vec_res);
303
304
110
            block.replace_by_position(result, std::move(col_res));
305
110
        } 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
110
        return Status::OK();
318
110
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.11k
                            const ColumnPtr& col_right_ptr) const {
275
1.11k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.11k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.11k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.11k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.11k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.11k
        if (!left_is_const && !right_is_const) {
284
7
            auto col_res = ColumnUInt8::create();
285
286
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
7
            vec_res.resize(col_left->get_data().size());
288
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
7
                              typename PrimitiveTypeTraits<PT>::CppType,
290
7
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
7
                                                     vec_res);
292
293
7
            block.replace_by_position(result, std::move(col_res));
294
1.10k
        } else if (!left_is_const && right_is_const) {
295
1.10k
            auto col_res = ColumnUInt8::create();
296
297
1.10k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.10k
            vec_res.resize(col_left->size());
299
1.10k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.10k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.10k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.10k
                                                       col_right->get_element(0), vec_res);
303
304
1.10k
            block.replace_by_position(result, std::move(col_res));
305
1.10k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.11k
        return Status::OK();
318
1.11k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
491
                            const ColumnPtr& col_right_ptr) const {
275
491
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
491
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
491
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
491
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
491
        DCHECK(!(left_is_const && right_is_const));
282
283
491
        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
481
        } else if (!left_is_const && right_is_const) {
295
481
            auto col_res = ColumnUInt8::create();
296
297
481
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
481
            vec_res.resize(col_left->size());
299
481
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
481
                              typename PrimitiveTypeTraits<PT>::CppType,
301
481
                              Op<PT>>::vector_constant(col_left->get_data(),
302
481
                                                       col_right->get_element(0), vec_res);
303
304
481
            block.replace_by_position(result, std::move(col_res));
305
481
        } 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
491
        return Status::OK();
318
491
    }
_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
71
                            const ColumnPtr& col_right_ptr) const {
275
71
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
71
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
71
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
71
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
71
        DCHECK(!(left_is_const && right_is_const));
282
283
71
        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
71
        } else if (!left_is_const && right_is_const) {
295
71
            auto col_res = ColumnUInt8::create();
296
297
71
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
71
            vec_res.resize(col_left->size());
299
71
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
71
                              typename PrimitiveTypeTraits<PT>::CppType,
301
71
                              Op<PT>>::vector_constant(col_left->get_data(),
302
71
                                                       col_right->get_element(0), vec_res);
303
304
71
            block.replace_by_position(result, std::move(col_res));
305
71
        } 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
71
        return Status::OK();
318
71
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
68
                            const ColumnPtr& col_right_ptr) const {
275
68
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
68
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
68
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
68
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
68
        DCHECK(!(left_is_const && right_is_const));
282
283
68
        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
68
        } else if (!left_is_const && right_is_const) {
295
68
            auto col_res = ColumnUInt8::create();
296
297
68
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
68
            vec_res.resize(col_left->size());
299
68
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
68
                              typename PrimitiveTypeTraits<PT>::CppType,
301
68
                              Op<PT>>::vector_constant(col_left->get_data(),
302
68
                                                       col_right->get_element(0), vec_res);
303
304
68
            block.replace_by_position(result, std::move(col_res));
305
68
        } 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
68
        return Status::OK();
318
68
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
10.4k
                            const ColumnPtr& col_right_ptr) const {
275
10.4k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
10.4k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
10.4k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
10.4k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
10.4k
        DCHECK(!(left_is_const && right_is_const));
282
283
10.4k
        if (!left_is_const && !right_is_const) {
284
7
            auto col_res = ColumnUInt8::create();
285
286
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
7
            vec_res.resize(col_left->get_data().size());
288
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
7
                              typename PrimitiveTypeTraits<PT>::CppType,
290
7
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
7
                                                     vec_res);
292
293
7
            block.replace_by_position(result, std::move(col_res));
294
10.4k
        } else if (!left_is_const && right_is_const) {
295
10.4k
            auto col_res = ColumnUInt8::create();
296
297
10.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10.4k
            vec_res.resize(col_left->size());
299
10.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10.4k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10.4k
                                                       col_right->get_element(0), vec_res);
303
304
10.4k
            block.replace_by_position(result, std::move(col_res));
305
10.4k
        } 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.4k
        return Status::OK();
318
10.4k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
341
                            const ColumnPtr& col_right_ptr) const {
275
341
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
341
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
341
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
341
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
341
        DCHECK(!(left_is_const && right_is_const));
282
283
342
        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
326
        } else if (!left_is_const && right_is_const) {
295
326
            auto col_res = ColumnUInt8::create();
296
297
326
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
326
            vec_res.resize(col_left->size());
299
326
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
326
                              typename PrimitiveTypeTraits<PT>::CppType,
301
326
                              Op<PT>>::vector_constant(col_left->get_data(),
302
326
                                                       col_right->get_element(0), vec_res);
303
304
326
            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
341
        return Status::OK();
318
341
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
40
                            const ColumnPtr& col_right_ptr) const {
275
40
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
40
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
40
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
40
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
40
        DCHECK(!(left_is_const && right_is_const));
282
283
40
        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
40
        } else if (!left_is_const && right_is_const) {
295
40
            auto col_res = ColumnUInt8::create();
296
297
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
40
            vec_res.resize(col_left->size());
299
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
40
                              typename PrimitiveTypeTraits<PT>::CppType,
301
40
                              Op<PT>>::vector_constant(col_left->get_data(),
302
40
                                                       col_right->get_element(0), vec_res);
303
304
40
            block.replace_by_position(result, std::move(col_res));
305
40
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
40
        return Status::OK();
318
40
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
11
                            const ColumnPtr& col_right_ptr) const {
275
11
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
11
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
11
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
11
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
11
        DCHECK(!(left_is_const && right_is_const));
282
283
11
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
10
        } else if (!left_is_const && right_is_const) {
295
10
            auto col_res = ColumnUInt8::create();
296
297
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10
            vec_res.resize(col_left->size());
299
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10
                                                       col_right->get_element(0), vec_res);
303
304
10
            block.replace_by_position(result, std::move(col_res));
305
10
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
11
        return Status::OK();
318
11
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1
                            const ColumnPtr& col_right_ptr) const {
275
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1
        DCHECK(!(left_is_const && right_is_const));
282
283
1
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1
        return Status::OK();
318
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
126
                            const ColumnPtr& col_right_ptr) const {
275
126
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
126
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
126
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
126
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
126
        DCHECK(!(left_is_const && right_is_const));
282
283
126
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
106
        } else if (!left_is_const && right_is_const) {
295
106
            auto col_res = ColumnUInt8::create();
296
297
106
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
106
            vec_res.resize(col_left->size());
299
106
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
106
                              typename PrimitiveTypeTraits<PT>::CppType,
301
106
                              Op<PT>>::vector_constant(col_left->get_data(),
302
106
                                                       col_right->get_element(0), vec_res);
303
304
106
            block.replace_by_position(result, std::move(col_res));
305
106
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
126
        return Status::OK();
318
126
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
163
                            const ColumnPtr& col_right_ptr) const {
275
163
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
163
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
163
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
163
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
163
        DCHECK(!(left_is_const && right_is_const));
282
283
163
        if (!left_is_const && !right_is_const) {
284
59
            auto col_res = ColumnUInt8::create();
285
286
59
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
59
            vec_res.resize(col_left->get_data().size());
288
59
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
59
                              typename PrimitiveTypeTraits<PT>::CppType,
290
59
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
59
                                                     vec_res);
292
293
59
            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
163
        return Status::OK();
318
163
    }
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
75
                            const ColumnPtr& col_right_ptr) const {
275
75
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
75
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
75
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
75
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
75
        DCHECK(!(left_is_const && right_is_const));
282
283
75
        if (!left_is_const && !right_is_const) {
284
75
            auto col_res = ColumnUInt8::create();
285
286
75
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
75
            vec_res.resize(col_left->get_data().size());
288
75
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
75
                              typename PrimitiveTypeTraits<PT>::CppType,
290
75
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
75
                                                     vec_res);
292
293
75
            block.replace_by_position(result, std::move(col_res));
294
75
        } 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
75
        return Status::OK();
318
75
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.04k
                            const ColumnPtr& col_right_ptr) const {
275
2.04k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.04k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.04k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.04k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.04k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.04k
        if (!left_is_const && !right_is_const) {
284
1.60k
            auto col_res = ColumnUInt8::create();
285
286
1.60k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.60k
            vec_res.resize(col_left->get_data().size());
288
1.60k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.60k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.60k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.60k
                                                     vec_res);
292
293
1.60k
            block.replace_by_position(result, std::move(col_res));
294
1.60k
        } else if (!left_is_const && right_is_const) {
295
439
            auto col_res = ColumnUInt8::create();
296
297
439
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
439
            vec_res.resize(col_left->size());
299
439
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
439
                              typename PrimitiveTypeTraits<PT>::CppType,
301
439
                              Op<PT>>::vector_constant(col_left->get_data(),
302
439
                                                       col_right->get_element(0), vec_res);
303
304
439
            block.replace_by_position(result, std::move(col_res));
305
439
        } 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.04k
        return Status::OK();
318
2.04k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
441
                            const ColumnPtr& col_right_ptr) const {
275
441
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
441
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
441
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
441
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
441
        DCHECK(!(left_is_const && right_is_const));
282
283
441
        if (!left_is_const && !right_is_const) {
284
228
            auto col_res = ColumnUInt8::create();
285
286
228
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
228
            vec_res.resize(col_left->get_data().size());
288
228
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
228
                              typename PrimitiveTypeTraits<PT>::CppType,
290
228
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
228
                                                     vec_res);
292
293
228
            block.replace_by_position(result, std::move(col_res));
294
228
        } else if (!left_is_const && right_is_const) {
295
213
            auto col_res = ColumnUInt8::create();
296
297
213
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
213
            vec_res.resize(col_left->size());
299
213
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
213
                              typename PrimitiveTypeTraits<PT>::CppType,
301
213
                              Op<PT>>::vector_constant(col_left->get_data(),
302
213
                                                       col_right->get_element(0), vec_res);
303
304
213
            block.replace_by_position(result, std::move(col_res));
305
213
        } 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
441
        return Status::OK();
318
441
    }
_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
855
                            const ColumnPtr& col_right_ptr) const {
275
855
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
855
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
855
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
855
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
855
        DCHECK(!(left_is_const && right_is_const));
282
283
856
        if (!left_is_const && !right_is_const) {
284
815
            auto col_res = ColumnUInt8::create();
285
286
815
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
815
            vec_res.resize(col_left->get_data().size());
288
815
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
815
                              typename PrimitiveTypeTraits<PT>::CppType,
290
815
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
815
                                                     vec_res);
292
293
815
            block.replace_by_position(result, std::move(col_res));
294
815
        } else if (!left_is_const && right_is_const) {
295
41
            auto col_res = ColumnUInt8::create();
296
297
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
41
            vec_res.resize(col_left->size());
299
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
41
                              typename PrimitiveTypeTraits<PT>::CppType,
301
41
                              Op<PT>>::vector_constant(col_left->get_data(),
302
41
                                                       col_right->get_element(0), vec_res);
303
304
41
            block.replace_by_position(result, std::move(col_res));
305
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
855
        return Status::OK();
318
855
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
214
                            const ColumnPtr& col_right_ptr) const {
275
214
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
214
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
214
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
214
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
214
        DCHECK(!(left_is_const && right_is_const));
282
283
214
        if (!left_is_const && !right_is_const) {
284
112
            auto col_res = ColumnUInt8::create();
285
286
112
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
112
            vec_res.resize(col_left->get_data().size());
288
112
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
112
                              typename PrimitiveTypeTraits<PT>::CppType,
290
112
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
112
                                                     vec_res);
292
293
112
            block.replace_by_position(result, std::move(col_res));
294
112
        } else if (!left_is_const && right_is_const) {
295
102
            auto col_res = ColumnUInt8::create();
296
297
102
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
102
            vec_res.resize(col_left->size());
299
102
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
102
                              typename PrimitiveTypeTraits<PT>::CppType,
301
102
                              Op<PT>>::vector_constant(col_left->get_data(),
302
102
                                                       col_right->get_element(0), vec_res);
303
304
102
            block.replace_by_position(result, std::move(col_res));
305
102
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
214
        return Status::OK();
318
214
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.56k
                            const ColumnPtr& col_right_ptr) const {
275
1.56k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.56k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.56k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.56k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.56k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.56k
        if (!left_is_const && !right_is_const) {
284
271
            auto col_res = ColumnUInt8::create();
285
286
271
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
271
            vec_res.resize(col_left->get_data().size());
288
271
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
271
                              typename PrimitiveTypeTraits<PT>::CppType,
290
271
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
271
                                                     vec_res);
292
293
271
            block.replace_by_position(result, std::move(col_res));
294
1.29k
        } else if (!left_is_const && right_is_const) {
295
1.29k
            auto col_res = ColumnUInt8::create();
296
297
1.29k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.29k
            vec_res.resize(col_left->size());
299
1.29k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.29k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.29k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.29k
                                                       col_right->get_element(0), vec_res);
303
304
1.29k
            block.replace_by_position(result, std::move(col_res));
305
1.29k
        } 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.56k
        return Status::OK();
318
1.56k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.21k
                            const ColumnPtr& col_right_ptr) const {
275
1.21k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.21k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.21k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.21k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.21k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.21k
        if (!left_is_const && !right_is_const) {
284
241
            auto col_res = ColumnUInt8::create();
285
286
241
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
241
            vec_res.resize(col_left->get_data().size());
288
241
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
241
                              typename PrimitiveTypeTraits<PT>::CppType,
290
241
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
241
                                                     vec_res);
292
293
241
            block.replace_by_position(result, std::move(col_res));
294
973
        } else if (!left_is_const && right_is_const) {
295
973
            auto col_res = ColumnUInt8::create();
296
297
973
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
973
            vec_res.resize(col_left->size());
299
973
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
973
                              typename PrimitiveTypeTraits<PT>::CppType,
301
973
                              Op<PT>>::vector_constant(col_left->get_data(),
302
973
                                                       col_right->get_element(0), vec_res);
303
304
973
            block.replace_by_position(result, std::move(col_res));
305
973
        } 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.21k
        return Status::OK();
318
1.21k
    }
_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
173
            auto col_res = ColumnUInt8::create();
285
286
173
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
173
            vec_res.resize(col_left->get_data().size());
288
173
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
173
                              typename PrimitiveTypeTraits<PT>::CppType,
290
173
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
173
                                                     vec_res);
292
293
173
            block.replace_by_position(result, std::move(col_res));
294
173
        } else if (!left_is_const && right_is_const) {
295
17
            auto col_res = ColumnUInt8::create();
296
297
17
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
17
            vec_res.resize(col_left->size());
299
17
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
17
                              typename PrimitiveTypeTraits<PT>::CppType,
301
17
                              Op<PT>>::vector_constant(col_left->get_data(),
302
17
                                                       col_right->get_element(0), vec_res);
303
304
17
            block.replace_by_position(result, std::move(col_res));
305
17
        } 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
147
                            const ColumnPtr& col_right_ptr) const {
275
147
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
147
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
147
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
147
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
147
        DCHECK(!(left_is_const && right_is_const));
282
283
147
        if (!left_is_const && !right_is_const) {
284
129
            auto col_res = ColumnUInt8::create();
285
286
129
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
129
            vec_res.resize(col_left->get_data().size());
288
129
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
129
                              typename PrimitiveTypeTraits<PT>::CppType,
290
129
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
129
                                                     vec_res);
292
293
129
            block.replace_by_position(result, std::move(col_res));
294
129
        } 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
147
        return Status::OK();
318
147
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
345
                            const ColumnPtr& col_right_ptr) const {
275
345
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
345
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
345
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
345
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
345
        DCHECK(!(left_is_const && right_is_const));
282
283
345
        if (!left_is_const && !right_is_const) {
284
151
            auto col_res = ColumnUInt8::create();
285
286
151
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
151
            vec_res.resize(col_left->get_data().size());
288
151
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
151
                              typename PrimitiveTypeTraits<PT>::CppType,
290
151
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
151
                                                     vec_res);
292
293
151
            block.replace_by_position(result, std::move(col_res));
294
195
        } else if (!left_is_const && right_is_const) {
295
195
            auto col_res = ColumnUInt8::create();
296
297
195
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
195
            vec_res.resize(col_left->size());
299
195
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
195
                              typename PrimitiveTypeTraits<PT>::CppType,
301
195
                              Op<PT>>::vector_constant(col_left->get_data(),
302
195
                                                       col_right->get_element(0), vec_res);
303
304
195
            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
345
        return Status::OK();
318
345
    }
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
116
                            const ColumnPtr& col_right_ptr) const {
275
116
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
116
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
116
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
116
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
116
        DCHECK(!(left_is_const && right_is_const));
282
283
116
        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
116
        } 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
116
        return Status::OK();
318
116
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_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
418
            auto col_res = ColumnUInt8::create();
285
286
418
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
418
            vec_res.resize(col_left->get_data().size());
288
418
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
418
                              typename PrimitiveTypeTraits<PT>::CppType,
290
418
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
418
                                                     vec_res);
292
293
418
            block.replace_by_position(result, std::move(col_res));
294
3.60k
        } else if (!left_is_const && right_is_const) {
295
3.60k
            auto col_res = ColumnUInt8::create();
296
297
3.60k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
3.60k
            vec_res.resize(col_left->size());
299
3.60k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
3.60k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
3.60k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
3.60k
                                                       col_right->get_element(0), vec_res);
303
304
3.60k
            block.replace_by_position(result, std::move(col_res));
305
3.60k
        } 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_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
262
                            const ColumnPtr& col_right_ptr) const {
275
262
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
262
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
262
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
262
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
262
        DCHECK(!(left_is_const && right_is_const));
282
283
262
        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
262
        } else if (!left_is_const && right_is_const) {
295
262
            auto col_res = ColumnUInt8::create();
296
297
262
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
262
            vec_res.resize(col_left->size());
299
262
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
262
                              typename PrimitiveTypeTraits<PT>::CppType,
301
262
                              Op<PT>>::vector_constant(col_left->get_data(),
302
262
                                                       col_right->get_element(0), vec_res);
303
304
262
            block.replace_by_position(result, std::move(col_res));
305
262
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
262
        return Status::OK();
318
262
    }
_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
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
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
95
        } else if (!left_is_const && right_is_const) {
295
95
            auto col_res = ColumnUInt8::create();
296
297
95
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
95
            vec_res.resize(col_left->size());
299
95
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
95
                              typename PrimitiveTypeTraits<PT>::CppType,
301
95
                              Op<PT>>::vector_constant(col_left->get_data(),
302
95
                                                       col_right->get_element(0), vec_res);
303
304
95
            block.replace_by_position(result, std::move(col_res));
305
95
        } 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_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
97
                            const ColumnPtr& col_right_ptr) const {
275
97
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
97
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
97
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
97
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
97
        DCHECK(!(left_is_const && right_is_const));
282
283
97
        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
97
        } else if (!left_is_const && right_is_const) {
295
97
            auto col_res = ColumnUInt8::create();
296
297
97
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
97
            vec_res.resize(col_left->size());
299
97
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
97
                              typename PrimitiveTypeTraits<PT>::CppType,
301
97
                              Op<PT>>::vector_constant(col_left->get_data(),
302
97
                                                       col_right->get_element(0), vec_res);
303
304
97
            block.replace_by_position(result, std::move(col_res));
305
97
        } 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
97
        return Status::OK();
318
97
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
10.5k
                            const ColumnPtr& col_right_ptr) const {
275
10.5k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
10.5k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
10.5k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
10.5k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
10.5k
        DCHECK(!(left_is_const && right_is_const));
282
283
10.5k
        if (!left_is_const && !right_is_const) {
284
77
            auto col_res = ColumnUInt8::create();
285
286
77
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
77
            vec_res.resize(col_left->get_data().size());
288
77
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
77
                              typename PrimitiveTypeTraits<PT>::CppType,
290
77
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
77
                                                     vec_res);
292
293
77
            block.replace_by_position(result, std::move(col_res));
294
10.4k
        } else if (!left_is_const && right_is_const) {
295
10.4k
            auto col_res = ColumnUInt8::create();
296
297
10.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10.4k
            vec_res.resize(col_left->size());
299
10.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10.4k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10.4k
                                                       col_right->get_element(0), vec_res);
303
304
10.4k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
10.5k
        return Status::OK();
318
10.5k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
412
                            const ColumnPtr& col_right_ptr) const {
275
412
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
412
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
412
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
412
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
412
        DCHECK(!(left_is_const && right_is_const));
282
283
414
        if (!left_is_const && !right_is_const) {
284
31
            auto col_res = ColumnUInt8::create();
285
286
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
31
            vec_res.resize(col_left->get_data().size());
288
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
31
                              typename PrimitiveTypeTraits<PT>::CppType,
290
31
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
31
                                                     vec_res);
292
293
31
            block.replace_by_position(result, std::move(col_res));
294
383
        } else if (!left_is_const && right_is_const) {
295
383
            auto col_res = ColumnUInt8::create();
296
297
383
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
383
            vec_res.resize(col_left->size());
299
383
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
383
                              typename PrimitiveTypeTraits<PT>::CppType,
301
383
                              Op<PT>>::vector_constant(col_left->get_data(),
302
383
                                                       col_right->get_element(0), vec_res);
303
304
383
            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
412
        return Status::OK();
318
412
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
27
                            const ColumnPtr& col_right_ptr) const {
275
27
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
27
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
27
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
27
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
27
        DCHECK(!(left_is_const && right_is_const));
282
283
27
        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
27
        } else if (!left_is_const && right_is_const) {
295
27
            auto col_res = ColumnUInt8::create();
296
297
27
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
27
            vec_res.resize(col_left->size());
299
27
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
27
                              typename PrimitiveTypeTraits<PT>::CppType,
301
27
                              Op<PT>>::vector_constant(col_left->get_data(),
302
27
                                                       col_right->get_element(0), vec_res);
303
304
27
            block.replace_by_position(result, std::move(col_res));
305
27
        } 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
27
        return Status::OK();
318
27
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
10
                            const ColumnPtr& col_right_ptr) const {
275
10
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
10
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
10
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
10
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
10
        DCHECK(!(left_is_const && right_is_const));
282
283
10
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
10
        } else if (!left_is_const && right_is_const) {
295
10
            auto col_res = ColumnUInt8::create();
296
297
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10
            vec_res.resize(col_left->size());
299
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10
                                                       col_right->get_element(0), vec_res);
303
304
10
            block.replace_by_position(result, std::move(col_res));
305
10
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
10
        return Status::OK();
318
10
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
120
                            const ColumnPtr& col_right_ptr) const {
275
120
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
120
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
120
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
120
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
120
        DCHECK(!(left_is_const && right_is_const));
282
283
120
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
100
        } else if (!left_is_const && right_is_const) {
295
100
            auto col_res = ColumnUInt8::create();
296
297
100
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
100
            vec_res.resize(col_left->size());
299
100
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
100
                              typename PrimitiveTypeTraits<PT>::CppType,
301
100
                              Op<PT>>::vector_constant(col_left->get_data(),
302
100
                                                       col_right->get_element(0), vec_res);
303
304
100
            block.replace_by_position(result, std::move(col_res));
305
100
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
120
        return Status::OK();
318
120
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
138
                            const ColumnPtr& col_right_ptr) const {
275
138
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
138
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
138
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
138
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
138
        DCHECK(!(left_is_const && right_is_const));
282
283
138
        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
118
        } else if (!left_is_const && right_is_const) {
295
118
            auto col_res = ColumnUInt8::create();
296
297
118
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
118
            vec_res.resize(col_left->size());
299
118
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
118
                              typename PrimitiveTypeTraits<PT>::CppType,
301
118
                              Op<PT>>::vector_constant(col_left->get_data(),
302
118
                                                       col_right->get_element(0), vec_res);
303
304
118
            block.replace_by_position(result, std::move(col_res));
305
118
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
138
        return Status::OK();
318
138
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
319
320
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
321
9.03k
                           const ColumnWithTypeAndName& col_right) const {
322
9.03k
        auto call = [&](const auto& type) -> bool {
323
9.03k
            using DispatchType = std::decay_t<decltype(type)>;
324
9.03k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
9.03k
                    block, result, col_left, col_right);
326
9.03k
            return true;
327
9.03k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
208
        auto call = [&](const auto& type) -> bool {
323
208
            using DispatchType = std::decay_t<decltype(type)>;
324
208
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
208
                    block, result, col_left, col_right);
326
208
            return true;
327
208
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
228
        auto call = [&](const auto& type) -> bool {
323
228
            using DispatchType = std::decay_t<decltype(type)>;
324
228
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
228
                    block, result, col_left, col_right);
326
228
            return true;
327
228
        };
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.17k
        auto call = [&](const auto& type) -> bool {
323
1.17k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.17k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.17k
                    block, result, col_left, col_right);
326
1.17k
            return true;
327
1.17k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
30
        auto call = [&](const auto& type) -> bool {
323
30
            using DispatchType = std::decay_t<decltype(type)>;
324
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
30
                    block, result, col_left, col_right);
326
30
            return true;
327
30
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
61
        auto call = [&](const auto& type) -> bool {
323
61
            using DispatchType = std::decay_t<decltype(type)>;
324
61
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
61
                    block, result, col_left, col_right);
326
61
            return true;
327
61
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
176
        auto call = [&](const auto& type) -> bool {
323
176
            using DispatchType = std::decay_t<decltype(type)>;
324
176
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
176
                    block, result, col_left, col_right);
326
176
            return true;
327
176
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
30
        auto call = [&](const auto& type) -> bool {
323
30
            using DispatchType = std::decay_t<decltype(type)>;
324
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
30
                    block, result, col_left, col_right);
326
30
            return true;
327
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
22
        auto call = [&](const auto& type) -> bool {
323
22
            using DispatchType = std::decay_t<decltype(type)>;
324
22
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
22
                    block, result, col_left, col_right);
326
22
            return true;
327
22
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
3.65k
        auto call = [&](const auto& type) -> bool {
323
3.65k
            using DispatchType = std::decay_t<decltype(type)>;
324
3.65k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
3.65k
                    block, result, col_left, col_right);
326
3.65k
            return true;
327
3.65k
        };
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.19k
        auto call = [&](const auto& type) -> bool {
323
1.19k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.19k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.19k
                    block, result, col_left, col_right);
326
1.19k
            return true;
327
1.19k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
2
        auto call = [&](const auto& type) -> bool {
323
2
            using DispatchType = std::decay_t<decltype(type)>;
324
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
2
                    block, result, col_left, col_right);
326
2
            return true;
327
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
3
        auto call = [&](const auto& type) -> bool {
323
3
            using DispatchType = std::decay_t<decltype(type)>;
324
3
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
3
                    block, result, col_left, col_right);
326
3
            return true;
327
3
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
215
        auto call = [&](const auto& type) -> bool {
323
215
            using DispatchType = std::decay_t<decltype(type)>;
324
215
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
215
                    block, result, col_left, col_right);
326
215
            return true;
327
215
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
33
        auto call = [&](const auto& type) -> bool {
323
33
            using DispatchType = std::decay_t<decltype(type)>;
324
33
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
33
                    block, result, col_left, col_right);
326
33
            return true;
327
33
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
20
        auto call = [&](const auto& type) -> bool {
323
20
            using DispatchType = std::decay_t<decltype(type)>;
324
20
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
20
                    block, result, col_left, col_right);
326
20
            return true;
327
20
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
203
        auto call = [&](const auto& type) -> bool {
323
203
            using DispatchType = std::decay_t<decltype(type)>;
324
203
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
203
                    block, result, col_left, col_right);
326
203
            return true;
327
203
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
234
        auto call = [&](const auto& type) -> bool {
323
234
            using DispatchType = std::decay_t<decltype(type)>;
324
234
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
234
                    block, result, col_left, col_right);
326
234
            return true;
327
234
        };
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
374
        auto call = [&](const auto& type) -> bool {
323
374
            using DispatchType = std::decay_t<decltype(type)>;
324
374
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
374
                    block, result, col_left, col_right);
326
374
            return true;
327
374
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
1
        auto call = [&](const auto& type) -> bool {
323
1
            using DispatchType = std::decay_t<decltype(type)>;
324
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1
                    block, result, col_left, col_right);
326
1
            return true;
327
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
8
        auto call = [&](const auto& type) -> bool {
323
8
            using DispatchType = std::decay_t<decltype(type)>;
324
8
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
8
                    block, result, col_left, col_right);
326
8
            return true;
327
8
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
771
        auto call = [&](const auto& type) -> bool {
323
771
            using DispatchType = std::decay_t<decltype(type)>;
324
771
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
771
                    block, result, col_left, col_right);
326
771
            return true;
327
771
        };
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
365
        auto call = [&](const auto& type) -> bool {
323
365
            using DispatchType = std::decay_t<decltype(type)>;
324
365
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
365
                    block, result, col_left, col_right);
326
365
            return true;
327
365
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
16
        auto call = [&](const auto& type) -> bool {
323
16
            using DispatchType = std::decay_t<decltype(type)>;
324
16
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
16
                    block, result, col_left, col_right);
326
16
            return true;
327
16
        };
328
329
9.03k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
9.03k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
9.03k
        return Status::OK();
340
9.03k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.64k
                           const ColumnWithTypeAndName& col_right) const {
322
1.64k
        auto call = [&](const auto& type) -> bool {
323
1.64k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.64k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.64k
                    block, result, col_left, col_right);
326
1.64k
            return true;
327
1.64k
        };
328
329
1.64k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
1.64k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
1.64k
        return Status::OK();
340
1.64k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
265
                           const ColumnWithTypeAndName& col_right) const {
322
265
        auto call = [&](const auto& type) -> bool {
323
265
            using DispatchType = std::decay_t<decltype(type)>;
324
265
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
265
                    block, result, col_left, col_right);
326
265
            return true;
327
265
        };
328
329
265
        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
265
        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
265
        return Status::OK();
340
265
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
4.88k
                           const ColumnWithTypeAndName& col_right) const {
322
4.88k
        auto call = [&](const auto& type) -> bool {
323
4.88k
            using DispatchType = std::decay_t<decltype(type)>;
324
4.88k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
4.88k
                    block, result, col_left, col_right);
326
4.88k
            return true;
327
4.88k
        };
328
329
4.88k
        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
4.88k
        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
4.88k
        return Status::OK();
340
4.88k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
271
                           const ColumnWithTypeAndName& col_right) const {
322
271
        auto call = [&](const auto& type) -> bool {
323
271
            using DispatchType = std::decay_t<decltype(type)>;
324
271
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
271
                    block, result, col_left, col_right);
326
271
            return true;
327
271
        };
328
329
271
        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
271
        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
271
        return Status::OK();
340
271
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
812
                           const ColumnWithTypeAndName& col_right) const {
322
812
        auto call = [&](const auto& type) -> bool {
323
812
            using DispatchType = std::decay_t<decltype(type)>;
324
812
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
812
                    block, result, col_left, col_right);
326
812
            return true;
327
812
        };
328
329
812
        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
812
        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
812
        return Status::OK();
340
812
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.16k
                           const ColumnWithTypeAndName& col_right) const {
322
1.16k
        auto call = [&](const auto& type) -> bool {
323
1.16k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.16k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.16k
                    block, result, col_left, col_right);
326
1.16k
            return true;
327
1.16k
        };
328
329
1.16k
        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.16k
        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.16k
        return Status::OK();
340
1.16k
    }
341
342
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
343
20.8k
                          const IColumn* c1) const {
344
20.8k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
20.8k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
20.8k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
20.8k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
20.8k
        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.8k
        DCHECK(!(c0_const && c1_const));
353
20.8k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
20.8k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
20.8k
        ColumnString::Offset c0_const_size = 0;
356
20.8k
        ColumnString::Offset c1_const_size = 0;
357
358
20.8k
        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.8k
        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.8k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
20.8k
        auto c_res = ColumnUInt8::create();
387
20.8k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
20.8k
        vec_res.resize(c0->size());
389
390
20.8k
        if (c0_string && c1_string) {
391
923
            StringImpl::string_vector_string_vector(
392
923
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
923
                    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.8k
        block.replace_by_position(result, std::move(c_res));
406
20.8k
        return Status::OK();
407
20.8k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
18.4k
                          const IColumn* c1) const {
344
18.4k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
18.4k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
18.4k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
18.4k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
18.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
18.4k
        DCHECK(!(c0_const && c1_const));
353
18.4k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
18.4k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
18.4k
        ColumnString::Offset c0_const_size = 0;
356
18.4k
        ColumnString::Offset c1_const_size = 0;
357
358
18.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
18.4k
        if (c1_const) {
372
18.0k
            const ColumnString* c1_const_string =
373
18.0k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
18.0k
            if (c1_const_string) {
376
18.0k
                c1_const_chars = &c1_const_string->get_chars();
377
18.0k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.0k
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
18.0k
        }
383
384
18.4k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
18.4k
        auto c_res = ColumnUInt8::create();
387
18.4k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
18.4k
        vec_res.resize(c0->size());
389
390
18.4k
        if (c0_string && c1_string) {
391
454
            StringImpl::string_vector_string_vector(
392
454
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
454
                    c1_string->get_offsets(), vec_res);
394
18.0k
        } else if (c0_string && c1_const) {
395
18.0k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
18.0k
                                               *c1_const_chars, c1_const_size, vec_res);
397
18.4E
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
18.4E
        } else {
402
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
18.4E
                                        c0->get_name(), c1->get_name(), name);
404
18.4E
        }
405
18.4k
        block.replace_by_position(result, std::move(c_res));
406
18.4k
        return Status::OK();
407
18.4k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
667
                          const IColumn* c1) const {
344
667
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
667
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
667
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
667
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
667
        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
667
        DCHECK(!(c0_const && c1_const));
353
667
        const ColumnString::Chars* c0_const_chars = nullptr;
354
667
        const ColumnString::Chars* c1_const_chars = nullptr;
355
667
        ColumnString::Offset c0_const_size = 0;
356
667
        ColumnString::Offset c1_const_size = 0;
357
358
667
        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
667
        if (c1_const) {
372
665
            const ColumnString* c1_const_string =
373
665
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
665
            if (c1_const_string) {
376
665
                c1_const_chars = &c1_const_string->get_chars();
377
665
                c1_const_size = c1_const_string->get_offsets()[0];
378
665
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
665
        }
383
384
667
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
667
        auto c_res = ColumnUInt8::create();
387
667
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
667
        vec_res.resize(c0->size());
389
390
667
        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
666
        } else if (c0_string && c1_const) {
395
666
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
666
                                               *c1_const_chars, c1_const_size, vec_res);
397
666
        } 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
667
        block.replace_by_position(result, std::move(c_res));
406
667
        return Status::OK();
407
667
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
198
                          const IColumn* c1) const {
344
198
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
198
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
198
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
198
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
198
        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
198
        DCHECK(!(c0_const && c1_const));
353
198
        const ColumnString::Chars* c0_const_chars = nullptr;
354
198
        const ColumnString::Chars* c1_const_chars = nullptr;
355
198
        ColumnString::Offset c0_const_size = 0;
356
198
        ColumnString::Offset c1_const_size = 0;
357
358
198
        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
198
        if (c1_const) {
372
196
            const ColumnString* c1_const_string =
373
196
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
196
            if (c1_const_string) {
376
196
                c1_const_chars = &c1_const_string->get_chars();
377
196
                c1_const_size = c1_const_string->get_offsets()[0];
378
196
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
196
        }
383
384
198
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
198
        auto c_res = ColumnUInt8::create();
387
198
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
198
        vec_res.resize(c0->size());
389
390
198
        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
196
        } else if (c0_string && c1_const) {
395
196
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
196
                                               *c1_const_chars, c1_const_size, vec_res);
397
196
        } 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
198
        block.replace_by_position(result, std::move(c_res));
406
198
        return Status::OK();
407
198
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
477
                          const IColumn* c1) const {
344
477
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
477
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
477
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
477
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
479
        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
477
        DCHECK(!(c0_const && c1_const));
353
477
        const ColumnString::Chars* c0_const_chars = nullptr;
354
477
        const ColumnString::Chars* c1_const_chars = nullptr;
355
477
        ColumnString::Offset c0_const_size = 0;
356
477
        ColumnString::Offset c1_const_size = 0;
357
358
477
        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
477
        if (c1_const) {
372
433
            const ColumnString* c1_const_string =
373
433
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
433
            if (c1_const_string) {
376
433
                c1_const_chars = &c1_const_string->get_chars();
377
433
                c1_const_size = c1_const_string->get_offsets()[0];
378
433
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
433
        }
383
384
477
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
477
        auto c_res = ColumnUInt8::create();
387
477
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
477
        vec_res.resize(c0->size());
389
390
479
        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
433
        } else if (c0_string && c1_const) {
395
433
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
433
                                               *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
479
        block.replace_by_position(result, std::move(c_res));
406
479
        return Status::OK();
407
477
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
635
                          const IColumn* c1) const {
344
635
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
635
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
635
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
635
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
635
        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
635
        DCHECK(!(c0_const && c1_const));
353
635
        const ColumnString::Chars* c0_const_chars = nullptr;
354
635
        const ColumnString::Chars* c1_const_chars = nullptr;
355
635
        ColumnString::Offset c0_const_size = 0;
356
635
        ColumnString::Offset c1_const_size = 0;
357
358
635
        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
635
        if (c1_const) {
372
215
            const ColumnString* c1_const_string =
373
215
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
215
            if (c1_const_string) {
376
215
                c1_const_chars = &c1_const_string->get_chars();
377
215
                c1_const_size = c1_const_string->get_offsets()[0];
378
215
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
215
        }
383
384
635
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
635
        auto c_res = ColumnUInt8::create();
387
635
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
635
        vec_res.resize(c0->size());
389
390
635
        if (c0_string && c1_string) {
391
420
            StringImpl::string_vector_string_vector(
392
420
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
420
                    c1_string->get_offsets(), vec_res);
394
420
        } else if (c0_string && c1_const) {
395
215
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
215
                                               *c1_const_chars, c1_const_size, vec_res);
397
215
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
635
        block.replace_by_position(result, std::move(c_res));
406
635
        return Status::OK();
407
635
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
403
                          const IColumn* c1) const {
344
403
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
403
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
403
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
403
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
403
        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
403
        DCHECK(!(c0_const && c1_const));
353
403
        const ColumnString::Chars* c0_const_chars = nullptr;
354
403
        const ColumnString::Chars* c1_const_chars = nullptr;
355
403
        ColumnString::Offset c0_const_size = 0;
356
403
        ColumnString::Offset c1_const_size = 0;
357
358
403
        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
403
        if (c1_const) {
372
403
            const ColumnString* c1_const_string =
373
403
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
403
            if (c1_const_string) {
376
403
                c1_const_chars = &c1_const_string->get_chars();
377
403
                c1_const_size = c1_const_string->get_offsets()[0];
378
403
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
403
        }
383
384
403
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
403
        auto c_res = ColumnUInt8::create();
387
403
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
403
        vec_res.resize(c0->size());
389
390
403
        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
403
        } else if (c0_string && c1_const) {
395
403
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
403
                                               *c1_const_chars, c1_const_size, vec_res);
397
403
        } 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
403
        block.replace_by_position(result, std::move(c_res));
406
403
        return Status::OK();
407
403
    }
408
409
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
410
108
                                         const IColumn* c1) const {
411
108
        bool c0_const = is_column_const(*c0);
412
108
        bool c1_const = is_column_const(*c1);
413
414
108
        DCHECK(!(c0_const && c1_const));
415
416
108
        auto c_res = ColumnUInt8::create();
417
108
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
108
        vec_res.resize(c0->size());
419
420
108
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
108
        } else if (c1_const) {
423
99
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
99
        } else {
425
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
9
        }
427
428
108
        block.replace_by_position(result, std::move(c_res));
429
108
    }
_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
24
                                         const IColumn* c1) const {
411
24
        bool c0_const = is_column_const(*c0);
412
24
        bool c1_const = is_column_const(*c1);
413
414
24
        DCHECK(!(c0_const && c1_const));
415
416
24
        auto c_res = ColumnUInt8::create();
417
24
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
24
        vec_res.resize(c0->size());
419
420
24
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
24
        } else if (c1_const) {
423
23
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
23
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
24
        block.replace_by_position(result, std::move(c_res));
429
24
    }
_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
39
                                         const IColumn* c1) const {
411
39
        bool c0_const = is_column_const(*c0);
412
39
        bool c1_const = is_column_const(*c1);
413
414
39
        DCHECK(!(c0_const && c1_const));
415
416
39
        auto c_res = ColumnUInt8::create();
417
39
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
39
        vec_res.resize(c0->size());
419
420
39
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
39
        } else if (c1_const) {
423
39
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
39
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
39
        block.replace_by_position(result, std::move(c_res));
429
39
    }
430
431
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
432
108
                           const ColumnWithTypeAndName& c1) const {
433
108
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
108
        return Status::OK();
435
108
    }
_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
24
                           const ColumnWithTypeAndName& c1) const {
433
24
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
24
        return Status::OK();
435
24
    }
_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
39
                           const ColumnWithTypeAndName& c1) const {
433
39
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
39
        return Status::OK();
435
39
    }
436
437
public:
438
218
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
61
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
36
    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
81
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
438
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
1
    String get_name() const override { return name; }
439
440
463k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
397k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
1.36k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
440
6.45k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
27.6k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
440
3.21k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
28.0k
    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
463k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
463k
        return std::make_shared<DataTypeUInt8>();
445
463k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
397k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
397k
        return std::make_shared<DataTypeUInt8>();
445
397k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
1.36k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
1.36k
        return std::make_shared<DataTypeUInt8>();
445
1.36k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
6.45k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
6.45k
        return std::make_shared<DataTypeUInt8>();
445
6.45k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
27.6k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
27.6k
        return std::make_shared<DataTypeUInt8>();
445
27.6k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
3.21k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
3.21k
        return std::make_shared<DataTypeUInt8>();
445
3.21k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
28.0k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
28.0k
        return std::make_shared<DataTypeUInt8>();
445
28.0k
    }
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.74k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
1.74k
        DCHECK(arguments.size() == 1);
454
1.74k
        DCHECK(data_type_with_names.size() == 1);
455
1.74k
        DCHECK(iterators.size() == 1);
456
1.74k
        auto* iter = iterators[0];
457
1.74k
        auto data_type_with_name = data_type_with_names[0];
458
1.74k
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
1.74k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
433
            return Status::OK();
463
433
        }
464
1.31k
        segment_v2::InvertedIndexQueryType query_type;
465
1.31k
        std::string_view name_view(name);
466
1.31k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
872
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
872
        } else if (name_view == NameLess::name) {
469
111
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
327
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
229
        } else if (name_view == NameGreater::name) {
473
113
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
135
        } else if (name_view == NameGreaterOrEquals::name) {
475
135
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
1.32k
        if (segment_v2::is_range_query(query_type) &&
481
1.32k
            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.15k
        Field param_value;
486
1.15k
        arguments[0].column->get(0, param_value);
487
1.15k
        if (param_value.is_null()) {
488
2
            return Status::OK();
489
2
        }
490
1.15k
        auto param_type = arguments[0].type->get_primitive_type();
491
1.15k
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
1.15k
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
1.15k
                param_type, &param_value, query_param));
494
495
1.15k
        segment_v2::InvertedIndexParam param;
496
1.15k
        param.column_name = data_type_with_name.first;
497
1.15k
        param.column_type = data_type_with_name.second;
498
1.15k
        param.query_value = query_param->get_value();
499
1.15k
        param.query_type = query_type;
500
1.15k
        param.num_rows = num_rows;
501
1.15k
        param.roaring = std::make_shared<roaring::Roaring>();
502
1.15k
        param.analyzer_ctx = analyzer_ctx;
503
1.15k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
997
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
997
        if (iter->has_null()) {
506
994
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
994
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
994
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
994
        }
510
997
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
997
        bitmap_result = result;
512
997
        bitmap_result.mask_out_null();
513
514
997
        if (name_view == NameNotEquals::name) {
515
61
            roaring::Roaring full_result;
516
61
            full_result.addRange(0, num_rows);
517
61
            bitmap_result.op_not(&full_result);
518
61
        }
519
520
997
        return Status::OK();
521
997
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
869
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
869
        DCHECK(arguments.size() == 1);
454
869
        DCHECK(data_type_with_names.size() == 1);
455
869
        DCHECK(iterators.size() == 1);
456
869
        auto* iter = iterators[0];
457
869
        auto data_type_with_name = data_type_with_names[0];
458
869
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
869
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
78
            return Status::OK();
463
78
        }
464
791
        segment_v2::InvertedIndexQueryType query_type;
465
791
        std::string_view name_view(name);
466
802
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
802
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
18.4E
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
18.4E
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
18.4E
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
802
        if (segment_v2::is_range_query(query_type) &&
481
802
            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
802
        Field param_value;
486
802
        arguments[0].column->get(0, param_value);
487
802
        if (param_value.is_null()) {
488
2
            return Status::OK();
489
2
        }
490
800
        auto param_type = arguments[0].type->get_primitive_type();
491
800
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
800
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
800
                param_type, &param_value, query_param));
494
495
799
        segment_v2::InvertedIndexParam param;
496
799
        param.column_name = data_type_with_name.first;
497
799
        param.column_type = data_type_with_name.second;
498
799
        param.query_value = query_param->get_value();
499
799
        param.query_type = query_type;
500
799
        param.num_rows = num_rows;
501
799
        param.roaring = std::make_shared<roaring::Roaring>();
502
799
        param.analyzer_ctx = analyzer_ctx;
503
799
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
749
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
749
        if (iter->has_null()) {
506
747
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
747
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
747
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
747
        }
510
749
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
749
        bitmap_result = result;
512
749
        bitmap_result.mask_out_null();
513
514
749
        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
749
        return Status::OK();
521
749
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
77
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
77
        DCHECK(arguments.size() == 1);
454
77
        DCHECK(data_type_with_names.size() == 1);
455
77
        DCHECK(iterators.size() == 1);
456
77
        auto* iter = iterators[0];
457
77
        auto data_type_with_name = data_type_with_names[0];
458
77
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
77
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
8
            return Status::OK();
463
8
        }
464
69
        segment_v2::InvertedIndexQueryType query_type;
465
69
        std::string_view name_view(name);
466
70
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
70
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
18.4E
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
18.4E
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
18.4E
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
70
        if (segment_v2::is_range_query(query_type) &&
481
70
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
0
            return Status::OK();
484
0
        }
485
70
        Field param_value;
486
70
        arguments[0].column->get(0, param_value);
487
70
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
70
        auto param_type = arguments[0].type->get_primitive_type();
491
70
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
70
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
70
                param_type, &param_value, query_param));
494
495
70
        segment_v2::InvertedIndexParam param;
496
70
        param.column_name = data_type_with_name.first;
497
70
        param.column_type = data_type_with_name.second;
498
70
        param.query_value = query_param->get_value();
499
70
        param.query_type = query_type;
500
70
        param.num_rows = num_rows;
501
70
        param.roaring = std::make_shared<roaring::Roaring>();
502
70
        param.analyzer_ctx = analyzer_ctx;
503
70
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
63
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
63
        if (iter->has_null()) {
506
63
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
63
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
63
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
63
        }
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
61
            roaring::Roaring full_result;
516
61
            full_result.addRange(0, num_rows);
517
61
            bitmap_result.op_not(&full_result);
518
61
        }
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
172
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
172
        DCHECK(arguments.size() == 1);
454
172
        DCHECK(data_type_with_names.size() == 1);
455
172
        DCHECK(iterators.size() == 1);
456
172
        auto* iter = iterators[0];
457
172
        auto data_type_with_name = data_type_with_names[0];
458
172
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
172
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
61
            return Status::OK();
463
61
        }
464
111
        segment_v2::InvertedIndexQueryType query_type;
465
111
        std::string_view name_view(name);
466
112
        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
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
111
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
113
        } else if (name_view == NameGreater::name) {
473
113
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
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
113
        if (segment_v2::is_range_query(query_type) &&
481
113
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
28
            return Status::OK();
484
28
        }
485
85
        Field param_value;
486
85
        arguments[0].column->get(0, param_value);
487
85
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
85
        auto param_type = arguments[0].type->get_primitive_type();
491
85
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
85
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
85
                param_type, &param_value, query_param));
494
495
85
        segment_v2::InvertedIndexParam param;
496
85
        param.column_name = data_type_with_name.first;
497
85
        param.column_type = data_type_with_name.second;
498
85
        param.query_value = query_param->get_value();
499
85
        param.query_type = query_type;
500
85
        param.num_rows = num_rows;
501
85
        param.roaring = std::make_shared<roaring::Roaring>();
502
85
        param.analyzer_ctx = analyzer_ctx;
503
85
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
66
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
66
        if (iter->has_null()) {
506
66
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
66
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
66
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
66
        }
510
66
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
66
        bitmap_result = result;
512
66
        bitmap_result.mask_out_null();
513
514
66
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
66
        return Status::OK();
521
66
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
247
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
247
        DCHECK(arguments.size() == 1);
454
247
        DCHECK(data_type_with_names.size() == 1);
455
247
        DCHECK(iterators.size() == 1);
456
247
        auto* iter = iterators[0];
457
247
        auto data_type_with_name = data_type_with_names[0];
458
247
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
247
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
114
            return Status::OK();
463
114
        }
464
133
        segment_v2::InvertedIndexQueryType query_type;
465
133
        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
133
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
133
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
133
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
135
        } else if (name_view == NameGreaterOrEquals::name) {
475
135
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
135
        if (segment_v2::is_range_query(query_type) &&
481
135
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
59
            return Status::OK();
484
59
        }
485
76
        Field param_value;
486
76
        arguments[0].column->get(0, param_value);
487
76
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
76
        auto param_type = arguments[0].type->get_primitive_type();
491
76
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
76
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
76
                param_type, &param_value, query_param));
494
495
76
        segment_v2::InvertedIndexParam param;
496
76
        param.column_name = data_type_with_name.first;
497
76
        param.column_type = data_type_with_name.second;
498
76
        param.query_value = query_param->get_value();
499
76
        param.query_type = query_type;
500
76
        param.num_rows = num_rows;
501
76
        param.roaring = std::make_shared<roaring::Roaring>();
502
76
        param.analyzer_ctx = analyzer_ctx;
503
76
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
34
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
34
        if (iter->has_null()) {
506
34
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
34
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
34
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
34
        }
510
34
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
34
        bitmap_result = result;
512
34
        bitmap_result.mask_out_null();
513
514
34
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
34
        return Status::OK();
521
34
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
168
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
168
        DCHECK(arguments.size() == 1);
454
168
        DCHECK(data_type_with_names.size() == 1);
455
168
        DCHECK(iterators.size() == 1);
456
168
        auto* iter = iterators[0];
457
168
        auto data_type_with_name = data_type_with_names[0];
458
168
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
168
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
59
            return Status::OK();
463
59
        }
464
109
        segment_v2::InvertedIndexQueryType query_type;
465
109
        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
66
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
66
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
66
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
66
        }
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
210
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
210
        DCHECK(arguments.size() == 1);
454
210
        DCHECK(data_type_with_names.size() == 1);
455
210
        DCHECK(iterators.size() == 1);
456
210
        auto* iter = iterators[0];
457
210
        auto data_type_with_name = data_type_with_names[0];
458
210
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
210
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
113
            return Status::OK();
463
113
        }
464
97
        segment_v2::InvertedIndexQueryType query_type;
465
97
        std::string_view name_view(name);
466
97
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
97
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
98
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
18.4E
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
98
        if (segment_v2::is_range_query(query_type) &&
481
98
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
58
            return Status::OK();
484
58
        }
485
40
        Field param_value;
486
40
        arguments[0].column->get(0, param_value);
487
40
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
40
        auto param_type = arguments[0].type->get_primitive_type();
491
40
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
40
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
40
                param_type, &param_value, query_param));
494
495
40
        segment_v2::InvertedIndexParam param;
496
40
        param.column_name = data_type_with_name.first;
497
40
        param.column_type = data_type_with_name.second;
498
40
        param.query_value = query_param->get_value();
499
40
        param.query_type = query_type;
500
40
        param.num_rows = num_rows;
501
40
        param.roaring = std::make_shared<roaring::Roaring>();
502
40
        param.analyzer_ctx = analyzer_ctx;
503
40
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
19
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
19
        if (iter->has_null()) {
506
18
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
18
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
18
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
18
        }
510
19
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
19
        bitmap_result = result;
512
19
        bitmap_result.mask_out_null();
513
514
19
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
19
        return Status::OK();
521
19
    }
522
523
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
524
112k
                        uint32_t result, size_t input_rows_count) const override {
525
112k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
112k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
112k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
112k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
112k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
112k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
112k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
112k
        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
112k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
112k
            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
194k
        auto can_compare = [](PrimitiveType t) -> bool {
563
194k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
194k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
67.0k
        auto can_compare = [](PrimitiveType t) -> bool {
563
67.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
67.0k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
5.25k
        auto can_compare = [](PrimitiveType t) -> bool {
563
5.25k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
5.25k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
46.8k
        auto can_compare = [](PrimitiveType t) -> bool {
563
46.8k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
46.8k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
26.7k
        auto can_compare = [](PrimitiveType t) -> bool {
563
26.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
26.7k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
15.7k
        auto can_compare = [](PrimitiveType t) -> bool {
563
15.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
15.7k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
33.3k
        auto can_compare = [](PrimitiveType t) -> bool {
563
33.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
33.3k
        };
565
566
112k
        if (can_compare(left_type->get_primitive_type()) &&
567
112k
            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
82.4k
            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
82.4k
        }
575
576
112k
        auto compare_type = left_type->get_primitive_type();
577
112k
        switch (compare_type) {
578
1.16k
        case TYPE_BOOLEAN:
579
1.16k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
9.66k
        case TYPE_DATEV2:
581
9.66k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
1.88k
        case TYPE_DATETIMEV2:
583
1.88k
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
16
        case TYPE_TIMESTAMPTZ:
585
16
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
5.71k
        case TYPE_TINYINT:
587
5.71k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
2.21k
        case TYPE_SMALLINT:
589
2.21k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
37.5k
        case TYPE_INT:
591
37.5k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
20.0k
        case TYPE_BIGINT:
593
20.0k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
612
        case TYPE_LARGEINT:
595
612
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
58
        case TYPE_IPV4:
597
58
            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
773
        case TYPE_FLOAT:
601
773
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
2.68k
        case TYPE_DOUBLE:
603
2.68k
            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
444
        case TYPE_DECIMAL32:
609
5.61k
        case TYPE_DECIMAL64:
610
8.93k
        case TYPE_DECIMAL128I:
611
9.03k
        case TYPE_DECIMAL256:
612
9.03k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
9.03k
                                   col_with_type_and_name_right);
614
778
        case TYPE_CHAR:
615
9.30k
        case TYPE_VARCHAR:
616
20.8k
        case TYPE_STRING:
617
20.8k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
108
        default:
619
108
            return execute_generic(block, result, col_with_type_and_name_left,
620
108
                                   col_with_type_and_name_right);
621
112k
        }
622
0
        return Status::OK();
623
112k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
43.6k
                        uint32_t result, size_t input_rows_count) const override {
525
43.6k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
43.6k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
43.6k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
43.6k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
43.6k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
43.6k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
43.6k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
43.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
43.6k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
43.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
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
43.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
43.6k
        };
565
566
43.6k
        if (can_compare(left_type->get_primitive_type()) &&
567
43.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
23.4k
            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.4k
        }
575
576
43.6k
        auto compare_type = left_type->get_primitive_type();
577
43.6k
        switch (compare_type) {
578
860
        case TYPE_BOOLEAN:
579
860
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.42k
        case TYPE_DATEV2:
581
1.42k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
630
        case TYPE_DATETIMEV2:
583
630
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
3.78k
        case TYPE_TINYINT:
587
3.78k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
749
        case TYPE_SMALLINT:
589
749
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
6.33k
        case TYPE_INT:
591
6.33k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
9.12k
        case TYPE_BIGINT:
593
9.12k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
108
        case TYPE_LARGEINT:
595
108
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
19
        case TYPE_IPV4:
597
19
            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
97
        case TYPE_FLOAT:
601
97
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
302
        case TYPE_DOUBLE:
603
302
            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
208
        case TYPE_DECIMAL32:
609
436
        case TYPE_DECIMAL64:
610
1.61k
        case TYPE_DECIMAL128I:
611
1.64k
        case TYPE_DECIMAL256:
612
1.64k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
1.64k
                                   col_with_type_and_name_right);
614
536
        case TYPE_CHAR:
615
8.18k
        case TYPE_VARCHAR:
616
18.4k
        case TYPE_STRING:
617
18.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
43.6k
        }
622
0
        return Status::OK();
623
43.6k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
3.09k
                        uint32_t result, size_t input_rows_count) const override {
525
3.09k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
3.09k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
3.09k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
3.09k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
3.09k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
3.09k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
3.09k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
3.09k
        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.09k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
3.09k
            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.09k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
3.09k
        };
565
566
3.09k
        if (can_compare(left_type->get_primitive_type()) &&
567
3.09k
            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.15k
            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.15k
        }
575
576
3.09k
        auto compare_type = left_type->get_primitive_type();
577
3.09k
        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
895
        case TYPE_INT:
591
895
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
987
        case TYPE_BIGINT:
593
987
            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
60
        case TYPE_DECIMAL64:
610
236
        case TYPE_DECIMAL128I:
611
266
        case TYPE_DECIMAL256:
612
266
            return execute_decimal(block, result, col_with_type_and_name_left,
613
266
                                   col_with_type_and_name_right);
614
5
        case TYPE_CHAR:
615
241
        case TYPE_VARCHAR:
616
667
        case TYPE_STRING:
617
667
            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.09k
        }
622
0
        return Status::OK();
623
3.09k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
25.9k
                        uint32_t result, size_t input_rows_count) const override {
525
25.9k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
25.9k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
25.9k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
25.9k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
25.9k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
25.9k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
25.9k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
25.9k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
25.9k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
25.9k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          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
25.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
25.9k
        };
565
566
25.9k
        if (can_compare(left_type->get_primitive_type()) &&
567
25.9k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
20.8k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
20.8k
        }
575
576
25.9k
        auto compare_type = left_type->get_primitive_type();
577
25.9k
        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.01k
        case TYPE_DATEV2:
581
1.01k
            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
810
        case TYPE_TINYINT:
587
810
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
1.07k
        case TYPE_SMALLINT:
589
1.07k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
7.75k
        case TYPE_INT:
591
7.75k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
7.99k
        case TYPE_BIGINT:
593
7.99k
            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.66k
        case TYPE_DOUBLE:
603
1.66k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
22
        case TYPE_DECIMAL32:
609
3.68k
        case TYPE_DECIMAL64:
610
4.87k
        case TYPE_DECIMAL128I:
611
4.88k
        case TYPE_DECIMAL256:
612
4.88k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
4.88k
                                   col_with_type_and_name_right);
614
21
        case TYPE_CHAR:
615
91
        case TYPE_VARCHAR:
616
198
        case TYPE_STRING:
617
198
            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
25.9k
        }
622
0
        return Status::OK();
623
25.9k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
13.7k
                        uint32_t result, size_t input_rows_count) const override {
525
13.7k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
13.7k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
13.7k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
13.7k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
13.7k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
13.7k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
13.7k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
13.7k
        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
13.7k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
13.7k
            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
13.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
13.7k
        };
565
566
13.7k
        if (can_compare(left_type->get_primitive_type()) &&
567
13.7k
            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
13.0k
            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
13.0k
        }
575
576
13.7k
        auto compare_type = left_type->get_primitive_type();
577
13.7k
        switch (compare_type) {
578
110
        case TYPE_BOOLEAN:
579
110
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.11k
        case TYPE_DATEV2:
581
1.11k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
491
        case TYPE_DATETIMEV2:
583
491
            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
71
        case TYPE_TINYINT:
587
71
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
68
        case TYPE_SMALLINT:
589
68
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
10.4k
        case TYPE_INT:
591
10.4k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
341
        case TYPE_BIGINT:
593
341
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
40
        case TYPE_LARGEINT:
595
40
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
11
        case TYPE_IPV4:
597
11
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
1
        case TYPE_IPV6:
599
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
126
        case TYPE_FLOAT:
601
126
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
163
        case TYPE_DOUBLE:
603
163
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
3
        case TYPE_DECIMAL32:
609
218
        case TYPE_DECIMAL64:
610
251
        case TYPE_DECIMAL128I:
611
271
        case TYPE_DECIMAL256:
612
271
            return execute_decimal(block, result, col_with_type_and_name_left,
613
271
                                   col_with_type_and_name_right);
614
14
        case TYPE_CHAR:
615
237
        case TYPE_VARCHAR:
616
477
        case TYPE_STRING:
617
477
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
24
        default:
619
24
            return execute_generic(block, result, col_with_type_and_name_left,
620
24
                                   col_with_type_and_name_right);
621
13.7k
        }
622
0
        return Status::OK();
623
13.7k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
8.58k
                        uint32_t result, size_t input_rows_count) const override {
525
8.58k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
8.58k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
8.58k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
8.58k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
8.58k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
8.58k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
8.58k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
8.58k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
8.58k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
8.58k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
8.58k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
8.58k
        };
565
566
8.58k
        if (can_compare(left_type->get_primitive_type()) &&
567
8.58k
            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.12k
            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.12k
        }
575
576
8.58k
        auto compare_type = left_type->get_primitive_type();
577
8.58k
        switch (compare_type) {
578
75
        case TYPE_BOOLEAN:
579
75
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
2.04k
        case TYPE_DATEV2:
581
2.04k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
441
        case TYPE_DATETIMEV2:
583
441
            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
855
        case TYPE_TINYINT:
587
855
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
214
        case TYPE_SMALLINT:
589
214
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
1.56k
        case TYPE_INT:
591
1.56k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
1.21k
        case TYPE_BIGINT:
593
1.21k
            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
147
        case TYPE_FLOAT:
601
147
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
345
        case TYPE_DOUBLE:
603
345
            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
203
        case TYPE_DECIMAL32:
609
437
        case TYPE_DECIMAL64:
610
811
        case TYPE_DECIMAL128I:
611
812
        case TYPE_DECIMAL256:
612
812
            return execute_decimal(block, result, col_with_type_and_name_left,
613
812
                                   col_with_type_and_name_right);
614
187
        case TYPE_CHAR:
615
382
        case TYPE_VARCHAR:
616
635
        case TYPE_STRING:
617
635
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
11
        default:
619
11
            return execute_generic(block, result, col_with_type_and_name_left,
620
11
                                   col_with_type_and_name_right);
621
8.58k
        }
622
0
        return Status::OK();
623
8.58k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
17.4k
                        uint32_t result, size_t input_rows_count) const override {
525
17.4k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
17.4k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
17.4k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
17.4k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
17.4k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
17.4k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
17.4k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
17.4k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
17.4k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
17.4k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
17.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
17.4k
        };
565
566
17.4k
        if (can_compare(left_type->get_primitive_type()) &&
567
17.4k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
15.8k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
15.8k
        }
575
576
17.4k
        auto compare_type = left_type->get_primitive_type();
577
17.4k
        switch (compare_type) {
578
116
        case TYPE_BOOLEAN:
579
116
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
4.02k
        case TYPE_DATEV2:
581
4.02k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
262
        case TYPE_DATETIMEV2:
583
262
            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
96
        case TYPE_TINYINT:
587
96
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
97
        case TYPE_SMALLINT:
589
97
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
10.5k
        case TYPE_INT:
591
10.5k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
414
        case TYPE_BIGINT:
593
414
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
27
        case TYPE_LARGEINT:
595
27
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
10
        case TYPE_IPV4:
597
10
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
0
        case TYPE_IPV6:
599
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
120
        case TYPE_FLOAT:
601
120
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
138
        case TYPE_DOUBLE:
603
138
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
8
        case TYPE_DECIMAL32:
609
779
        case TYPE_DECIMAL64:
610
1.14k
        case TYPE_DECIMAL128I:
611
1.16k
        case TYPE_DECIMAL256:
612
1.16k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
1.16k
                                   col_with_type_and_name_right);
614
15
        case TYPE_CHAR:
615
171
        case TYPE_VARCHAR:
616
403
        case TYPE_STRING:
617
403
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
39
        default:
619
39
            return execute_generic(block, result, col_with_type_and_name_left,
620
39
                                   col_with_type_and_name_right);
621
17.4k
        }
622
0
        return Status::OK();
623
17.4k
    }
624
};
625
626
#include "common/compile_check_end.h"
627
} // namespace doris