Coverage Report

Created: 2026-04-07 14:13

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.3k
                                        PaddedPODArray<UInt8>& c) {
66
12.3k
        size_t size = a.size();
67
12.3k
        const A* __restrict a_pos = a.data();
68
12.3k
        const B* __restrict b_pos = b.data();
69
12.3k
        UInt8* __restrict c_pos = c.data();
70
12.3k
        const A* __restrict a_end = a_pos + size;
71
72
9.76M
        while (a_pos < a_end) {
73
9.75M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9.75M
            ++a_pos;
75
9.75M
            ++b_pos;
76
9.75M
            ++c_pos;
77
9.75M
        }
78
12.3k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
76
                                        PaddedPODArray<UInt8>& c) {
66
76
        size_t size = a.size();
67
76
        const A* __restrict a_pos = a.data();
68
76
        const B* __restrict b_pos = b.data();
69
76
        UInt8* __restrict c_pos = c.data();
70
76
        const A* __restrict a_end = a_pos + size;
71
72
152
        while (a_pos < a_end) {
73
76
            *c_pos = Op::apply(*a_pos, *b_pos);
74
76
            ++a_pos;
75
76
            ++b_pos;
76
76
            ++c_pos;
77
76
        }
78
76
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
245
                                        PaddedPODArray<UInt8>& c) {
66
245
        size_t size = a.size();
67
245
        const A* __restrict a_pos = a.data();
68
245
        const B* __restrict b_pos = b.data();
69
245
        UInt8* __restrict c_pos = c.data();
70
245
        const A* __restrict a_end = a_pos + size;
71
72
496
        while (a_pos < a_end) {
73
251
            *c_pos = Op::apply(*a_pos, *b_pos);
74
251
            ++a_pos;
75
251
            ++b_pos;
76
251
            ++c_pos;
77
251
        }
78
245
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
292
                                        PaddedPODArray<UInt8>& c) {
66
292
        size_t size = a.size();
67
292
        const A* __restrict a_pos = a.data();
68
292
        const B* __restrict b_pos = b.data();
69
292
        UInt8* __restrict c_pos = c.data();
70
292
        const A* __restrict a_end = a_pos + size;
71
72
603
        while (a_pos < a_end) {
73
311
            *c_pos = Op::apply(*a_pos, *b_pos);
74
311
            ++a_pos;
75
311
            ++b_pos;
76
311
            ++c_pos;
77
311
        }
78
292
    }
_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
855
                                        PaddedPODArray<UInt8>& c) {
66
855
        size_t size = a.size();
67
855
        const A* __restrict a_pos = a.data();
68
855
        const B* __restrict b_pos = b.data();
69
855
        UInt8* __restrict c_pos = c.data();
70
855
        const A* __restrict a_end = a_pos + size;
71
72
5.04k
        while (a_pos < a_end) {
73
4.18k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.18k
            ++a_pos;
75
4.18k
            ++b_pos;
76
4.18k
            ++c_pos;
77
4.18k
        }
78
855
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
134
                                        PaddedPODArray<UInt8>& c) {
66
134
        size_t size = a.size();
67
134
        const A* __restrict a_pos = a.data();
68
134
        const B* __restrict b_pos = b.data();
69
134
        UInt8* __restrict c_pos = c.data();
70
134
        const A* __restrict a_end = a_pos + size;
71
72
568
        while (a_pos < a_end) {
73
434
            *c_pos = Op::apply(*a_pos, *b_pos);
74
434
            ++a_pos;
75
434
            ++b_pos;
76
434
            ++c_pos;
77
434
        }
78
134
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
326
                                        PaddedPODArray<UInt8>& c) {
66
326
        size_t size = a.size();
67
326
        const A* __restrict a_pos = a.data();
68
326
        const B* __restrict b_pos = b.data();
69
326
        UInt8* __restrict c_pos = c.data();
70
326
        const A* __restrict a_end = a_pos + size;
71
72
132k
        while (a_pos < a_end) {
73
131k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
131k
            ++a_pos;
75
131k
            ++b_pos;
76
131k
            ++c_pos;
77
131k
        }
78
326
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
438
                                        PaddedPODArray<UInt8>& c) {
66
438
        size_t size = a.size();
67
438
        const A* __restrict a_pos = a.data();
68
438
        const B* __restrict b_pos = b.data();
69
438
        UInt8* __restrict c_pos = c.data();
70
438
        const A* __restrict a_end = a_pos + size;
71
72
12.1k
        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
438
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_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
216
        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
102
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
24
                                        PaddedPODArray<UInt8>& c) {
66
24
        size_t size = a.size();
67
24
        const A* __restrict a_pos = a.data();
68
24
        const B* __restrict b_pos = b.data();
69
24
        UInt8* __restrict c_pos = c.data();
70
24
        const A* __restrict a_end = a_pos + size;
71
72
48
        while (a_pos < a_end) {
73
24
            *c_pos = Op::apply(*a_pos, *b_pos);
74
24
            ++a_pos;
75
24
            ++b_pos;
76
24
            ++c_pos;
77
24
        }
78
24
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
118
                                        PaddedPODArray<UInt8>& c) {
66
118
        size_t size = a.size();
67
118
        const A* __restrict a_pos = a.data();
68
118
        const B* __restrict b_pos = b.data();
69
118
        UInt8* __restrict c_pos = c.data();
70
118
        const A* __restrict a_end = a_pos + size;
71
72
255
        while (a_pos < a_end) {
73
137
            *c_pos = Op::apply(*a_pos, *b_pos);
74
137
            ++a_pos;
75
137
            ++b_pos;
76
137
            ++c_pos;
77
137
        }
78
118
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
109
                                        PaddedPODArray<UInt8>& c) {
66
109
        size_t size = a.size();
67
109
        const A* __restrict a_pos = a.data();
68
109
        const B* __restrict b_pos = b.data();
69
109
        UInt8* __restrict c_pos = c.data();
70
109
        const A* __restrict a_end = a_pos + size;
71
72
239
        while (a_pos < a_end) {
73
130
            *c_pos = Op::apply(*a_pos, *b_pos);
74
130
            ++a_pos;
75
130
            ++b_pos;
76
130
            ++c_pos;
77
130
        }
78
109
    }
_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
54
                                        PaddedPODArray<UInt8>& c) {
66
54
        size_t size = a.size();
67
54
        const A* __restrict a_pos = a.data();
68
54
        const B* __restrict b_pos = b.data();
69
54
        UInt8* __restrict c_pos = c.data();
70
54
        const A* __restrict a_end = a_pos + size;
71
72
243
        while (a_pos < a_end) {
73
189
            *c_pos = Op::apply(*a_pos, *b_pos);
74
189
            ++a_pos;
75
189
            ++b_pos;
76
189
            ++c_pos;
77
189
        }
78
54
    }
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
450
                                        PaddedPODArray<UInt8>& c) {
66
450
        size_t size = a.size();
67
450
        const A* __restrict a_pos = a.data();
68
450
        const B* __restrict b_pos = b.data();
69
450
        UInt8* __restrict c_pos = c.data();
70
450
        const A* __restrict a_end = a_pos + size;
71
72
298k
        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
450
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
552
                                        PaddedPODArray<UInt8>& c) {
66
552
        size_t size = a.size();
67
552
        const A* __restrict a_pos = a.data();
68
552
        const B* __restrict b_pos = b.data();
69
552
        UInt8* __restrict c_pos = c.data();
70
552
        const A* __restrict a_end = a_pos + size;
71
72
32.6k
        while (a_pos < a_end) {
73
32.1k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
32.1k
            ++a_pos;
75
32.1k
            ++b_pos;
76
32.1k
            ++c_pos;
77
32.1k
        }
78
552
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.01k
                                        PaddedPODArray<UInt8>& c) {
66
1.01k
        size_t size = a.size();
67
1.01k
        const A* __restrict a_pos = a.data();
68
1.01k
        const B* __restrict b_pos = b.data();
69
1.01k
        UInt8* __restrict c_pos = c.data();
70
1.01k
        const A* __restrict a_end = a_pos + size;
71
72
2.62M
        while (a_pos < a_end) {
73
2.62M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.62M
            ++a_pos;
75
2.62M
            ++b_pos;
76
2.62M
            ++c_pos;
77
2.62M
        }
78
1.01k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
246
                                        PaddedPODArray<UInt8>& c) {
66
246
        size_t size = a.size();
67
246
        const A* __restrict a_pos = a.data();
68
246
        const B* __restrict b_pos = b.data();
69
246
        UInt8* __restrict c_pos = c.data();
70
246
        const A* __restrict a_end = a_pos + size;
71
72
2.00k
        while (a_pos < a_end) {
73
1.75k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.75k
            ++a_pos;
75
1.75k
            ++b_pos;
76
1.75k
            ++c_pos;
77
1.75k
        }
78
246
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
587
                                        PaddedPODArray<UInt8>& c) {
66
587
        size_t size = a.size();
67
587
        const A* __restrict a_pos = a.data();
68
587
        const B* __restrict b_pos = b.data();
69
587
        UInt8* __restrict c_pos = c.data();
70
587
        const A* __restrict a_end = a_pos + size;
71
72
3.96k
        while (a_pos < a_end) {
73
3.37k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.37k
            ++a_pos;
75
3.37k
            ++b_pos;
76
3.37k
            ++c_pos;
77
3.37k
        }
78
587
    }
_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
144
                                        PaddedPODArray<UInt8>& c) {
66
144
        size_t size = a.size();
67
144
        const A* __restrict a_pos = a.data();
68
144
        const B* __restrict b_pos = b.data();
69
144
        UInt8* __restrict c_pos = c.data();
70
144
        const A* __restrict a_end = a_pos + size;
71
72
1.78k
        while (a_pos < a_end) {
73
1.63k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.63k
            ++a_pos;
75
1.63k
            ++b_pos;
76
1.63k
            ++c_pos;
77
1.63k
        }
78
144
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_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
96
        while (a_pos < a_end) {
73
76
            *c_pos = Op::apply(*a_pos, *b_pos);
74
76
            ++a_pos;
75
76
            ++b_pos;
76
76
            ++c_pos;
77
76
        }
78
20
    }
_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
43
                                        PaddedPODArray<UInt8>& c) {
66
43
        size_t size = a.size();
67
43
        const A* __restrict a_pos = a.data();
68
43
        const B* __restrict b_pos = b.data();
69
43
        UInt8* __restrict c_pos = c.data();
70
43
        const A* __restrict a_end = a_pos + size;
71
72
139
        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
43
    }
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
6
                                        PaddedPODArray<UInt8>& c) {
66
6
        size_t size = a.size();
67
6
        const A* __restrict a_pos = a.data();
68
6
        const B* __restrict b_pos = b.data();
69
6
        UInt8* __restrict c_pos = c.data();
70
6
        const A* __restrict a_end = a_pos + size;
71
72
65
        while (a_pos < a_end) {
73
59
            *c_pos = Op::apply(*a_pos, *b_pos);
74
59
            ++a_pos;
75
59
            ++b_pos;
76
59
            ++c_pos;
77
59
        }
78
6
    }
_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
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
7
        while (a_pos < a_end) {
73
4
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4
            ++a_pos;
75
4
            ++b_pos;
76
4
            ++c_pos;
77
4
        }
78
3
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
9
                                        PaddedPODArray<UInt8>& c) {
66
9
        size_t size = a.size();
67
9
        const A* __restrict a_pos = a.data();
68
9
        const B* __restrict b_pos = b.data();
69
9
        UInt8* __restrict c_pos = c.data();
70
9
        const A* __restrict a_end = a_pos + size;
71
72
65
        while (a_pos < a_end) {
73
56
            *c_pos = Op::apply(*a_pos, *b_pos);
74
56
            ++a_pos;
75
56
            ++b_pos;
76
56
            ++c_pos;
77
56
        }
78
9
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
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
81
                                        PaddedPODArray<UInt8>& c) {
66
81
        size_t size = a.size();
67
81
        const A* __restrict a_pos = a.data();
68
81
        const B* __restrict b_pos = b.data();
69
81
        UInt8* __restrict c_pos = c.data();
70
81
        const A* __restrict a_end = a_pos + size;
71
72
162
        while (a_pos < a_end) {
73
81
            *c_pos = Op::apply(*a_pos, *b_pos);
74
81
            ++a_pos;
75
81
            ++b_pos;
76
81
            ++c_pos;
77
81
        }
78
81
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.81k
                                        PaddedPODArray<UInt8>& c) {
66
1.81k
        size_t size = a.size();
67
1.81k
        const A* __restrict a_pos = a.data();
68
1.81k
        const B* __restrict b_pos = b.data();
69
1.81k
        UInt8* __restrict c_pos = c.data();
70
1.81k
        const A* __restrict a_end = a_pos + size;
71
72
1.22M
        while (a_pos < a_end) {
73
1.22M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.22M
            ++a_pos;
75
1.22M
            ++b_pos;
76
1.22M
            ++c_pos;
77
1.22M
        }
78
1.81k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
232
                                        PaddedPODArray<UInt8>& c) {
66
232
        size_t size = a.size();
67
232
        const A* __restrict a_pos = a.data();
68
232
        const B* __restrict b_pos = b.data();
69
232
        UInt8* __restrict c_pos = c.data();
70
232
        const A* __restrict a_end = a_pos + size;
71
72
464
        while (a_pos < a_end) {
73
232
            *c_pos = Op::apply(*a_pos, *b_pos);
74
232
            ++a_pos;
75
232
            ++b_pos;
76
232
            ++c_pos;
77
232
        }
78
232
    }
_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
805
                                        PaddedPODArray<UInt8>& c) {
66
805
        size_t size = a.size();
67
805
        const A* __restrict a_pos = a.data();
68
805
        const B* __restrict b_pos = b.data();
69
805
        UInt8* __restrict c_pos = c.data();
70
805
        const A* __restrict a_end = a_pos + size;
71
72
4.60k
        while (a_pos < a_end) {
73
3.80k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.80k
            ++a_pos;
75
3.80k
            ++b_pos;
76
3.80k
            ++c_pos;
77
3.80k
        }
78
805
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
105
                                        PaddedPODArray<UInt8>& c) {
66
105
        size_t size = a.size();
67
105
        const A* __restrict a_pos = a.data();
68
105
        const B* __restrict b_pos = b.data();
69
105
        UInt8* __restrict c_pos = c.data();
70
105
        const A* __restrict a_end = a_pos + size;
71
72
211
        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
105
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
174
                                        PaddedPODArray<UInt8>& c) {
66
174
        size_t size = a.size();
67
174
        const A* __restrict a_pos = a.data();
68
174
        const B* __restrict b_pos = b.data();
69
174
        UInt8* __restrict c_pos = c.data();
70
174
        const A* __restrict a_end = a_pos + size;
71
72
814
        while (a_pos < a_end) {
73
640
            *c_pos = Op::apply(*a_pos, *b_pos);
74
640
            ++a_pos;
75
640
            ++b_pos;
76
640
            ++c_pos;
77
640
        }
78
174
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
243
                                        PaddedPODArray<UInt8>& c) {
66
243
        size_t size = a.size();
67
243
        const A* __restrict a_pos = a.data();
68
243
        const B* __restrict b_pos = b.data();
69
243
        UInt8* __restrict c_pos = c.data();
70
243
        const A* __restrict a_end = a_pos + size;
71
72
5.74k
        while (a_pos < a_end) {
73
5.50k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.50k
            ++a_pos;
75
5.50k
            ++b_pos;
76
5.50k
            ++c_pos;
77
5.50k
        }
78
243
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
167
                                        PaddedPODArray<UInt8>& c) {
66
167
        size_t size = a.size();
67
167
        const A* __restrict a_pos = a.data();
68
167
        const B* __restrict b_pos = b.data();
69
167
        UInt8* __restrict c_pos = c.data();
70
167
        const A* __restrict a_end = a_pos + size;
71
72
429
        while (a_pos < a_end) {
73
262
            *c_pos = Op::apply(*a_pos, *b_pos);
74
262
            ++a_pos;
75
262
            ++b_pos;
76
262
            ++c_pos;
77
262
        }
78
167
    }
_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
134
                                        PaddedPODArray<UInt8>& c) {
66
134
        size_t size = a.size();
67
134
        const A* __restrict a_pos = a.data();
68
134
        const B* __restrict b_pos = b.data();
69
134
        UInt8* __restrict c_pos = c.data();
70
134
        const A* __restrict a_end = a_pos + size;
71
72
287
        while (a_pos < a_end) {
73
153
            *c_pos = Op::apply(*a_pos, *b_pos);
74
153
            ++a_pos;
75
153
            ++b_pos;
76
153
            ++c_pos;
77
153
        }
78
134
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
128
                                        PaddedPODArray<UInt8>& c) {
66
128
        size_t size = a.size();
67
128
        const A* __restrict a_pos = a.data();
68
128
        const B* __restrict b_pos = b.data();
69
128
        UInt8* __restrict c_pos = c.data();
70
128
        const A* __restrict a_end = a_pos + size;
71
72
304
        while (a_pos < a_end) {
73
176
            *c_pos = Op::apply(*a_pos, *b_pos);
74
176
            ++a_pos;
75
176
            ++b_pos;
76
176
            ++c_pos;
77
176
        }
78
128
    }
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
431
                                        PaddedPODArray<UInt8>& c) {
66
431
        size_t size = a.size();
67
431
        const A* __restrict a_pos = a.data();
68
431
        const B* __restrict b_pos = b.data();
69
431
        UInt8* __restrict c_pos = c.data();
70
431
        const A* __restrict a_end = a_pos + size;
71
72
6.83k
        while (a_pos < a_end) {
73
6.39k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.39k
            ++a_pos;
75
6.39k
            ++b_pos;
76
6.39k
            ++c_pos;
77
6.39k
        }
78
431
    }
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
50
                                        PaddedPODArray<UInt8>& c) {
66
50
        size_t size = a.size();
67
50
        const A* __restrict a_pos = a.data();
68
50
        const B* __restrict b_pos = b.data();
69
50
        UInt8* __restrict c_pos = c.data();
70
50
        const A* __restrict a_end = a_pos + size;
71
72
951
        while (a_pos < a_end) {
73
901
            *c_pos = Op::apply(*a_pos, *b_pos);
74
901
            ++a_pos;
75
901
            ++b_pos;
76
901
            ++c_pos;
77
901
        }
78
50
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
39
                                        PaddedPODArray<UInt8>& c) {
66
39
        size_t size = a.size();
67
39
        const A* __restrict a_pos = a.data();
68
39
        const B* __restrict b_pos = b.data();
69
39
        UInt8* __restrict c_pos = c.data();
70
39
        const A* __restrict a_end = a_pos + size;
71
72
213
        while (a_pos < a_end) {
73
174
            *c_pos = Op::apply(*a_pos, *b_pos);
74
174
            ++a_pos;
75
174
            ++b_pos;
76
174
            ++c_pos;
77
174
        }
78
39
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
79
80
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
81
88.6k
                                          PaddedPODArray<UInt8>& c) {
82
88.6k
        size_t size = a.size();
83
88.6k
        const A* __restrict a_pos = a.data();
84
88.6k
        UInt8* __restrict c_pos = c.data();
85
88.6k
        const A* __restrict a_end = a_pos + size;
86
87
151M
        while (a_pos < a_end) {
88
151M
            *c_pos = Op::apply(*a_pos, b);
89
151M
            ++a_pos;
90
151M
            ++c_pos;
91
151M
        }
92
88.6k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
1.54k
                                          PaddedPODArray<UInt8>& c) {
82
1.54k
        size_t size = a.size();
83
1.54k
        const A* __restrict a_pos = a.data();
84
1.54k
        UInt8* __restrict c_pos = c.data();
85
1.54k
        const A* __restrict a_end = a_pos + size;
86
87
5.03k
        while (a_pos < a_end) {
88
3.49k
            *c_pos = Op::apply(*a_pos, b);
89
3.49k
            ++a_pos;
90
3.49k
            ++c_pos;
91
3.49k
        }
92
1.54k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
974
                                          PaddedPODArray<UInt8>& c) {
82
974
        size_t size = a.size();
83
974
        const A* __restrict a_pos = a.data();
84
974
        UInt8* __restrict c_pos = c.data();
85
974
        const A* __restrict a_end = a_pos + size;
86
87
204k
        while (a_pos < a_end) {
88
203k
            *c_pos = Op::apply(*a_pos, b);
89
203k
            ++a_pos;
90
203k
            ++c_pos;
91
203k
        }
92
974
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
410
                                          PaddedPODArray<UInt8>& c) {
82
410
        size_t size = a.size();
83
410
        const A* __restrict a_pos = a.data();
84
410
        UInt8* __restrict c_pos = c.data();
85
410
        const A* __restrict a_end = a_pos + size;
86
87
101k
        while (a_pos < a_end) {
88
100k
            *c_pos = Op::apply(*a_pos, b);
89
100k
            ++a_pos;
90
100k
            ++c_pos;
91
100k
        }
92
410
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
3.15k
                                          PaddedPODArray<UInt8>& c) {
82
3.15k
        size_t size = a.size();
83
3.15k
        const A* __restrict a_pos = a.data();
84
3.15k
        UInt8* __restrict c_pos = c.data();
85
3.15k
        const A* __restrict a_end = a_pos + size;
86
87
9.03M
        while (a_pos < a_end) {
88
9.02M
            *c_pos = Op::apply(*a_pos, b);
89
9.02M
            ++a_pos;
90
9.02M
            ++c_pos;
91
9.02M
        }
92
3.15k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_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
126k
        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
481
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
6.83k
                                          PaddedPODArray<UInt8>& c) {
82
6.83k
        size_t size = a.size();
83
6.83k
        const A* __restrict a_pos = a.data();
84
6.83k
        UInt8* __restrict c_pos = c.data();
85
6.83k
        const A* __restrict a_end = a_pos + size;
86
87
2.35M
        while (a_pos < a_end) {
88
2.35M
            *c_pos = Op::apply(*a_pos, b);
89
2.35M
            ++a_pos;
90
2.35M
            ++c_pos;
91
2.35M
        }
92
6.83k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
10.2k
                                          PaddedPODArray<UInt8>& c) {
82
10.2k
        size_t size = a.size();
83
10.2k
        const A* __restrict a_pos = a.data();
84
10.2k
        UInt8* __restrict c_pos = c.data();
85
10.2k
        const A* __restrict a_end = a_pos + size;
86
87
3.09M
        while (a_pos < a_end) {
88
3.08M
            *c_pos = Op::apply(*a_pos, b);
89
3.08M
            ++a_pos;
90
3.08M
            ++c_pos;
91
3.08M
        }
92
10.2k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
46
                                          PaddedPODArray<UInt8>& c) {
82
46
        size_t size = a.size();
83
46
        const A* __restrict a_pos = a.data();
84
46
        UInt8* __restrict c_pos = c.data();
85
46
        const A* __restrict a_end = a_pos + size;
86
87
101k
        while (a_pos < a_end) {
88
101k
            *c_pos = Op::apply(*a_pos, b);
89
101k
            ++a_pos;
90
101k
            ++c_pos;
91
101k
        }
92
46
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
15
                                          PaddedPODArray<UInt8>& c) {
82
15
        size_t size = a.size();
83
15
        const A* __restrict a_pos = a.data();
84
15
        UInt8* __restrict c_pos = c.data();
85
15
        const A* __restrict a_end = a_pos + size;
86
87
129
        while (a_pos < a_end) {
88
114
            *c_pos = Op::apply(*a_pos, b);
89
114
            ++a_pos;
90
114
            ++c_pos;
91
114
        }
92
15
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
6
                                          PaddedPODArray<UInt8>& c) {
82
6
        size_t size = a.size();
83
6
        const A* __restrict a_pos = a.data();
84
6
        UInt8* __restrict c_pos = c.data();
85
6
        const A* __restrict a_end = a_pos + size;
86
87
12
        while (a_pos < a_end) {
88
6
            *c_pos = Op::apply(*a_pos, b);
89
6
            ++a_pos;
90
6
            ++c_pos;
91
6
        }
92
6
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
4
                                          PaddedPODArray<UInt8>& c) {
82
4
        size_t size = a.size();
83
4
        const A* __restrict a_pos = a.data();
84
4
        UInt8* __restrict c_pos = c.data();
85
4
        const A* __restrict a_end = a_pos + size;
86
87
26
        while (a_pos < a_end) {
88
22
            *c_pos = Op::apply(*a_pos, b);
89
22
            ++a_pos;
90
22
            ++c_pos;
91
22
        }
92
4
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
264
                                          PaddedPODArray<UInt8>& c) {
82
264
        size_t size = a.size();
83
264
        const A* __restrict a_pos = a.data();
84
264
        UInt8* __restrict c_pos = c.data();
85
264
        const A* __restrict a_end = a_pos + size;
86
87
701k
        while (a_pos < a_end) {
88
701k
            *c_pos = Op::apply(*a_pos, b);
89
701k
            ++a_pos;
90
701k
            ++c_pos;
91
701k
        }
92
264
    }
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
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
29
        while (a_pos < a_end) {
88
15
            *c_pos = Op::apply(*a_pos, b);
89
15
            ++a_pos;
90
15
            ++c_pos;
91
15
        }
92
14
    }
_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
36
                                          PaddedPODArray<UInt8>& c) {
82
36
        size_t size = a.size();
83
36
        const A* __restrict a_pos = a.data();
84
36
        UInt8* __restrict c_pos = c.data();
85
36
        const A* __restrict a_end = a_pos + size;
86
87
1.23k
        while (a_pos < a_end) {
88
1.19k
            *c_pos = Op::apply(*a_pos, b);
89
1.19k
            ++a_pos;
90
1.19k
            ++c_pos;
91
1.19k
        }
92
36
    }
_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
932
                                          PaddedPODArray<UInt8>& c) {
82
932
        size_t size = a.size();
83
932
        const A* __restrict a_pos = a.data();
84
932
        UInt8* __restrict c_pos = c.data();
85
932
        const A* __restrict a_end = a_pos + size;
86
87
658k
        while (a_pos < a_end) {
88
657k
            *c_pos = Op::apply(*a_pos, b);
89
657k
            ++a_pos;
90
657k
            ++c_pos;
91
657k
        }
92
932
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.04k
                                          PaddedPODArray<UInt8>& c) {
82
1.04k
        size_t size = a.size();
83
1.04k
        const A* __restrict a_pos = a.data();
84
1.04k
        UInt8* __restrict c_pos = c.data();
85
1.04k
        const A* __restrict a_end = a_pos + size;
86
87
269k
        while (a_pos < a_end) {
88
267k
            *c_pos = Op::apply(*a_pos, b);
89
267k
            ++a_pos;
90
267k
            ++c_pos;
91
267k
        }
92
1.04k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
28
                                          PaddedPODArray<UInt8>& c) {
82
28
        size_t size = a.size();
83
28
        const A* __restrict a_pos = a.data();
84
28
        UInt8* __restrict c_pos = c.data();
85
28
        const A* __restrict a_end = a_pos + size;
86
87
70
        while (a_pos < a_end) {
88
42
            *c_pos = Op::apply(*a_pos, b);
89
42
            ++a_pos;
90
42
            ++c_pos;
91
42
        }
92
28
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
40
                                          PaddedPODArray<UInt8>& c) {
82
40
        size_t size = a.size();
83
40
        const A* __restrict a_pos = a.data();
84
40
        UInt8* __restrict c_pos = c.data();
85
40
        const A* __restrict a_end = a_pos + size;
86
87
282
        while (a_pos < a_end) {
88
242
            *c_pos = Op::apply(*a_pos, b);
89
242
            ++a_pos;
90
242
            ++c_pos;
91
242
        }
92
40
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
130
                                          PaddedPODArray<UInt8>& c) {
82
130
        size_t size = a.size();
83
130
        const A* __restrict a_pos = a.data();
84
130
        UInt8* __restrict c_pos = c.data();
85
130
        const A* __restrict a_end = a_pos + size;
86
87
1.15k
        while (a_pos < a_end) {
88
1.02k
            *c_pos = Op::apply(*a_pos, b);
89
1.02k
            ++a_pos;
90
1.02k
            ++c_pos;
91
1.02k
        }
92
130
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
459
                                          PaddedPODArray<UInt8>& c) {
82
459
        size_t size = a.size();
83
459
        const A* __restrict a_pos = a.data();
84
459
        UInt8* __restrict c_pos = c.data();
85
459
        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
459
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
91
                                          PaddedPODArray<UInt8>& c) {
82
91
        size_t size = a.size();
83
91
        const A* __restrict a_pos = a.data();
84
91
        UInt8* __restrict c_pos = c.data();
85
91
        const A* __restrict a_end = a_pos + size;
86
87
203
        while (a_pos < a_end) {
88
112
            *c_pos = Op::apply(*a_pos, b);
89
112
            ++a_pos;
90
112
            ++c_pos;
91
112
        }
92
91
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
329
                                          PaddedPODArray<UInt8>& c) {
82
329
        size_t size = a.size();
83
329
        const A* __restrict a_pos = a.data();
84
329
        UInt8* __restrict c_pos = c.data();
85
329
        const A* __restrict a_end = a_pos + size;
86
87
45.4k
        while (a_pos < a_end) {
88
45.1k
            *c_pos = Op::apply(*a_pos, b);
89
45.1k
            ++a_pos;
90
45.1k
            ++c_pos;
91
45.1k
        }
92
329
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
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
385
                                          PaddedPODArray<UInt8>& c) {
82
385
        size_t size = a.size();
83
385
        const A* __restrict a_pos = a.data();
84
385
        UInt8* __restrict c_pos = c.data();
85
385
        const A* __restrict a_end = a_pos + size;
86
87
4.03k
        while (a_pos < a_end) {
88
3.64k
            *c_pos = Op::apply(*a_pos, b);
89
3.64k
            ++a_pos;
90
3.64k
            ++c_pos;
91
3.64k
        }
92
385
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
48
                                          PaddedPODArray<UInt8>& c) {
82
48
        size_t size = a.size();
83
48
        const A* __restrict a_pos = a.data();
84
48
        UInt8* __restrict c_pos = c.data();
85
48
        const A* __restrict a_end = a_pos + size;
86
87
2.34k
        while (a_pos < a_end) {
88
2.29k
            *c_pos = Op::apply(*a_pos, b);
89
2.29k
            ++a_pos;
90
2.29k
            ++c_pos;
91
2.29k
        }
92
48
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
429
                                          PaddedPODArray<UInt8>& c) {
82
429
        size_t size = a.size();
83
429
        const A* __restrict a_pos = a.data();
84
429
        UInt8* __restrict c_pos = c.data();
85
429
        const A* __restrict a_end = a_pos + size;
86
87
7.81k
        while (a_pos < a_end) {
88
7.39k
            *c_pos = Op::apply(*a_pos, b);
89
7.39k
            ++a_pos;
90
7.39k
            ++c_pos;
91
7.39k
        }
92
429
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
138
                                          PaddedPODArray<UInt8>& c) {
82
138
        size_t size = a.size();
83
138
        const A* __restrict a_pos = a.data();
84
138
        UInt8* __restrict c_pos = c.data();
85
138
        const A* __restrict a_end = a_pos + size;
86
87
12.5k
        while (a_pos < a_end) {
88
12.4k
            *c_pos = Op::apply(*a_pos, b);
89
12.4k
            ++a_pos;
90
12.4k
            ++c_pos;
91
12.4k
        }
92
138
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
7.05k
                                          PaddedPODArray<UInt8>& c) {
82
7.05k
        size_t size = a.size();
83
7.05k
        const A* __restrict a_pos = a.data();
84
7.05k
        UInt8* __restrict c_pos = c.data();
85
7.05k
        const A* __restrict a_end = a_pos + size;
86
87
1.55M
        while (a_pos < a_end) {
88
1.54M
            *c_pos = Op::apply(*a_pos, b);
89
1.54M
            ++a_pos;
90
1.54M
            ++c_pos;
91
1.54M
        }
92
7.05k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.87k
                                          PaddedPODArray<UInt8>& c) {
82
1.87k
        size_t size = a.size();
83
1.87k
        const A* __restrict a_pos = a.data();
84
1.87k
        UInt8* __restrict c_pos = c.data();
85
1.87k
        const A* __restrict a_end = a_pos + size;
86
87
4.53M
        while (a_pos < a_end) {
88
4.53M
            *c_pos = Op::apply(*a_pos, b);
89
4.53M
            ++a_pos;
90
4.53M
            ++c_pos;
91
4.53M
        }
92
1.87k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
13.1k
                                          PaddedPODArray<UInt8>& c) {
82
13.1k
        size_t size = a.size();
83
13.1k
        const A* __restrict a_pos = a.data();
84
13.1k
        UInt8* __restrict c_pos = c.data();
85
13.1k
        const A* __restrict a_end = a_pos + size;
86
87
198k
        while (a_pos < a_end) {
88
185k
            *c_pos = Op::apply(*a_pos, b);
89
185k
            ++a_pos;
90
185k
            ++c_pos;
91
185k
        }
92
13.1k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.40k
                                          PaddedPODArray<UInt8>& c) {
82
1.40k
        size_t size = a.size();
83
1.40k
        const A* __restrict a_pos = a.data();
84
1.40k
        UInt8* __restrict c_pos = c.data();
85
1.40k
        const A* __restrict a_end = a_pos + size;
86
87
3.94k
        while (a_pos < a_end) {
88
2.54k
            *c_pos = Op::apply(*a_pos, b);
89
2.54k
            ++a_pos;
90
2.54k
            ++c_pos;
91
2.54k
        }
92
1.40k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
203
                                          PaddedPODArray<UInt8>& c) {
82
203
        size_t size = a.size();
83
203
        const A* __restrict a_pos = a.data();
84
203
        UInt8* __restrict c_pos = c.data();
85
203
        const A* __restrict a_end = a_pos + size;
86
87
1.74k
        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
203
    }
_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
100k
        while (a_pos < a_end) {
88
100k
            *c_pos = Op::apply(*a_pos, b);
89
100k
            ++a_pos;
90
100k
            ++c_pos;
91
100k
        }
92
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
208
                                          PaddedPODArray<UInt8>& c) {
82
208
        size_t size = a.size();
83
208
        const A* __restrict a_pos = a.data();
84
208
        UInt8* __restrict c_pos = c.data();
85
208
        const A* __restrict a_end = a_pos + size;
86
87
3.76k
        while (a_pos < a_end) {
88
3.55k
            *c_pos = Op::apply(*a_pos, b);
89
3.55k
            ++a_pos;
90
3.55k
            ++c_pos;
91
3.55k
        }
92
208
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
26
                                          PaddedPODArray<UInt8>& c) {
82
26
        size_t size = a.size();
83
26
        const A* __restrict a_pos = a.data();
84
26
        UInt8* __restrict c_pos = c.data();
85
26
        const A* __restrict a_end = a_pos + size;
86
87
64
        while (a_pos < a_end) {
88
38
            *c_pos = Op::apply(*a_pos, b);
89
38
            ++a_pos;
90
38
            ++c_pos;
91
38
        }
92
26
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
2.41k
                                          PaddedPODArray<UInt8>& c) {
82
2.41k
        size_t size = a.size();
83
2.41k
        const A* __restrict a_pos = a.data();
84
2.41k
        UInt8* __restrict c_pos = c.data();
85
2.41k
        const A* __restrict a_end = a_pos + size;
86
87
346k
        while (a_pos < a_end) {
88
344k
            *c_pos = Op::apply(*a_pos, b);
89
344k
            ++a_pos;
90
344k
            ++c_pos;
91
344k
        }
92
2.41k
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
188
                                          PaddedPODArray<UInt8>& c) {
82
188
        size_t size = a.size();
83
188
        const A* __restrict a_pos = a.data();
84
188
        UInt8* __restrict c_pos = c.data();
85
188
        const A* __restrict a_end = a_pos + size;
86
87
316k
        while (a_pos < a_end) {
88
316k
            *c_pos = Op::apply(*a_pos, b);
89
316k
            ++a_pos;
90
316k
            ++c_pos;
91
316k
        }
92
188
    }
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
187
                                          PaddedPODArray<UInt8>& c) {
82
187
        size_t size = a.size();
83
187
        const A* __restrict a_pos = a.data();
84
187
        UInt8* __restrict c_pos = c.data();
85
187
        const A* __restrict a_end = a_pos + size;
86
87
122k
        while (a_pos < a_end) {
88
122k
            *c_pos = Op::apply(*a_pos, b);
89
122k
            ++a_pos;
90
122k
            ++c_pos;
91
122k
        }
92
187
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
186
                                          PaddedPODArray<UInt8>& c) {
82
186
        size_t size = a.size();
83
186
        const A* __restrict a_pos = a.data();
84
186
        UInt8* __restrict c_pos = c.data();
85
186
        const A* __restrict a_end = a_pos + size;
86
87
120k
        while (a_pos < a_end) {
88
120k
            *c_pos = Op::apply(*a_pos, b);
89
120k
            ++a_pos;
90
120k
            ++c_pos;
91
120k
        }
92
186
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
1.56k
                                          PaddedPODArray<UInt8>& c) {
82
1.56k
        size_t size = a.size();
83
1.56k
        const A* __restrict a_pos = a.data();
84
1.56k
        UInt8* __restrict c_pos = c.data();
85
1.56k
        const A* __restrict a_end = a_pos + size;
86
87
4.67M
        while (a_pos < a_end) {
88
4.67M
            *c_pos = Op::apply(*a_pos, b);
89
4.67M
            ++a_pos;
90
4.67M
            ++c_pos;
91
4.67M
        }
92
1.56k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
4.05k
                                          PaddedPODArray<UInt8>& c) {
82
4.05k
        size_t size = a.size();
83
4.05k
        const A* __restrict a_pos = a.data();
84
4.05k
        UInt8* __restrict c_pos = c.data();
85
4.05k
        const A* __restrict a_end = a_pos + size;
86
87
27.7M
        while (a_pos < a_end) {
88
27.7M
            *c_pos = Op::apply(*a_pos, b);
89
27.7M
            ++a_pos;
90
27.7M
            ++c_pos;
91
27.7M
        }
92
4.05k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
708
                                          PaddedPODArray<UInt8>& c) {
82
708
        size_t size = a.size();
83
708
        const A* __restrict a_pos = a.data();
84
708
        UInt8* __restrict c_pos = c.data();
85
708
        const A* __restrict a_end = a_pos + size;
86
87
1.99k
        while (a_pos < a_end) {
88
1.28k
            *c_pos = Op::apply(*a_pos, b);
89
1.28k
            ++a_pos;
90
1.28k
            ++c_pos;
91
1.28k
        }
92
708
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
377
                                          PaddedPODArray<UInt8>& c) {
82
377
        size_t size = a.size();
83
377
        const A* __restrict a_pos = a.data();
84
377
        UInt8* __restrict c_pos = c.data();
85
377
        const A* __restrict a_end = a_pos + size;
86
87
838
        while (a_pos < a_end) {
88
461
            *c_pos = Op::apply(*a_pos, b);
89
461
            ++a_pos;
90
461
            ++c_pos;
91
461
        }
92
377
    }
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
73
                                          PaddedPODArray<UInt8>& c) {
82
73
        size_t size = a.size();
83
73
        const A* __restrict a_pos = a.data();
84
73
        UInt8* __restrict c_pos = c.data();
85
73
        const A* __restrict a_end = a_pos + size;
86
87
110k
        while (a_pos < a_end) {
88
110k
            *c_pos = Op::apply(*a_pos, b);
89
110k
            ++a_pos;
90
110k
            ++c_pos;
91
110k
        }
92
73
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
99
                                          PaddedPODArray<UInt8>& c) {
82
99
        size_t size = a.size();
83
99
        const A* __restrict a_pos = a.data();
84
99
        UInt8* __restrict c_pos = c.data();
85
99
        const A* __restrict a_end = a_pos + size;
86
87
120k
        while (a_pos < a_end) {
88
120k
            *c_pos = Op::apply(*a_pos, b);
89
120k
            ++a_pos;
90
120k
            ++c_pos;
91
120k
        }
92
99
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_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
55.5k
        while (a_pos < a_end) {
88
55.4k
            *c_pos = Op::apply(*a_pos, b);
89
55.4k
            ++a_pos;
90
55.4k
            ++c_pos;
91
55.4k
        }
92
95
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
142
                                          PaddedPODArray<UInt8>& c) {
82
142
        size_t size = a.size();
83
142
        const A* __restrict a_pos = a.data();
84
142
        UInt8* __restrict c_pos = c.data();
85
142
        const A* __restrict a_end = a_pos + size;
86
87
93.1k
        while (a_pos < a_end) {
88
93.0k
            *c_pos = Op::apply(*a_pos, b);
89
93.0k
            ++a_pos;
90
93.0k
            ++c_pos;
91
93.0k
        }
92
142
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
12.4k
                                          PaddedPODArray<UInt8>& c) {
82
12.4k
        size_t size = a.size();
83
12.4k
        const A* __restrict a_pos = a.data();
84
12.4k
        UInt8* __restrict c_pos = c.data();
85
12.4k
        const A* __restrict a_end = a_pos + size;
86
87
46.2M
        while (a_pos < a_end) {
88
46.1M
            *c_pos = Op::apply(*a_pos, b);
89
46.1M
            ++a_pos;
90
46.1M
            ++c_pos;
91
46.1M
        }
92
12.4k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
12.4k
                                          PaddedPODArray<UInt8>& c) {
82
12.4k
        size_t size = a.size();
83
12.4k
        const A* __restrict a_pos = a.data();
84
12.4k
        UInt8* __restrict c_pos = c.data();
85
12.4k
        const A* __restrict a_end = a_pos + size;
86
87
46.2M
        while (a_pos < a_end) {
88
46.2M
            *c_pos = Op::apply(*a_pos, b);
89
46.2M
            ++a_pos;
90
46.2M
            ++c_pos;
91
46.2M
        }
92
12.4k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
461
                                          PaddedPODArray<UInt8>& c) {
82
461
        size_t size = a.size();
83
461
        const A* __restrict a_pos = a.data();
84
461
        UInt8* __restrict c_pos = c.data();
85
461
        const A* __restrict a_end = a_pos + size;
86
87
19.6k
        while (a_pos < a_end) {
88
19.1k
            *c_pos = Op::apply(*a_pos, b);
89
19.1k
            ++a_pos;
90
19.1k
            ++c_pos;
91
19.1k
        }
92
461
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
610
                                          PaddedPODArray<UInt8>& c) {
82
610
        size_t size = a.size();
83
610
        const A* __restrict a_pos = a.data();
84
610
        UInt8* __restrict c_pos = c.data();
85
610
        const A* __restrict a_end = a_pos + size;
86
87
7.18k
        while (a_pos < a_end) {
88
6.57k
            *c_pos = Op::apply(*a_pos, b);
89
6.57k
            ++a_pos;
90
6.57k
            ++c_pos;
91
6.57k
        }
92
610
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
43
                                          PaddedPODArray<UInt8>& c) {
82
43
        size_t size = a.size();
83
43
        const A* __restrict a_pos = a.data();
84
43
        UInt8* __restrict c_pos = c.data();
85
43
        const A* __restrict a_end = a_pos + size;
86
87
63.3k
        while (a_pos < a_end) {
88
63.2k
            *c_pos = Op::apply(*a_pos, b);
89
63.2k
            ++a_pos;
90
63.2k
            ++c_pos;
91
63.2k
        }
92
43
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
58
                                          PaddedPODArray<UInt8>& c) {
82
58
        size_t size = a.size();
83
58
        const A* __restrict a_pos = a.data();
84
58
        UInt8* __restrict c_pos = c.data();
85
58
        const A* __restrict a_end = a_pos + size;
86
87
160k
        while (a_pos < a_end) {
88
160k
            *c_pos = Op::apply(*a_pos, b);
89
160k
            ++a_pos;
90
160k
            ++c_pos;
91
160k
        }
92
58
    }
_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
148
                                          PaddedPODArray<UInt8>& c) {
82
148
        size_t size = a.size();
83
148
        const A* __restrict a_pos = a.data();
84
148
        UInt8* __restrict c_pos = c.data();
85
148
        const A* __restrict a_end = a_pos + size;
86
87
298
        while (a_pos < a_end) {
88
150
            *c_pos = Op::apply(*a_pos, b);
89
150
            ++a_pos;
90
150
            ++c_pos;
91
150
        }
92
148
    }
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
144
                                          PaddedPODArray<UInt8>& c) {
82
144
        size_t size = a.size();
83
144
        const A* __restrict a_pos = a.data();
84
144
        UInt8* __restrict c_pos = c.data();
85
144
        const A* __restrict a_end = a_pos + size;
86
87
288
        while (a_pos < a_end) {
88
144
            *c_pos = Op::apply(*a_pos, b);
89
144
            ++a_pos;
90
144
            ++c_pos;
91
144
        }
92
144
    }
_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
115
                                          PaddedPODArray<UInt8>& c) {
82
115
        size_t size = a.size();
83
115
        const A* __restrict a_pos = a.data();
84
115
        UInt8* __restrict c_pos = c.data();
85
115
        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
115
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
93
94
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
5
    }
Unexecuted instantiation: _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
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
5
    }
Unexecuted instantiation: _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
131
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
131
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
415k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
415k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
415k
        }
113
131
    }
_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
53
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
53
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
242k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
242k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
242k
        }
113
53
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
41
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
41
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
172k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
172k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
172k
        }
113
41
    }
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
455
                                                      PaddedPODArray<UInt8>& c) {
127
455
        size_t size = a_offsets.size();
128
455
        ColumnString::Offset prev_a_offset = 0;
129
455
        ColumnString::Offset prev_b_offset = 0;
130
455
        const auto* a_pos = a_data.data();
131
455
        const auto* b_pos = b_data.data();
132
133
1.20k
        for (size_t i = 0; i < size; ++i) {
134
752
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
752
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
752
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
752
                             0);
138
139
752
            prev_a_offset = a_offsets[i];
140
752
            prev_b_offset = b_offsets[i];
141
752
        }
142
455
    }
_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
407
                                                      PaddedPODArray<UInt8>& c) {
127
407
        size_t size = a_offsets.size();
128
407
        ColumnString::Offset prev_a_offset = 0;
129
407
        ColumnString::Offset prev_b_offset = 0;
130
407
        const auto* a_pos = a_data.data();
131
407
        const auto* b_pos = b_data.data();
132
133
818
        for (size_t i = 0; i < size; ++i) {
134
411
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
411
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
411
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
411
                             0);
138
139
411
            prev_a_offset = a_offsets[i];
140
411
            prev_b_offset = b_offsets[i];
141
411
        }
142
407
    }
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.96k
                                                 PaddedPODArray<UInt8>& c) {
149
1.96k
        size_t size = a_offsets.size();
150
1.96k
        ColumnString::Offset prev_a_offset = 0;
151
1.96k
        const auto* a_pos = a_data.data();
152
1.96k
        const auto* b_pos = b_data.data();
153
154
1.31M
        for (size_t i = 0; i < size; ++i) {
155
1.31M
            c[i] = Op::apply(
156
1.31M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
1.31M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
1.31M
                    0);
159
160
1.31M
            prev_a_offset = a_offsets[i];
161
1.31M
        }
162
1.96k
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
210
                                                 PaddedPODArray<UInt8>& c) {
149
210
        size_t size = a_offsets.size();
150
210
        ColumnString::Offset prev_a_offset = 0;
151
210
        const auto* a_pos = a_data.data();
152
210
        const auto* b_pos = b_data.data();
153
154
325k
        for (size_t i = 0; i < size; ++i) {
155
324k
            c[i] = Op::apply(
156
324k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
324k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
324k
                    0);
159
160
324k
            prev_a_offset = a_offsets[i];
161
324k
        }
162
210
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
263
                                                 PaddedPODArray<UInt8>& c) {
149
263
        size_t size = a_offsets.size();
150
263
        ColumnString::Offset prev_a_offset = 0;
151
263
        const auto* a_pos = a_data.data();
152
263
        const auto* b_pos = b_data.data();
153
154
73.2k
        for (size_t i = 0; i < size; ++i) {
155
72.9k
            c[i] = Op::apply(
156
72.9k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
72.9k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
72.9k
                    0);
159
160
72.9k
            prev_a_offset = a_offsets[i];
161
72.9k
        }
162
263
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
617
                                                 PaddedPODArray<UInt8>& c) {
149
617
        size_t size = a_offsets.size();
150
617
        ColumnString::Offset prev_a_offset = 0;
151
617
        const auto* a_pos = a_data.data();
152
617
        const auto* b_pos = b_data.data();
153
154
440k
        for (size_t i = 0; i < size; ++i) {
155
440k
            c[i] = Op::apply(
156
440k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
440k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
440k
                    0);
159
160
440k
            prev_a_offset = a_offsets[i];
161
440k
        }
162
617
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
875
                                                 PaddedPODArray<UInt8>& c) {
149
875
        size_t size = a_offsets.size();
150
875
        ColumnString::Offset prev_a_offset = 0;
151
875
        const auto* a_pos = a_data.data();
152
875
        const auto* b_pos = b_data.data();
153
154
476k
        for (size_t i = 0; i < size; ++i) {
155
476k
            c[i] = Op::apply(
156
476k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
476k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
476k
                    0);
159
160
476k
            prev_a_offset = a_offsets[i];
161
476k
        }
162
875
    }
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
507
                                                      PaddedPODArray<UInt8>& c) {
181
507
        size_t size = a_offsets.size();
182
507
        ColumnString::Offset prev_a_offset = 0;
183
507
        ColumnString::Offset prev_b_offset = 0;
184
507
        const auto* a_pos = a_data.data();
185
507
        const auto* b_pos = b_data.data();
186
187
1.48k
        for (size_t i = 0; i < size; ++i) {
188
978
            auto a_size = a_offsets[i] - prev_a_offset;
189
978
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
978
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
978
                                                               b_pos + prev_b_offset, b_size);
193
194
978
            prev_a_offset = a_offsets[i];
195
978
            prev_b_offset = b_offsets[i];
196
978
        }
197
507
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
506
                                                      PaddedPODArray<UInt8>& c) {
181
506
        size_t size = a_offsets.size();
182
506
        ColumnString::Offset prev_a_offset = 0;
183
506
        ColumnString::Offset prev_b_offset = 0;
184
506
        const auto* a_pos = a_data.data();
185
506
        const auto* b_pos = b_data.data();
186
187
1.48k
        for (size_t i = 0; i < size; ++i) {
188
974
            auto a_size = a_offsets[i] - prev_a_offset;
189
974
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
974
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
974
                                                               b_pos + prev_b_offset, b_size);
193
194
974
            prev_a_offset = a_offsets[i];
195
974
            prev_b_offset = b_offsets[i];
196
974
        }
197
506
    }
_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
22.0k
                                                 PaddedPODArray<UInt8>& c) {
204
22.0k
        size_t size = a_offsets.size();
205
22.0k
        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
22.0k
        } else {
215
22.0k
            ColumnString::Offset prev_a_offset = 0;
216
22.0k
            const auto* a_pos = a_data.data();
217
22.0k
            const auto* b_pos = b_data.data();
218
8.63M
            for (size_t i = 0; i < size; ++i) {
219
8.61M
                auto a_size = a_offsets[i] - prev_a_offset;
220
8.61M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
8.61M
                                                                   b_pos, b_size);
222
8.61M
                prev_a_offset = a_offsets[i];
223
8.61M
            }
224
22.0k
        }
225
22.0k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
20.7k
                                                 PaddedPODArray<UInt8>& c) {
204
20.7k
        size_t size = a_offsets.size();
205
20.7k
        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
20.7k
        } else {
215
20.7k
            ColumnString::Offset prev_a_offset = 0;
216
20.7k
            const auto* a_pos = a_data.data();
217
20.7k
            const auto* b_pos = b_data.data();
218
7.69M
            for (size_t i = 0; i < size; ++i) {
219
7.67M
                auto a_size = a_offsets[i] - prev_a_offset;
220
7.67M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
7.67M
                                                                   b_pos, b_size);
222
7.67M
                prev_a_offset = a_offsets[i];
223
7.67M
            }
224
20.7k
        }
225
20.7k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
1.33k
                                                 PaddedPODArray<UInt8>& c) {
204
1.33k
        size_t size = a_offsets.size();
205
1.33k
        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
1.30k
        } else {
215
1.30k
            ColumnString::Offset prev_a_offset = 0;
216
1.30k
            const auto* a_pos = a_data.data();
217
1.30k
            const auto* b_pos = b_data.data();
218
946k
            for (size_t i = 0; i < size; ++i) {
219
945k
                auto a_size = a_offsets[i] - prev_a_offset;
220
945k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
945k
                                                                   b_pos, b_size);
222
945k
                prev_a_offset = a_offsets[i];
223
945k
            }
224
1.30k
        }
225
1.33k
    }
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
476k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
265
423k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
265
1.33k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
265
6.27k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
265
20.8k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
265
3.15k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
265
21.4k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
266
267
476k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
267
423k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
267
1.33k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
267
6.27k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
267
20.8k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
267
3.15k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
267
21.4k
    FunctionComparison() = default;
268
269
1.22M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
269
1.17M
    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.77k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
269
17.9k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
269
3.38k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
269
16.1k
    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
100k
                            const ColumnPtr& col_right_ptr) const {
275
100k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
100k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
100k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
100k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
100k
        DCHECK(!(left_is_const && right_is_const));
282
283
100k
        if (!left_is_const && !right_is_const) {
284
12.3k
            auto col_res = ColumnUInt8::create();
285
286
12.3k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
12.3k
            vec_res.resize(col_left->get_data().size());
288
12.3k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
12.3k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
12.3k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
12.3k
                                                     vec_res);
292
293
12.3k
            block.replace_by_position(result, std::move(col_res));
294
88.6k
        } else if (!left_is_const && right_is_const) {
295
88.6k
            auto col_res = ColumnUInt8::create();
296
297
88.6k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
88.6k
            vec_res.resize(col_left->size());
299
88.6k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
88.6k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
88.6k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
88.6k
                                                       col_right->get_element(0), vec_res);
303
304
88.6k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
5
            auto col_res = ColumnUInt8::create();
307
308
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
5
            vec_res.resize(col_right->size());
310
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
5
                              typename PrimitiveTypeTraits<PT>::CppType,
312
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
5
                                                       col_right->get_data(), vec_res);
314
315
5
            block.replace_by_position(result, std::move(col_res));
316
5
        }
317
100k
        return Status::OK();
318
100k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.61k
                            const ColumnPtr& col_right_ptr) const {
275
1.61k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.61k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.61k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.61k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.61k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.61k
        if (!left_is_const && !right_is_const) {
284
76
            auto col_res = ColumnUInt8::create();
285
286
76
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
76
            vec_res.resize(col_left->get_data().size());
288
76
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
76
                              typename PrimitiveTypeTraits<PT>::CppType,
290
76
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
76
                                                     vec_res);
292
293
76
            block.replace_by_position(result, std::move(col_res));
294
1.54k
        } else if (!left_is_const && right_is_const) {
295
1.54k
            auto col_res = ColumnUInt8::create();
296
297
1.54k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.54k
            vec_res.resize(col_left->size());
299
1.54k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.54k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.54k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.54k
                                                       col_right->get_element(0), vec_res);
303
304
1.54k
            block.replace_by_position(result, std::move(col_res));
305
1.54k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.61k
        return Status::OK();
318
1.61k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_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
245
            auto col_res = ColumnUInt8::create();
285
286
245
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
245
            vec_res.resize(col_left->get_data().size());
288
245
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
245
                              typename PrimitiveTypeTraits<PT>::CppType,
290
245
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
245
                                                     vec_res);
292
293
245
            block.replace_by_position(result, std::move(col_res));
294
974
        } else if (!left_is_const && right_is_const) {
295
974
            auto col_res = ColumnUInt8::create();
296
297
974
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
974
            vec_res.resize(col_left->size());
299
974
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
974
                              typename PrimitiveTypeTraits<PT>::CppType,
301
974
                              Op<PT>>::vector_constant(col_left->get_data(),
302
974
                                                       col_right->get_element(0), vec_res);
303
304
974
            block.replace_by_position(result, std::move(col_res));
305
974
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
702
                            const ColumnPtr& col_right_ptr) const {
275
702
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
702
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
702
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
702
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
702
        DCHECK(!(left_is_const && right_is_const));
282
283
702
        if (!left_is_const && !right_is_const) {
284
292
            auto col_res = ColumnUInt8::create();
285
286
292
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
292
            vec_res.resize(col_left->get_data().size());
288
292
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
292
                              typename PrimitiveTypeTraits<PT>::CppType,
290
292
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
292
                                                     vec_res);
292
293
292
            block.replace_by_position(result, std::move(col_res));
294
410
        } else if (!left_is_const && right_is_const) {
295
410
            auto col_res = ColumnUInt8::create();
296
297
410
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
410
            vec_res.resize(col_left->size());
299
410
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
410
                              typename PrimitiveTypeTraits<PT>::CppType,
301
410
                              Op<PT>>::vector_constant(col_left->get_data(),
302
410
                                                       col_right->get_element(0), vec_res);
303
304
410
            block.replace_by_position(result, std::move(col_res));
305
410
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
702
        return Status::OK();
318
702
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4.00k
                            const ColumnPtr& col_right_ptr) const {
275
4.00k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4.00k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4.00k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4.00k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4.00k
        DCHECK(!(left_is_const && right_is_const));
282
283
4.00k
        if (!left_is_const && !right_is_const) {
284
855
            auto col_res = ColumnUInt8::create();
285
286
855
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
855
            vec_res.resize(col_left->get_data().size());
288
855
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
855
                              typename PrimitiveTypeTraits<PT>::CppType,
290
855
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
855
                                                     vec_res);
292
293
855
            block.replace_by_position(result, std::move(col_res));
294
3.15k
        } else if (!left_is_const && right_is_const) {
295
3.15k
            auto col_res = ColumnUInt8::create();
296
297
3.15k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
3.15k
            vec_res.resize(col_left->size());
299
3.15k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
3.15k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
3.15k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
3.15k
                                                       col_right->get_element(0), vec_res);
303
304
3.15k
            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
4.00k
        return Status::OK();
318
4.00k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
614
                            const ColumnPtr& col_right_ptr) const {
275
614
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
614
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
614
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
614
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
614
        DCHECK(!(left_is_const && right_is_const));
282
283
614
        if (!left_is_const && !right_is_const) {
284
134
            auto col_res = ColumnUInt8::create();
285
286
134
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
134
            vec_res.resize(col_left->get_data().size());
288
134
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
134
                              typename PrimitiveTypeTraits<PT>::CppType,
290
134
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
134
                                                     vec_res);
292
293
134
            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
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
614
        return Status::OK();
318
614
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
7.16k
                            const ColumnPtr& col_right_ptr) const {
275
7.16k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
7.16k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
7.16k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
7.16k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
7.16k
        DCHECK(!(left_is_const && right_is_const));
282
283
7.16k
        if (!left_is_const && !right_is_const) {
284
326
            auto col_res = ColumnUInt8::create();
285
286
326
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
326
            vec_res.resize(col_left->get_data().size());
288
326
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
326
                              typename PrimitiveTypeTraits<PT>::CppType,
290
326
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
326
                                                     vec_res);
292
293
326
            block.replace_by_position(result, std::move(col_res));
294
6.83k
        } else if (!left_is_const && right_is_const) {
295
6.83k
            auto col_res = ColumnUInt8::create();
296
297
6.83k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6.83k
            vec_res.resize(col_left->size());
299
6.83k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6.83k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6.83k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6.83k
                                                       col_right->get_element(0), vec_res);
303
304
6.83k
            block.replace_by_position(result, std::move(col_res));
305
6.83k
        } else if (left_is_const && !right_is_const) {
306
5
            auto col_res = ColumnUInt8::create();
307
308
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
5
            vec_res.resize(col_right->size());
310
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
5
                              typename PrimitiveTypeTraits<PT>::CppType,
312
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
5
                                                       col_right->get_data(), vec_res);
314
315
5
            block.replace_by_position(result, std::move(col_res));
316
5
        }
317
7.16k
        return Status::OK();
318
7.16k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
10.6k
                            const ColumnPtr& col_right_ptr) const {
275
10.6k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
10.6k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
10.6k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
10.6k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
10.6k
        DCHECK(!(left_is_const && right_is_const));
282
283
10.6k
        if (!left_is_const && !right_is_const) {
284
438
            auto col_res = ColumnUInt8::create();
285
286
438
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
438
            vec_res.resize(col_left->get_data().size());
288
438
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
438
                              typename PrimitiveTypeTraits<PT>::CppType,
290
438
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
438
                                                     vec_res);
292
293
438
            block.replace_by_position(result, std::move(col_res));
294
10.2k
        } else if (!left_is_const && right_is_const) {
295
10.2k
            auto col_res = ColumnUInt8::create();
296
297
10.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10.2k
            vec_res.resize(col_left->size());
299
10.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10.2k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10.2k
                                                       col_right->get_element(0), vec_res);
303
304
10.2k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
10.6k
        return Status::OK();
318
10.6k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
148
                            const ColumnPtr& col_right_ptr) const {
275
148
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
148
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
148
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
148
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
148
        DCHECK(!(left_is_const && right_is_const));
282
283
148
        if (!left_is_const && !right_is_const) {
284
102
            auto col_res = ColumnUInt8::create();
285
286
102
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
102
            vec_res.resize(col_left->get_data().size());
288
102
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
102
                              typename PrimitiveTypeTraits<PT>::CppType,
290
102
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
102
                                                     vec_res);
292
293
102
            block.replace_by_position(result, std::move(col_res));
294
102
        } else if (!left_is_const && right_is_const) {
295
46
            auto col_res = ColumnUInt8::create();
296
297
46
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
46
            vec_res.resize(col_left->size());
299
46
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
46
                              typename PrimitiveTypeTraits<PT>::CppType,
301
46
                              Op<PT>>::vector_constant(col_left->get_data(),
302
46
                                                       col_right->get_element(0), vec_res);
303
304
46
            block.replace_by_position(result, std::move(col_res));
305
46
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
148
        return Status::OK();
318
148
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
31
                            const ColumnPtr& col_right_ptr) const {
275
31
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
31
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
31
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
31
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
31
        DCHECK(!(left_is_const && right_is_const));
282
283
31
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
15
            auto col_res = ColumnUInt8::create();
296
297
15
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
15
            vec_res.resize(col_left->size());
299
15
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
15
                              typename PrimitiveTypeTraits<PT>::CppType,
301
15
                              Op<PT>>::vector_constant(col_left->get_data(),
302
15
                                                       col_right->get_element(0), vec_res);
303
304
15
            block.replace_by_position(result, std::move(col_res));
305
15
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
31
        return Status::OK();
318
31
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
30
                            const ColumnPtr& col_right_ptr) const {
275
30
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
30
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
30
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
30
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
30
        DCHECK(!(left_is_const && right_is_const));
282
283
30
        if (!left_is_const && !right_is_const) {
284
24
            auto col_res = ColumnUInt8::create();
285
286
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
24
            vec_res.resize(col_left->get_data().size());
288
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
24
                              typename PrimitiveTypeTraits<PT>::CppType,
290
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
24
                                                     vec_res);
292
293
24
            block.replace_by_position(result, std::move(col_res));
294
24
        } else if (!left_is_const && right_is_const) {
295
6
            auto col_res = ColumnUInt8::create();
296
297
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6
            vec_res.resize(col_left->size());
299
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6
                                                       col_right->get_element(0), vec_res);
303
304
6
            block.replace_by_position(result, std::move(col_res));
305
6
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
30
        return Status::OK();
318
30
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
122
                            const ColumnPtr& col_right_ptr) const {
275
122
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
122
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
122
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
122
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
122
        DCHECK(!(left_is_const && right_is_const));
282
283
122
        if (!left_is_const && !right_is_const) {
284
118
            auto col_res = ColumnUInt8::create();
285
286
118
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
118
            vec_res.resize(col_left->get_data().size());
288
118
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
118
                              typename PrimitiveTypeTraits<PT>::CppType,
290
118
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
118
                                                     vec_res);
292
293
118
            block.replace_by_position(result, std::move(col_res));
294
118
        } else if (!left_is_const && right_is_const) {
295
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
122
        return Status::OK();
318
122
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
373
                            const ColumnPtr& col_right_ptr) const {
275
373
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
373
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
373
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
373
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
373
        DCHECK(!(left_is_const && right_is_const));
282
283
373
        if (!left_is_const && !right_is_const) {
284
109
            auto col_res = ColumnUInt8::create();
285
286
109
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
109
            vec_res.resize(col_left->get_data().size());
288
109
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
109
                              typename PrimitiveTypeTraits<PT>::CppType,
290
109
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
109
                                                     vec_res);
292
293
109
            block.replace_by_position(result, std::move(col_res));
294
264
        } else if (!left_is_const && right_is_const) {
295
264
            auto col_res = ColumnUInt8::create();
296
297
264
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
264
            vec_res.resize(col_left->size());
299
264
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
264
                              typename PrimitiveTypeTraits<PT>::CppType,
301
264
                              Op<PT>>::vector_constant(col_left->get_data(),
302
264
                                                       col_right->get_element(0), vec_res);
303
304
264
            block.replace_by_position(result, std::move(col_res));
305
264
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
373
        return Status::OK();
318
373
    }
_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
53
                            const ColumnPtr& col_right_ptr) const {
275
53
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
53
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
53
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
53
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
53
        DCHECK(!(left_is_const && right_is_const));
282
283
53
        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
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
53
        return Status::OK();
318
53
    }
_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
90
                            const ColumnPtr& col_right_ptr) const {
275
90
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
90
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
90
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
90
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
90
        DCHECK(!(left_is_const && right_is_const));
282
283
90
        if (!left_is_const && !right_is_const) {
284
54
            auto col_res = ColumnUInt8::create();
285
286
54
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
54
            vec_res.resize(col_left->get_data().size());
288
54
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
54
                              typename PrimitiveTypeTraits<PT>::CppType,
290
54
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
54
                                                     vec_res);
292
293
54
            block.replace_by_position(result, std::move(col_res));
294
54
        } else if (!left_is_const && right_is_const) {
295
36
            auto col_res = ColumnUInt8::create();
296
297
36
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
36
            vec_res.resize(col_left->size());
299
36
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
36
                              typename PrimitiveTypeTraits<PT>::CppType,
301
36
                              Op<PT>>::vector_constant(col_left->get_data(),
302
36
                                                       col_right->get_element(0), vec_res);
303
304
36
            block.replace_by_position(result, std::move(col_res));
305
36
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
90
        return Status::OK();
318
90
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4
                            const ColumnPtr& col_right_ptr) const {
275
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4
        DCHECK(!(left_is_const && right_is_const));
282
283
4
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
4
        } else if (!left_is_const && right_is_const) {
295
4
            auto col_res = ColumnUInt8::create();
296
297
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
4
            vec_res.resize(col_left->size());
299
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
4
                              typename PrimitiveTypeTraits<PT>::CppType,
301
4
                              Op<PT>>::vector_constant(col_left->get_data(),
302
4
                                                       col_right->get_element(0), vec_res);
303
304
4
            block.replace_by_position(result, std::move(col_res));
305
4
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
4
        return Status::OK();
318
4
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.38k
                            const ColumnPtr& col_right_ptr) const {
275
1.38k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.38k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.38k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.38k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.38k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.38k
        if (!left_is_const && !right_is_const) {
284
450
            auto col_res = ColumnUInt8::create();
285
286
450
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
450
            vec_res.resize(col_left->get_data().size());
288
450
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
450
                              typename PrimitiveTypeTraits<PT>::CppType,
290
450
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
450
                                                     vec_res);
292
293
450
            block.replace_by_position(result, std::move(col_res));
294
932
        } else if (!left_is_const && right_is_const) {
295
932
            auto col_res = ColumnUInt8::create();
296
297
932
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
932
            vec_res.resize(col_left->size());
299
932
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
932
                              typename PrimitiveTypeTraits<PT>::CppType,
301
932
                              Op<PT>>::vector_constant(col_left->get_data(),
302
932
                                                       col_right->get_element(0), vec_res);
303
304
932
            block.replace_by_position(result, std::move(col_res));
305
932
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.38k
        return Status::OK();
318
1.38k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.59k
                            const ColumnPtr& col_right_ptr) const {
275
1.59k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.59k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.59k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.59k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.59k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.59k
        if (!left_is_const && !right_is_const) {
284
552
            auto col_res = ColumnUInt8::create();
285
286
552
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
552
            vec_res.resize(col_left->get_data().size());
288
552
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
552
                              typename PrimitiveTypeTraits<PT>::CppType,
290
552
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
552
                                                     vec_res);
292
293
552
            block.replace_by_position(result, std::move(col_res));
294
1.03k
        } else if (!left_is_const && right_is_const) {
295
1.03k
            auto col_res = ColumnUInt8::create();
296
297
1.03k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.03k
            vec_res.resize(col_left->size());
299
1.03k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.03k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.03k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.03k
                                                       col_right->get_element(0), vec_res);
303
304
1.03k
            block.replace_by_position(result, std::move(col_res));
305
1.03k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.59k
        return Status::OK();
318
1.59k
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
48
                            const ColumnPtr& col_right_ptr) const {
275
48
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
48
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
48
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
48
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
48
        DCHECK(!(left_is_const && right_is_const));
282
283
48
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
28
        } else if (!left_is_const && right_is_const) {
295
28
            auto col_res = ColumnUInt8::create();
296
297
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
28
            vec_res.resize(col_left->size());
299
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
28
                              typename PrimitiveTypeTraits<PT>::CppType,
301
28
                              Op<PT>>::vector_constant(col_left->get_data(),
302
28
                                                       col_right->get_element(0), vec_res);
303
304
28
            block.replace_by_position(result, std::move(col_res));
305
28
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
48
        return Status::OK();
318
48
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
59
                            const ColumnPtr& col_right_ptr) const {
275
59
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
59
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
59
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
59
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
59
        DCHECK(!(left_is_const && right_is_const));
282
283
59
        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
39
        } else if (!left_is_const && right_is_const) {
295
39
            auto col_res = ColumnUInt8::create();
296
297
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
39
            vec_res.resize(col_left->size());
299
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
39
                              typename PrimitiveTypeTraits<PT>::CppType,
301
39
                              Op<PT>>::vector_constant(col_left->get_data(),
302
39
                                                       col_right->get_element(0), vec_res);
303
304
39
            block.replace_by_position(result, std::move(col_res));
305
39
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
59
        return Status::OK();
318
59
    }
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.14k
                            const ColumnPtr& col_right_ptr) const {
275
1.14k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.14k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.14k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.14k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.14k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.14k
        if (!left_is_const && !right_is_const) {
284
1.01k
            auto col_res = ColumnUInt8::create();
285
286
1.01k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.01k
            vec_res.resize(col_left->get_data().size());
288
1.01k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.01k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.01k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.01k
                                                     vec_res);
292
293
1.01k
            block.replace_by_position(result, std::move(col_res));
294
1.01k
        } else if (!left_is_const && right_is_const) {
295
130
            auto col_res = ColumnUInt8::create();
296
297
130
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
130
            vec_res.resize(col_left->size());
299
130
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
130
                              typename PrimitiveTypeTraits<PT>::CppType,
301
130
                              Op<PT>>::vector_constant(col_left->get_data(),
302
130
                                                       col_right->get_element(0), vec_res);
303
304
130
            block.replace_by_position(result, std::move(col_res));
305
130
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.14k
        return Status::OK();
318
1.14k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
91
                            const ColumnPtr& col_right_ptr) const {
275
91
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
91
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
91
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
91
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
91
        DCHECK(!(left_is_const && right_is_const));
282
283
91
        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
91
        } else if (!left_is_const && right_is_const) {
295
91
            auto col_res = ColumnUInt8::create();
296
297
91
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
91
            vec_res.resize(col_left->size());
299
91
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
91
                              typename PrimitiveTypeTraits<PT>::CppType,
301
91
                              Op<PT>>::vector_constant(col_left->get_data(),
302
91
                                                       col_right->get_element(0), vec_res);
303
304
91
            block.replace_by_position(result, std::move(col_res));
305
91
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
91
        return Status::OK();
318
91
    }
_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
631
                            const ColumnPtr& col_right_ptr) const {
275
631
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
631
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
631
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
631
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
631
        DCHECK(!(left_is_const && right_is_const));
282
283
631
        if (!left_is_const && !right_is_const) {
284
246
            auto col_res = ColumnUInt8::create();
285
286
246
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
246
            vec_res.resize(col_left->get_data().size());
288
246
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
246
                              typename PrimitiveTypeTraits<PT>::CppType,
290
246
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
246
                                                     vec_res);
292
293
246
            block.replace_by_position(result, std::move(col_res));
294
385
        } else if (!left_is_const && right_is_const) {
295
385
            auto col_res = ColumnUInt8::create();
296
297
385
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
385
            vec_res.resize(col_left->size());
299
385
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
385
                              typename PrimitiveTypeTraits<PT>::CppType,
301
385
                              Op<PT>>::vector_constant(col_left->get_data(),
302
385
                                                       col_right->get_element(0), vec_res);
303
304
385
            block.replace_by_position(result, std::move(col_res));
305
385
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
631
        return Status::OK();
318
631
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.01k
                            const ColumnPtr& col_right_ptr) const {
275
1.01k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.01k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.01k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.01k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.01k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.01k
        if (!left_is_const && !right_is_const) {
284
587
            auto col_res = ColumnUInt8::create();
285
286
587
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
587
            vec_res.resize(col_left->get_data().size());
288
587
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
587
                              typename PrimitiveTypeTraits<PT>::CppType,
290
587
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
587
                                                     vec_res);
292
293
587
            block.replace_by_position(result, std::move(col_res));
294
587
        } else if (!left_is_const && right_is_const) {
295
428
            auto col_res = ColumnUInt8::create();
296
297
428
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
428
            vec_res.resize(col_left->size());
299
428
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
428
                              typename PrimitiveTypeTraits<PT>::CppType,
301
428
                              Op<PT>>::vector_constant(col_left->get_data(),
302
428
                                                       col_right->get_element(0), vec_res);
303
304
428
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.01k
        return Status::OK();
318
1.01k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
8.82k
                            const ColumnPtr& col_right_ptr) const {
275
8.82k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
8.82k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
8.82k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
8.82k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
8.82k
        DCHECK(!(left_is_const && right_is_const));
282
283
8.82k
        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
7.04k
        } else if (!left_is_const && right_is_const) {
295
7.04k
            auto col_res = ColumnUInt8::create();
296
297
7.04k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
7.04k
            vec_res.resize(col_left->size());
299
7.04k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
7.04k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
7.04k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
7.04k
                                                       col_right->get_element(0), vec_res);
303
304
7.04k
            block.replace_by_position(result, std::move(col_res));
305
7.04k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
8.82k
        return Status::OK();
318
8.82k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
13.2k
                            const ColumnPtr& col_right_ptr) const {
275
13.2k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
13.2k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
13.2k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
13.2k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
13.2k
        DCHECK(!(left_is_const && right_is_const));
282
283
13.2k
        if (!left_is_const && !right_is_const) {
284
144
            auto col_res = ColumnUInt8::create();
285
286
144
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
144
            vec_res.resize(col_left->get_data().size());
288
144
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
144
                              typename PrimitiveTypeTraits<PT>::CppType,
290
144
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
144
                                                     vec_res);
292
293
144
            block.replace_by_position(result, std::move(col_res));
294
13.1k
        } else if (!left_is_const && right_is_const) {
295
13.1k
            auto col_res = ColumnUInt8::create();
296
297
13.1k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
13.1k
            vec_res.resize(col_left->size());
299
13.1k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
13.1k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
13.1k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
13.1k
                                                       col_right->get_element(0), vec_res);
303
304
13.1k
            block.replace_by_position(result, std::move(col_res));
305
13.1k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
13.2k
        return Status::OK();
318
13.2k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
223
                            const ColumnPtr& col_right_ptr) const {
275
223
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
223
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
223
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
223
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
223
        DCHECK(!(left_is_const && right_is_const));
282
283
223
        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
203
        } else if (!left_is_const && right_is_const) {
295
203
            auto col_res = ColumnUInt8::create();
296
297
203
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
203
            vec_res.resize(col_left->size());
299
203
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
203
                              typename PrimitiveTypeTraits<PT>::CppType,
301
203
                              Op<PT>>::vector_constant(col_left->get_data(),
302
203
                                                       col_right->get_element(0), vec_res);
303
304
203
            block.replace_by_position(result, std::move(col_res));
305
203
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
223
        return Status::OK();
318
223
    }
_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
228
                            const ColumnPtr& col_right_ptr) const {
275
228
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
228
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
228
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
228
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
228
        DCHECK(!(left_is_const && right_is_const));
282
283
228
        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
208
        } else if (!left_is_const && right_is_const) {
295
208
            auto col_res = ColumnUInt8::create();
296
297
208
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
208
            vec_res.resize(col_left->size());
299
208
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
208
                              typename PrimitiveTypeTraits<PT>::CppType,
301
208
                              Op<PT>>::vector_constant(col_left->get_data(),
302
208
                                                       col_right->get_element(0), vec_res);
303
304
208
            block.replace_by_position(result, std::move(col_res));
305
208
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
228
        return Status::OK();
318
228
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.45k
                            const ColumnPtr& col_right_ptr) const {
275
2.45k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.45k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.45k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.45k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.45k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.45k
        if (!left_is_const && !right_is_const) {
284
43
            auto col_res = ColumnUInt8::create();
285
286
43
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
43
            vec_res.resize(col_left->get_data().size());
288
43
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
43
                              typename PrimitiveTypeTraits<PT>::CppType,
290
43
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
43
                                                     vec_res);
292
293
43
            block.replace_by_position(result, std::move(col_res));
294
2.41k
        } else if (!left_is_const && right_is_const) {
295
2.41k
            auto col_res = ColumnUInt8::create();
296
297
2.41k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2.41k
            vec_res.resize(col_left->size());
299
2.41k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2.41k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2.41k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2.41k
                                                       col_right->get_element(0), vec_res);
303
304
2.41k
            block.replace_by_position(result, std::move(col_res));
305
2.41k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.45k
        return Status::OK();
318
2.45k
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
187
                            const ColumnPtr& col_right_ptr) const {
275
187
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
187
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
187
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
187
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
187
        DCHECK(!(left_is_const && right_is_const));
282
283
187
        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
187
        } else if (!left_is_const && right_is_const) {
295
187
            auto col_res = ColumnUInt8::create();
296
297
187
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
187
            vec_res.resize(col_left->size());
299
187
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
187
                              typename PrimitiveTypeTraits<PT>::CppType,
301
187
                              Op<PT>>::vector_constant(col_left->get_data(),
302
187
                                                       col_right->get_element(0), vec_res);
303
304
187
            block.replace_by_position(result, std::move(col_res));
305
187
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
187
        return Status::OK();
318
187
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.57k
                            const ColumnPtr& col_right_ptr) const {
275
1.57k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.57k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.57k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.57k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.57k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.57k
        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.56k
        } else if (!left_is_const && right_is_const) {
295
1.56k
            auto col_res = ColumnUInt8::create();
296
297
1.56k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.56k
            vec_res.resize(col_left->size());
299
1.56k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.56k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.56k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.56k
                                                       col_right->get_element(0), vec_res);
303
304
1.56k
            block.replace_by_position(result, std::move(col_res));
305
1.56k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.57k
        return Status::OK();
318
1.57k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
713
                            const ColumnPtr& col_right_ptr) const {
275
713
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
713
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
713
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
713
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
713
        DCHECK(!(left_is_const && right_is_const));
282
283
714
        if (!left_is_const && !right_is_const) {
284
6
            auto col_res = ColumnUInt8::create();
285
286
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
6
            vec_res.resize(col_left->get_data().size());
288
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
6
                              typename PrimitiveTypeTraits<PT>::CppType,
290
6
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
6
                                                     vec_res);
292
293
6
            block.replace_by_position(result, std::move(col_res));
294
708
        } else if (!left_is_const && right_is_const) {
295
708
            auto col_res = ColumnUInt8::create();
296
297
708
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
708
            vec_res.resize(col_left->size());
299
708
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
708
                              typename PrimitiveTypeTraits<PT>::CppType,
301
708
                              Op<PT>>::vector_constant(col_left->get_data(),
302
708
                                                       col_right->get_element(0), vec_res);
303
304
708
            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
713
        return Status::OK();
318
713
    }
_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
73
                            const ColumnPtr& col_right_ptr) const {
275
73
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
73
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
73
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
73
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
73
        DCHECK(!(left_is_const && right_is_const));
282
283
73
        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
73
        } else if (!left_is_const && right_is_const) {
295
73
            auto col_res = ColumnUInt8::create();
296
297
73
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
73
            vec_res.resize(col_left->size());
299
73
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
73
                              typename PrimitiveTypeTraits<PT>::CppType,
301
73
                              Op<PT>>::vector_constant(col_left->get_data(),
302
73
                                                       col_right->get_element(0), vec_res);
303
304
73
            block.replace_by_position(result, std::move(col_res));
305
73
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
73
        return Status::OK();
318
73
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
95
                            const ColumnPtr& col_right_ptr) const {
275
95
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
95
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
95
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
95
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
95
        DCHECK(!(left_is_const && right_is_const));
282
283
95
        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
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
95
        return Status::OK();
318
95
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
12.4k
                            const ColumnPtr& col_right_ptr) const {
275
12.4k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
12.4k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
12.4k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
12.4k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
12.4k
        DCHECK(!(left_is_const && right_is_const));
282
283
12.4k
        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
12.4k
        } else if (!left_is_const && right_is_const) {
295
12.4k
            auto col_res = ColumnUInt8::create();
296
297
12.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
12.4k
            vec_res.resize(col_left->size());
299
12.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
12.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
12.4k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
12.4k
                                                       col_right->get_element(0), vec_res);
303
304
12.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
12.4k
        return Status::OK();
318
12.4k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
470
                            const ColumnPtr& col_right_ptr) const {
275
470
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
470
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
470
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
470
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
470
        DCHECK(!(left_is_const && right_is_const));
282
283
470
        if (!left_is_const && !right_is_const) {
284
9
            auto col_res = ColumnUInt8::create();
285
286
9
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
9
            vec_res.resize(col_left->get_data().size());
288
9
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
9
                              typename PrimitiveTypeTraits<PT>::CppType,
290
9
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
9
                                                     vec_res);
292
293
9
            block.replace_by_position(result, std::move(col_res));
294
461
        } else if (!left_is_const && right_is_const) {
295
461
            auto col_res = ColumnUInt8::create();
296
297
461
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
461
            vec_res.resize(col_left->size());
299
461
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
461
                              typename PrimitiveTypeTraits<PT>::CppType,
301
461
                              Op<PT>>::vector_constant(col_left->get_data(),
302
461
                                                       col_right->get_element(0), vec_res);
303
304
461
            block.replace_by_position(result, std::move(col_res));
305
461
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
470
        return Status::OK();
318
470
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
43
                            const ColumnPtr& col_right_ptr) const {
275
43
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
43
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
43
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
43
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
43
        DCHECK(!(left_is_const && right_is_const));
282
283
43
        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
43
        } else if (!left_is_const && right_is_const) {
295
43
            auto col_res = ColumnUInt8::create();
296
297
43
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
43
            vec_res.resize(col_left->size());
299
43
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
43
                              typename PrimitiveTypeTraits<PT>::CppType,
301
43
                              Op<PT>>::vector_constant(col_left->get_data(),
302
43
                                                       col_right->get_element(0), vec_res);
303
304
43
            block.replace_by_position(result, std::move(col_res));
305
43
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
43
        return Status::OK();
318
43
    }
_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
168
                            const ColumnPtr& col_right_ptr) const {
275
168
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
168
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
168
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
168
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
168
        DCHECK(!(left_is_const && right_is_const));
282
283
168
        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
148
        } else if (!left_is_const && right_is_const) {
295
148
            auto col_res = ColumnUInt8::create();
296
297
148
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
148
            vec_res.resize(col_left->size());
299
148
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
148
                              typename PrimitiveTypeTraits<PT>::CppType,
301
148
                              Op<PT>>::vector_constant(col_left->get_data(),
302
148
                                                       col_right->get_element(0), vec_res);
303
304
148
            block.replace_by_position(result, std::move(col_res));
305
148
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
168
        return Status::OK();
318
168
    }
_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
81
                            const ColumnPtr& col_right_ptr) const {
275
81
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
81
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
81
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
81
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
81
        DCHECK(!(left_is_const && right_is_const));
282
283
81
        if (!left_is_const && !right_is_const) {
284
81
            auto col_res = ColumnUInt8::create();
285
286
81
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
81
            vec_res.resize(col_left->get_data().size());
288
81
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
81
                              typename PrimitiveTypeTraits<PT>::CppType,
290
81
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
81
                                                     vec_res);
292
293
81
            block.replace_by_position(result, std::move(col_res));
294
81
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
81
        return Status::OK();
318
81
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.27k
                            const ColumnPtr& col_right_ptr) const {
275
2.27k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.27k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.27k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.27k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.27k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.27k
        if (!left_is_const && !right_is_const) {
284
1.81k
            auto col_res = ColumnUInt8::create();
285
286
1.81k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.81k
            vec_res.resize(col_left->get_data().size());
288
1.81k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.81k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.81k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.81k
                                                     vec_res);
292
293
1.81k
            block.replace_by_position(result, std::move(col_res));
294
1.81k
        } else if (!left_is_const && right_is_const) {
295
459
            auto col_res = ColumnUInt8::create();
296
297
459
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
459
            vec_res.resize(col_left->size());
299
459
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
459
                              typename PrimitiveTypeTraits<PT>::CppType,
301
459
                              Op<PT>>::vector_constant(col_left->get_data(),
302
459
                                                       col_right->get_element(0), vec_res);
303
304
459
            block.replace_by_position(result, std::move(col_res));
305
459
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.27k
        return Status::OK();
318
2.27k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
561
                            const ColumnPtr& col_right_ptr) const {
275
561
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
561
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
561
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
561
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
561
        DCHECK(!(left_is_const && right_is_const));
282
283
561
        if (!left_is_const && !right_is_const) {
284
232
            auto col_res = ColumnUInt8::create();
285
286
232
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
232
            vec_res.resize(col_left->get_data().size());
288
232
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
232
                              typename PrimitiveTypeTraits<PT>::CppType,
290
232
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
232
                                                     vec_res);
292
293
232
            block.replace_by_position(result, std::move(col_res));
294
329
        } else if (!left_is_const && right_is_const) {
295
329
            auto col_res = ColumnUInt8::create();
296
297
329
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
329
            vec_res.resize(col_left->size());
299
329
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
329
                              typename PrimitiveTypeTraits<PT>::CppType,
301
329
                              Op<PT>>::vector_constant(col_left->get_data(),
302
329
                                                       col_right->get_element(0), vec_res);
303
304
329
            block.replace_by_position(result, std::move(col_res));
305
329
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
561
        return Status::OK();
318
561
    }
_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
853
                            const ColumnPtr& col_right_ptr) const {
275
853
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
853
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
853
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
853
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
853
        DCHECK(!(left_is_const && right_is_const));
282
283
853
        if (!left_is_const && !right_is_const) {
284
805
            auto col_res = ColumnUInt8::create();
285
286
805
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
805
            vec_res.resize(col_left->get_data().size());
288
805
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
805
                              typename PrimitiveTypeTraits<PT>::CppType,
290
805
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
805
                                                     vec_res);
292
293
805
            block.replace_by_position(result, std::move(col_res));
294
805
        } else if (!left_is_const && right_is_const) {
295
48
            auto col_res = ColumnUInt8::create();
296
297
48
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
48
            vec_res.resize(col_left->size());
299
48
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
48
                              typename PrimitiveTypeTraits<PT>::CppType,
301
48
                              Op<PT>>::vector_constant(col_left->get_data(),
302
48
                                                       col_right->get_element(0), vec_res);
303
304
48
            block.replace_by_position(result, std::move(col_res));
305
48
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
853
        return Status::OK();
318
853
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
243
                            const ColumnPtr& col_right_ptr) const {
275
243
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
243
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
243
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
243
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
243
        DCHECK(!(left_is_const && right_is_const));
282
283
243
        if (!left_is_const && !right_is_const) {
284
105
            auto col_res = ColumnUInt8::create();
285
286
105
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
105
            vec_res.resize(col_left->get_data().size());
288
105
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
105
                              typename PrimitiveTypeTraits<PT>::CppType,
290
105
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
105
                                                     vec_res);
292
293
105
            block.replace_by_position(result, std::move(col_res));
294
138
        } else if (!left_is_const && right_is_const) {
295
138
            auto col_res = ColumnUInt8::create();
296
297
138
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
138
            vec_res.resize(col_left->size());
299
138
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
138
                              typename PrimitiveTypeTraits<PT>::CppType,
301
138
                              Op<PT>>::vector_constant(col_left->get_data(),
302
138
                                                       col_right->get_element(0), vec_res);
303
304
138
            block.replace_by_position(result, std::move(col_res));
305
138
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
243
        return Status::OK();
318
243
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_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
174
            auto col_res = ColumnUInt8::create();
285
286
174
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
174
            vec_res.resize(col_left->get_data().size());
288
174
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
174
                              typename PrimitiveTypeTraits<PT>::CppType,
290
174
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
174
                                                     vec_res);
292
293
174
            block.replace_by_position(result, std::move(col_res));
294
1.87k
        } else if (!left_is_const && right_is_const) {
295
1.87k
            auto col_res = ColumnUInt8::create();
296
297
1.87k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.87k
            vec_res.resize(col_left->size());
299
1.87k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.87k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.87k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.87k
                                                       col_right->get_element(0), vec_res);
303
304
1.87k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2.04k
        return Status::OK();
318
2.04k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.64k
                            const ColumnPtr& col_right_ptr) const {
275
1.64k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.64k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.64k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.64k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.64k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.64k
        if (!left_is_const && !right_is_const) {
284
243
            auto col_res = ColumnUInt8::create();
285
286
243
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
243
            vec_res.resize(col_left->get_data().size());
288
243
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
243
                              typename PrimitiveTypeTraits<PT>::CppType,
290
243
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
243
                                                     vec_res);
292
293
243
            block.replace_by_position(result, std::move(col_res));
294
1.40k
        } else if (!left_is_const && right_is_const) {
295
1.40k
            auto col_res = ColumnUInt8::create();
296
297
1.40k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.40k
            vec_res.resize(col_left->size());
299
1.40k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.40k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.40k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.40k
                                                       col_right->get_element(0), vec_res);
303
304
1.40k
            block.replace_by_position(result, std::move(col_res));
305
1.40k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.64k
        return Status::OK();
318
1.64k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
184
                            const ColumnPtr& col_right_ptr) const {
275
184
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
184
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
184
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
184
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
184
        DCHECK(!(left_is_const && right_is_const));
282
283
184
        if (!left_is_const && !right_is_const) {
284
167
            auto col_res = ColumnUInt8::create();
285
286
167
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
167
            vec_res.resize(col_left->get_data().size());
288
167
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
167
                              typename PrimitiveTypeTraits<PT>::CppType,
290
167
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
167
                                                     vec_res);
292
293
167
            block.replace_by_position(result, std::move(col_res));
294
167
        } 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
184
        return Status::OK();
318
184
    }
_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
160
                            const ColumnPtr& col_right_ptr) const {
275
160
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
160
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
160
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
160
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
160
        DCHECK(!(left_is_const && right_is_const));
282
283
160
        if (!left_is_const && !right_is_const) {
284
134
            auto col_res = ColumnUInt8::create();
285
286
134
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
134
            vec_res.resize(col_left->get_data().size());
288
134
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
134
                              typename PrimitiveTypeTraits<PT>::CppType,
290
134
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
134
                                                     vec_res);
292
293
134
            block.replace_by_position(result, std::move(col_res));
294
134
        } else if (!left_is_const && right_is_const) {
295
26
            auto col_res = ColumnUInt8::create();
296
297
26
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
26
            vec_res.resize(col_left->size());
299
26
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
26
                              typename PrimitiveTypeTraits<PT>::CppType,
301
26
                              Op<PT>>::vector_constant(col_left->get_data(),
302
26
                                                       col_right->get_element(0), vec_res);
303
304
26
            block.replace_by_position(result, std::move(col_res));
305
26
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
160
        return Status::OK();
318
160
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
316
                            const ColumnPtr& col_right_ptr) const {
275
316
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
316
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
316
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
316
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
316
        DCHECK(!(left_is_const && right_is_const));
282
283
316
        if (!left_is_const && !right_is_const) {
284
128
            auto col_res = ColumnUInt8::create();
285
286
128
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
128
            vec_res.resize(col_left->get_data().size());
288
128
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
128
                              typename PrimitiveTypeTraits<PT>::CppType,
290
128
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
128
                                                     vec_res);
292
293
128
            block.replace_by_position(result, std::move(col_res));
294
188
        } else if (!left_is_const && right_is_const) {
295
188
            auto col_res = ColumnUInt8::create();
296
297
188
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
188
            vec_res.resize(col_left->size());
299
188
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
188
                              typename PrimitiveTypeTraits<PT>::CppType,
301
188
                              Op<PT>>::vector_constant(col_left->get_data(),
302
188
                                                       col_right->get_element(0), vec_res);
303
304
188
            block.replace_by_position(result, std::move(col_res));
305
188
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
316
        return Status::OK();
318
316
    }
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
186
                            const ColumnPtr& col_right_ptr) const {
275
186
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
186
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
186
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
186
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
186
        DCHECK(!(left_is_const && right_is_const));
282
283
186
        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
186
        } else if (!left_is_const && right_is_const) {
295
186
            auto col_res = ColumnUInt8::create();
296
297
186
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
186
            vec_res.resize(col_left->size());
299
186
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
186
                              typename PrimitiveTypeTraits<PT>::CppType,
301
186
                              Op<PT>>::vector_constant(col_left->get_data(),
302
186
                                                       col_right->get_element(0), vec_res);
303
304
186
            block.replace_by_position(result, std::move(col_res));
305
186
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
186
        return Status::OK();
318
186
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4.48k
                            const ColumnPtr& col_right_ptr) const {
275
4.48k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4.48k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4.48k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4.48k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4.48k
        DCHECK(!(left_is_const && right_is_const));
282
283
4.48k
        if (!left_is_const && !right_is_const) {
284
430
            auto col_res = ColumnUInt8::create();
285
286
430
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
430
            vec_res.resize(col_left->get_data().size());
288
430
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
430
                              typename PrimitiveTypeTraits<PT>::CppType,
290
430
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
430
                                                     vec_res);
292
293
430
            block.replace_by_position(result, std::move(col_res));
294
4.05k
        } else if (!left_is_const && right_is_const) {
295
4.05k
            auto col_res = ColumnUInt8::create();
296
297
4.05k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
4.05k
            vec_res.resize(col_left->size());
299
4.05k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
4.05k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
4.05k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
4.05k
                                                       col_right->get_element(0), vec_res);
303
304
4.05k
            block.replace_by_position(result, std::move(col_res));
305
4.05k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.48k
        return Status::OK();
318
4.48k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
377
                            const ColumnPtr& col_right_ptr) const {
275
377
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
377
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
377
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
377
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
377
        DCHECK(!(left_is_const && right_is_const));
282
283
377
        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
377
        } else if (!left_is_const && right_is_const) {
295
377
            auto col_res = ColumnUInt8::create();
296
297
377
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
377
            vec_res.resize(col_left->size());
299
377
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
377
                              typename PrimitiveTypeTraits<PT>::CppType,
301
377
                              Op<PT>>::vector_constant(col_left->get_data(),
302
377
                                                       col_right->get_element(0), vec_res);
303
304
377
            block.replace_by_position(result, std::move(col_res));
305
377
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
377
        return Status::OK();
318
377
    }
_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
100
                            const ColumnPtr& col_right_ptr) const {
275
100
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
100
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
100
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
100
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
100
        DCHECK(!(left_is_const && right_is_const));
282
283
100
        if (!left_is_const && !right_is_const) {
284
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
99
        } else if (!left_is_const && right_is_const) {
295
99
            auto col_res = ColumnUInt8::create();
296
297
99
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
99
            vec_res.resize(col_left->size());
299
99
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
99
                              typename PrimitiveTypeTraits<PT>::CppType,
301
99
                              Op<PT>>::vector_constant(col_left->get_data(),
302
99
                                                       col_right->get_element(0), vec_res);
303
304
99
            block.replace_by_position(result, std::move(col_res));
305
99
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
100
        return Status::OK();
318
100
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
141
                            const ColumnPtr& col_right_ptr) const {
275
141
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
141
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
141
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
141
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
141
        DCHECK(!(left_is_const && right_is_const));
282
283
141
        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
141
        } else if (!left_is_const && right_is_const) {
295
141
            auto col_res = ColumnUInt8::create();
296
297
141
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
141
            vec_res.resize(col_left->size());
299
141
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
141
                              typename PrimitiveTypeTraits<PT>::CppType,
301
141
                              Op<PT>>::vector_constant(col_left->get_data(),
302
141
                                                       col_right->get_element(0), vec_res);
303
304
141
            block.replace_by_position(result, std::move(col_res));
305
141
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
141
        return Status::OK();
318
141
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
12.5k
                            const ColumnPtr& col_right_ptr) const {
275
12.5k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
12.5k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
12.5k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
12.5k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
12.5k
        DCHECK(!(left_is_const && right_is_const));
282
283
12.5k
        if (!left_is_const && !right_is_const) {
284
50
            auto col_res = ColumnUInt8::create();
285
286
50
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
50
            vec_res.resize(col_left->get_data().size());
288
50
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
50
                              typename PrimitiveTypeTraits<PT>::CppType,
290
50
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
50
                                                     vec_res);
292
293
50
            block.replace_by_position(result, std::move(col_res));
294
12.4k
        } else if (!left_is_const && right_is_const) {
295
12.4k
            auto col_res = ColumnUInt8::create();
296
297
12.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
12.4k
            vec_res.resize(col_left->size());
299
12.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
12.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
12.4k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
12.4k
                                                       col_right->get_element(0), vec_res);
303
304
12.4k
            block.replace_by_position(result, std::move(col_res));
305
12.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
12.5k
        return Status::OK();
318
12.5k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
649
                            const ColumnPtr& col_right_ptr) const {
275
649
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
649
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
649
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
649
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
649
        DCHECK(!(left_is_const && right_is_const));
282
283
649
        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
610
        } else if (!left_is_const && right_is_const) {
295
610
            auto col_res = ColumnUInt8::create();
296
297
610
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
610
            vec_res.resize(col_left->size());
299
610
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
610
                              typename PrimitiveTypeTraits<PT>::CppType,
301
610
                              Op<PT>>::vector_constant(col_left->get_data(),
302
610
                                                       col_right->get_element(0), vec_res);
303
304
610
            block.replace_by_position(result, std::move(col_res));
305
610
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
649
        return Status::OK();
318
649
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
58
                            const ColumnPtr& col_right_ptr) const {
275
58
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
58
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
58
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
58
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
58
        DCHECK(!(left_is_const && right_is_const));
282
283
58
        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
58
        } else if (!left_is_const && right_is_const) {
295
58
            auto col_res = ColumnUInt8::create();
296
297
58
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
58
            vec_res.resize(col_left->size());
299
58
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
58
                              typename PrimitiveTypeTraits<PT>::CppType,
301
58
                              Op<PT>>::vector_constant(col_left->get_data(),
302
58
                                                       col_right->get_element(0), vec_res);
303
304
58
            block.replace_by_position(result, std::move(col_res));
305
58
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
58
        return Status::OK();
318
58
    }
_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
164
                            const ColumnPtr& col_right_ptr) const {
275
164
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
164
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
164
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
164
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
164
        DCHECK(!(left_is_const && right_is_const));
282
283
164
        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
144
        } else if (!left_is_const && right_is_const) {
295
144
            auto col_res = ColumnUInt8::create();
296
297
144
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
144
            vec_res.resize(col_left->size());
299
144
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
144
                              typename PrimitiveTypeTraits<PT>::CppType,
301
144
                              Op<PT>>::vector_constant(col_left->get_data(),
302
144
                                                       col_right->get_element(0), vec_res);
303
304
144
            block.replace_by_position(result, std::move(col_res));
305
144
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
164
        return Status::OK();
318
164
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
135
                            const ColumnPtr& col_right_ptr) const {
275
135
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
135
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
135
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
135
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
135
        DCHECK(!(left_is_const && right_is_const));
282
283
135
        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
115
        } else if (!left_is_const && right_is_const) {
295
115
            auto col_res = ColumnUInt8::create();
296
297
115
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
115
            vec_res.resize(col_left->size());
299
115
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
115
                              typename PrimitiveTypeTraits<PT>::CppType,
301
115
                              Op<PT>>::vector_constant(col_left->get_data(),
302
115
                                                       col_right->get_element(0), vec_res);
303
304
115
            block.replace_by_position(result, std::move(col_res));
305
115
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
135
        return Status::OK();
318
135
    }
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
14.8k
                           const ColumnWithTypeAndName& col_right) const {
322
14.9k
        auto call = [&](const auto& type) -> bool {
323
14.9k
            using DispatchType = std::decay_t<decltype(type)>;
324
14.9k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
14.9k
                    block, result, col_left, col_right);
326
14.9k
            return true;
327
14.9k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
241
        auto call = [&](const auto& type) -> bool {
323
241
            using DispatchType = std::decay_t<decltype(type)>;
324
241
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
241
                    block, result, col_left, col_right);
326
241
            return true;
327
241
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
282
        auto call = [&](const auto& type) -> bool {
323
282
            using DispatchType = std::decay_t<decltype(type)>;
324
282
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
282
                    block, result, col_left, col_right);
326
282
            return true;
327
282
        };
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.27k
        auto call = [&](const auto& type) -> bool {
323
1.27k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.27k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.27k
                    block, result, col_left, col_right);
326
1.27k
            return true;
327
1.27k
        };
_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
60
        auto call = [&](const auto& type) -> bool {
323
60
            using DispatchType = std::decay_t<decltype(type)>;
324
60
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
60
                    block, result, col_left, col_right);
326
60
            return true;
327
60
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
324
        auto call = [&](const auto& type) -> bool {
323
324
            using DispatchType = std::decay_t<decltype(type)>;
324
324
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
324
                    block, result, col_left, col_right);
326
324
            return true;
327
324
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
30
        auto call = [&](const auto& type) -> bool {
323
30
            using DispatchType = std::decay_t<decltype(type)>;
324
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
30
                    block, result, col_left, col_right);
326
30
            return true;
327
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
28
        auto call = [&](const auto& type) -> bool {
323
28
            using DispatchType = std::decay_t<decltype(type)>;
324
28
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
28
                    block, result, col_left, col_right);
326
28
            return true;
327
28
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
7.09k
        auto call = [&](const auto& type) -> bool {
323
7.09k
            using DispatchType = std::decay_t<decltype(type)>;
324
7.09k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
7.09k
                    block, result, col_left, col_right);
326
7.09k
            return true;
327
7.09k
        };
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.81k
        auto call = [&](const auto& type) -> bool {
323
1.81k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.81k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.81k
                    block, result, col_left, col_right);
326
1.81k
            return true;
327
1.81k
        };
_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
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_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
330
        auto call = [&](const auto& type) -> bool {
323
330
            using DispatchType = std::decay_t<decltype(type)>;
324
330
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
330
                    block, result, col_left, col_right);
326
330
            return true;
327
330
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
56
        auto call = [&](const auto& type) -> bool {
323
56
            using DispatchType = std::decay_t<decltype(type)>;
324
56
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
56
                    block, result, col_left, col_right);
326
56
            return true;
327
56
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
27
        auto call = [&](const auto& type) -> bool {
323
27
            using DispatchType = std::decay_t<decltype(type)>;
324
27
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
27
                    block, result, col_left, col_right);
326
27
            return true;
327
27
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
206
        auto call = [&](const auto& type) -> bool {
323
206
            using DispatchType = std::decay_t<decltype(type)>;
324
206
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
206
                    block, result, col_left, col_right);
326
206
            return true;
327
206
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
240
        auto call = [&](const auto& type) -> bool {
323
240
            using DispatchType = std::decay_t<decltype(type)>;
324
240
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
240
                    block, result, col_left, col_right);
326
240
            return true;
327
240
        };
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
446
        auto call = [&](const auto& type) -> bool {
323
446
            using DispatchType = std::decay_t<decltype(type)>;
324
446
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
446
                    block, result, col_left, col_right);
326
446
            return true;
327
446
        };
_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
7
        auto call = [&](const auto& type) -> bool {
323
7
            using DispatchType = std::decay_t<decltype(type)>;
324
7
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
7
                    block, result, col_left, col_right);
326
7
            return true;
327
7
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
1.61k
        auto call = [&](const auto& type) -> bool {
323
1.61k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.61k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.61k
                    block, result, col_left, col_right);
326
1.61k
            return true;
327
1.61k
        };
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
764
        auto call = [&](const auto& type) -> bool {
323
764
            using DispatchType = std::decay_t<decltype(type)>;
324
764
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
764
                    block, result, col_left, col_right);
326
764
            return true;
327
764
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
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
        };
328
329
14.8k
        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
14.8k
        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
14.8k
        return Status::OK();
340
14.8k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.82k
                           const ColumnWithTypeAndName& col_right) const {
322
1.82k
        auto call = [&](const auto& type) -> bool {
323
1.82k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.82k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.82k
                    block, result, col_left, col_right);
326
1.82k
            return true;
327
1.82k
        };
328
329
1.82k
        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.82k
        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.82k
        return Status::OK();
340
1.82k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
414
                           const ColumnWithTypeAndName& col_right) const {
322
414
        auto call = [&](const auto& type) -> bool {
323
414
            using DispatchType = std::decay_t<decltype(type)>;
324
414
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
414
                    block, result, col_left, col_right);
326
414
            return true;
327
414
        };
328
329
414
        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
414
        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
414
        return Status::OK();
340
414
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
8.93k
                           const ColumnWithTypeAndName& col_right) const {
322
8.93k
        auto call = [&](const auto& type) -> bool {
323
8.93k
            using DispatchType = std::decay_t<decltype(type)>;
324
8.93k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
8.93k
                    block, result, col_left, col_right);
326
8.93k
            return true;
327
8.93k
        };
328
329
8.93k
        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
8.93k
        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
8.93k
        return Status::OK();
340
8.93k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
421
                           const ColumnWithTypeAndName& col_right) const {
322
421
        auto call = [&](const auto& type) -> bool {
323
421
            using DispatchType = std::decay_t<decltype(type)>;
324
421
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
421
                    block, result, col_left, col_right);
326
421
            return true;
327
421
        };
328
329
421
        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
421
        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
421
        return Status::OK();
340
421
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
892
                           const ColumnWithTypeAndName& col_right) const {
322
892
        auto call = [&](const auto& type) -> bool {
323
892
            using DispatchType = std::decay_t<decltype(type)>;
324
892
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
892
                    block, result, col_left, col_right);
326
892
            return true;
327
892
        };
328
329
892
        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
892
        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
892
        return Status::OK();
340
892
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
2.41k
                           const ColumnWithTypeAndName& col_right) const {
322
2.41k
        auto call = [&](const auto& type) -> bool {
323
2.41k
            using DispatchType = std::decay_t<decltype(type)>;
324
2.41k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
2.41k
                    block, result, col_left, col_right);
326
2.41k
            return true;
327
2.41k
        };
328
329
2.41k
        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
2.41k
        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
2.41k
        return Status::OK();
340
2.41k
    }
341
342
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
343
25.0k
                          const IColumn* c1) const {
344
25.0k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
25.0k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
25.0k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
25.0k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
25.0k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
25.0k
        DCHECK(!(c0_const && c1_const));
353
25.0k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
25.0k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
25.0k
        ColumnString::Offset c0_const_size = 0;
356
25.0k
        ColumnString::Offset c1_const_size = 0;
357
358
25.0k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
25.0k
        if (c1_const) {
372
24.0k
            const ColumnString* c1_const_string =
373
24.0k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
24.0k
            if (c1_const_string) {
376
24.0k
                c1_const_chars = &c1_const_string->get_chars();
377
24.0k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
24.0k
        }
383
384
25.0k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
25.0k
        auto c_res = ColumnUInt8::create();
387
25.0k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
25.0k
        vec_res.resize(c0->size());
389
390
25.0k
        if (c0_string && c1_string) {
391
962
            StringImpl::string_vector_string_vector(
392
962
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
962
                    c1_string->get_offsets(), vec_res);
394
24.0k
        } else if (c0_string && c1_const) {
395
24.0k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
24.0k
                                               *c1_const_chars, c1_const_size, vec_res);
397
24.0k
        } 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
25.0k
        block.replace_by_position(result, std::move(c_res));
406
25.0k
        return Status::OK();
407
25.0k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
21.2k
                          const IColumn* c1) const {
344
21.2k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
21.2k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
21.2k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
21.2k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
21.2k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
21.2k
        DCHECK(!(c0_const && c1_const));
353
21.2k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
21.2k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
21.2k
        ColumnString::Offset c0_const_size = 0;
356
21.2k
        ColumnString::Offset c1_const_size = 0;
357
358
21.2k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
21.2k
        if (c1_const) {
372
20.7k
            const ColumnString* c1_const_string =
373
20.7k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
20.7k
            if (c1_const_string) {
376
20.7k
                c1_const_chars = &c1_const_string->get_chars();
377
20.7k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
20.7k
        }
383
384
21.2k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
21.2k
        auto c_res = ColumnUInt8::create();
387
21.2k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
21.2k
        vec_res.resize(c0->size());
389
390
21.2k
        if (c0_string && c1_string) {
391
506
            StringImpl::string_vector_string_vector(
392
506
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
506
                    c1_string->get_offsets(), vec_res);
394
20.7k
        } else if (c0_string && c1_const) {
395
20.7k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
20.7k
                                               *c1_const_chars, c1_const_size, vec_res);
397
20.7k
        } 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
21.2k
        block.replace_by_position(result, std::move(c_res));
406
21.2k
        return Status::OK();
407
21.2k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
1.33k
                          const IColumn* c1) const {
344
1.33k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
1.33k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
1.33k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
1.33k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
1.33k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
1.33k
        DCHECK(!(c0_const && c1_const));
353
1.33k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
1.33k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
1.33k
        ColumnString::Offset c0_const_size = 0;
356
1.33k
        ColumnString::Offset c1_const_size = 0;
357
358
1.33k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
1.33k
        if (c1_const) {
372
1.33k
            const ColumnString* c1_const_string =
373
1.33k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
1.33k
            if (c1_const_string) {
376
1.33k
                c1_const_chars = &c1_const_string->get_chars();
377
1.33k
                c1_const_size = c1_const_string->get_offsets()[0];
378
1.33k
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
1.33k
        }
383
384
1.33k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
1.33k
        auto c_res = ColumnUInt8::create();
387
1.33k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
1.33k
        vec_res.resize(c0->size());
389
390
1.33k
        if (c0_string && c1_string) {
391
1
            StringImpl::string_vector_string_vector(
392
1
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
1
                    c1_string->get_offsets(), vec_res);
394
1.33k
        } else if (c0_string && c1_const) {
395
1.33k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
1.33k
                                               *c1_const_chars, c1_const_size, vec_res);
397
1.33k
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
1.33k
        block.replace_by_position(result, std::move(c_res));
406
1.33k
        return Status::OK();
407
1.33k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
212
                          const IColumn* c1) const {
344
212
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
212
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
212
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
212
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
212
        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
212
        DCHECK(!(c0_const && c1_const));
353
212
        const ColumnString::Chars* c0_const_chars = nullptr;
354
212
        const ColumnString::Chars* c1_const_chars = nullptr;
355
212
        ColumnString::Offset c0_const_size = 0;
356
212
        ColumnString::Offset c1_const_size = 0;
357
358
212
        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
212
        if (c1_const) {
372
210
            const ColumnString* c1_const_string =
373
210
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
210
            if (c1_const_string) {
376
210
                c1_const_chars = &c1_const_string->get_chars();
377
210
                c1_const_size = c1_const_string->get_offsets()[0];
378
210
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
210
        }
383
384
212
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
212
        auto c_res = ColumnUInt8::create();
387
212
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
212
        vec_res.resize(c0->size());
389
390
212
        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
210
        } else if (c0_string && c1_const) {
395
210
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
210
                                               *c1_const_chars, c1_const_size, vec_res);
397
210
        } 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
212
        block.replace_by_position(result, std::move(c_res));
406
212
        return Status::OK();
407
212
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
663
                          const IColumn* c1) const {
344
663
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
663
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
663
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
663
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
663
        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
663
        DCHECK(!(c0_const && c1_const));
353
663
        const ColumnString::Chars* c0_const_chars = nullptr;
354
663
        const ColumnString::Chars* c1_const_chars = nullptr;
355
663
        ColumnString::Offset c0_const_size = 0;
356
663
        ColumnString::Offset c1_const_size = 0;
357
358
663
        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
663
        if (c1_const) {
372
617
            const ColumnString* c1_const_string =
373
617
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
617
            if (c1_const_string) {
376
617
                c1_const_chars = &c1_const_string->get_chars();
377
617
                c1_const_size = c1_const_string->get_offsets()[0];
378
617
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
617
        }
383
384
663
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
663
        auto c_res = ColumnUInt8::create();
387
663
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
663
        vec_res.resize(c0->size());
389
390
663
        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
617
        } else if (c0_string && c1_const) {
395
617
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
617
                                               *c1_const_chars, c1_const_size, vec_res);
397
617
        } 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
663
        block.replace_by_position(result, std::move(c_res));
406
663
        return Status::OK();
407
663
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
670
                          const IColumn* c1) const {
344
670
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
670
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
670
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
670
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
670
        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
670
        DCHECK(!(c0_const && c1_const));
353
670
        const ColumnString::Chars* c0_const_chars = nullptr;
354
670
        const ColumnString::Chars* c1_const_chars = nullptr;
355
670
        ColumnString::Offset c0_const_size = 0;
356
670
        ColumnString::Offset c1_const_size = 0;
357
358
670
        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
670
        if (c1_const) {
372
263
            const ColumnString* c1_const_string =
373
263
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
263
            if (c1_const_string) {
376
263
                c1_const_chars = &c1_const_string->get_chars();
377
263
                c1_const_size = c1_const_string->get_offsets()[0];
378
263
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
263
        }
383
384
670
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
670
        auto c_res = ColumnUInt8::create();
387
670
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
670
        vec_res.resize(c0->size());
389
390
670
        if (c0_string && c1_string) {
391
407
            StringImpl::string_vector_string_vector(
392
407
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
407
                    c1_string->get_offsets(), vec_res);
394
407
        } else if (c0_string && c1_const) {
395
263
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
263
                                               *c1_const_chars, c1_const_size, vec_res);
397
263
        } 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
670
        block.replace_by_position(result, std::move(c_res));
406
670
        return Status::OK();
407
670
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
875
                          const IColumn* c1) const {
344
875
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
875
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
875
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
875
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
875
        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
875
        DCHECK(!(c0_const && c1_const));
353
875
        const ColumnString::Chars* c0_const_chars = nullptr;
354
875
        const ColumnString::Chars* c1_const_chars = nullptr;
355
875
        ColumnString::Offset c0_const_size = 0;
356
875
        ColumnString::Offset c1_const_size = 0;
357
358
875
        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
875
        if (c1_const) {
372
875
            const ColumnString* c1_const_string =
373
875
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
875
            if (c1_const_string) {
376
875
                c1_const_chars = &c1_const_string->get_chars();
377
875
                c1_const_size = c1_const_string->get_offsets()[0];
378
875
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
875
        }
383
384
875
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
875
        auto c_res = ColumnUInt8::create();
387
875
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
875
        vec_res.resize(c0->size());
389
390
875
        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
875
        } else if (c0_string && c1_const) {
395
875
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
875
                                               *c1_const_chars, c1_const_size, vec_res);
397
875
        } 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
875
        block.replace_by_position(result, std::move(c_res));
406
875
        return Status::OK();
407
875
    }
408
409
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
410
140
                                         const IColumn* c1) const {
411
140
        bool c0_const = is_column_const(*c0);
412
140
        bool c1_const = is_column_const(*c1);
413
414
140
        DCHECK(!(c0_const && c1_const));
415
416
140
        auto c_res = ColumnUInt8::create();
417
140
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
140
        vec_res.resize(c0->size());
419
420
140
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
140
        } else if (c1_const) {
423
131
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
131
        } else {
425
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
9
        }
427
428
140
        block.replace_by_position(result, std::move(c_res));
429
140
    }
_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
42
                                         const IColumn* c1) const {
411
42
        bool c0_const = is_column_const(*c0);
412
42
        bool c1_const = is_column_const(*c1);
413
414
42
        DCHECK(!(c0_const && c1_const));
415
416
42
        auto c_res = ColumnUInt8::create();
417
42
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
42
        vec_res.resize(c0->size());
419
420
42
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
42
        } else if (c1_const) {
423
41
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
41
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
42
        block.replace_by_position(result, std::move(c_res));
429
42
    }
_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
53
                                         const IColumn* c1) const {
411
53
        bool c0_const = is_column_const(*c0);
412
53
        bool c1_const = is_column_const(*c1);
413
414
53
        DCHECK(!(c0_const && c1_const));
415
416
53
        auto c_res = ColumnUInt8::create();
417
53
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
53
        vec_res.resize(c0->size());
419
420
53
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
53
        } else if (c1_const) {
423
53
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
53
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
53
        block.replace_by_position(result, std::move(c_res));
429
53
    }
430
431
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
432
140
                           const ColumnWithTypeAndName& c1) const {
433
140
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
140
        return Status::OK();
435
140
    }
_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
42
                           const ColumnWithTypeAndName& c1) const {
433
42
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
42
        return Status::OK();
435
42
    }
_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
53
                           const ColumnWithTypeAndName& c1) const {
433
53
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
53
        return Status::OK();
435
53
    }
436
437
public:
438
216
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
63
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
35
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
438
35
    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
475k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
422k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
1.32k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
440
6.27k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
20.8k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
440
3.14k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
21.3k
    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
475k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
475k
        return std::make_shared<DataTypeUInt8>();
445
475k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
422k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
422k
        return std::make_shared<DataTypeUInt8>();
445
422k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
1.32k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
1.32k
        return std::make_shared<DataTypeUInt8>();
445
1.32k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
6.27k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
6.27k
        return std::make_shared<DataTypeUInt8>();
445
6.27k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
20.8k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
20.8k
        return std::make_shared<DataTypeUInt8>();
445
20.8k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
3.14k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
3.14k
        return std::make_shared<DataTypeUInt8>();
445
3.14k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
21.3k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
21.3k
        return std::make_shared<DataTypeUInt8>();
445
21.3k
    }
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
439
            return Status::OK();
463
439
        }
464
1.30k
        segment_v2::InvertedIndexQueryType query_type;
465
1.30k
        std::string_view name_view(name);
466
1.30k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
852
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
852
        } else if (name_view == NameLess::name) {
469
110
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
342
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
244
        } else if (name_view == NameGreater::name) {
473
114
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
135
        } else if (name_view == NameGreaterOrEquals::name) {
475
135
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
1.30k
        if (segment_v2::is_range_query(query_type) &&
481
1.30k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
171
            return Status::OK();
484
171
        }
485
1.13k
        Field param_value;
486
1.13k
        arguments[0].column->get(0, param_value);
487
1.13k
        if (param_value.is_null()) {
488
1
            return Status::OK();
489
1
        }
490
1.13k
        auto param_type = arguments[0].type->get_primitive_type();
491
1.13k
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
1.13k
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
1.13k
                param_type, &param_value, query_param));
494
495
1.13k
        segment_v2::InvertedIndexParam param;
496
1.13k
        param.column_name = data_type_with_name.first;
497
1.13k
        param.column_type = data_type_with_name.second;
498
1.13k
        param.query_value = query_param->get_value();
499
1.13k
        param.query_type = query_type;
500
1.13k
        param.num_rows = num_rows;
501
1.13k
        param.roaring = std::make_shared<roaring::Roaring>();
502
1.13k
        param.analyzer_ctx = analyzer_ctx;
503
1.13k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
988
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
988
        if (iter->has_null()) {
506
988
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
988
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
988
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
988
        }
510
988
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
988
        bitmap_result = result;
512
988
        bitmap_result.mask_out_null();
513
514
988
        if (name_view == NameNotEquals::name) {
515
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
988
        return Status::OK();
521
988
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
861
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
861
        DCHECK(arguments.size() == 1);
454
861
        DCHECK(data_type_with_names.size() == 1);
455
861
        DCHECK(iterators.size() == 1);
456
861
        auto* iter = iterators[0];
457
861
        auto data_type_with_name = data_type_with_names[0];
458
861
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
861
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
81
            return Status::OK();
463
81
        }
464
780
        segment_v2::InvertedIndexQueryType query_type;
465
780
        std::string_view name_view(name);
466
782
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
782
            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
782
        if (segment_v2::is_range_query(query_type) &&
481
782
            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
782
        Field param_value;
486
782
        arguments[0].column->get(0, param_value);
487
782
        if (param_value.is_null()) {
488
1
            return Status::OK();
489
1
        }
490
781
        auto param_type = arguments[0].type->get_primitive_type();
491
781
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
781
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
781
                param_type, &param_value, query_param));
494
495
780
        segment_v2::InvertedIndexParam param;
496
780
        param.column_name = data_type_with_name.first;
497
780
        param.column_type = data_type_with_name.second;
498
780
        param.query_value = query_param->get_value();
499
780
        param.query_type = query_type;
500
780
        param.num_rows = num_rows;
501
780
        param.roaring = std::make_shared<roaring::Roaring>();
502
780
        param.analyzer_ctx = analyzer_ctx;
503
780
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
739
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
739
        if (iter->has_null()) {
506
739
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
739
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
739
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
739
        }
510
739
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
739
        bitmap_result = result;
512
739
        bitmap_result.mask_out_null();
513
514
739
        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
739
        return Status::OK();
521
739
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
78
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
78
        DCHECK(arguments.size() == 1);
454
78
        DCHECK(data_type_with_names.size() == 1);
455
78
        DCHECK(iterators.size() == 1);
456
78
        auto* iter = iterators[0];
457
78
        auto data_type_with_name = data_type_with_names[0];
458
78
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
78
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
8
            return Status::OK();
463
8
        }
464
70
        segment_v2::InvertedIndexQueryType query_type;
465
70
        std::string_view name_view(name);
466
70
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
70
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
70
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
0
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
0
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
0
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
70
        if (segment_v2::is_range_query(query_type) &&
481
70
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
0
            return Status::OK();
484
0
        }
485
70
        Field param_value;
486
70
        arguments[0].column->get(0, param_value);
487
70
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
70
        auto param_type = arguments[0].type->get_primitive_type();
491
70
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
70
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
70
                param_type, &param_value, query_param));
494
495
70
        segment_v2::InvertedIndexParam param;
496
70
        param.column_name = data_type_with_name.first;
497
70
        param.column_type = data_type_with_name.second;
498
70
        param.query_value = query_param->get_value();
499
70
        param.query_type = query_type;
500
70
        param.num_rows = num_rows;
501
70
        param.roaring = std::make_shared<roaring::Roaring>();
502
70
        param.analyzer_ctx = analyzer_ctx;
503
70
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
63
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
63
        if (iter->has_null()) {
506
62
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
62
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
62
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
62
        }
510
63
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
63
        bitmap_result = result;
512
63
        bitmap_result.mask_out_null();
513
514
63
        if (name_view == NameNotEquals::name) {
515
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
176
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
176
        DCHECK(arguments.size() == 1);
454
176
        DCHECK(data_type_with_names.size() == 1);
455
176
        DCHECK(iterators.size() == 1);
456
176
        auto* iter = iterators[0];
457
176
        auto data_type_with_name = data_type_with_names[0];
458
176
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
176
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
62
            return Status::OK();
463
62
        }
464
114
        segment_v2::InvertedIndexQueryType query_type;
465
114
        std::string_view name_view(name);
466
114
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
114
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
114
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
114
        } else if (name_view == NameGreater::name) {
473
114
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
114
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
114
        if (segment_v2::is_range_query(query_type) &&
481
114
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
28
            return Status::OK();
484
28
        }
485
86
        Field param_value;
486
86
        arguments[0].column->get(0, param_value);
487
86
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
86
        auto param_type = arguments[0].type->get_primitive_type();
491
86
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
86
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
86
                param_type, &param_value, query_param));
494
495
86
        segment_v2::InvertedIndexParam param;
496
86
        param.column_name = data_type_with_name.first;
497
86
        param.column_type = data_type_with_name.second;
498
86
        param.query_value = query_param->get_value();
499
86
        param.query_type = query_type;
500
86
        param.num_rows = num_rows;
501
86
        param.roaring = std::make_shared<roaring::Roaring>();
502
86
        param.analyzer_ctx = analyzer_ctx;
503
86
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
67
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
67
        if (iter->has_null()) {
506
67
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
67
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
67
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
67
        }
510
67
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
67
        bitmap_result = result;
512
67
        bitmap_result.mask_out_null();
513
514
67
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
67
        return Status::OK();
521
67
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
249
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
249
        DCHECK(arguments.size() == 1);
454
249
        DCHECK(data_type_with_names.size() == 1);
455
249
        DCHECK(iterators.size() == 1);
456
249
        auto* iter = iterators[0];
457
249
        auto data_type_with_name = data_type_with_names[0];
458
249
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
249
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
114
            return Status::OK();
463
114
        }
464
135
        segment_v2::InvertedIndexQueryType query_type;
465
135
        std::string_view name_view(name);
466
135
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
135
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
135
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
135
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
135
        } else if (name_view == NameGreaterOrEquals::name) {
475
135
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
135
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
135
        if (segment_v2::is_range_query(query_type) &&
481
135
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
59
            return Status::OK();
484
59
        }
485
76
        Field param_value;
486
76
        arguments[0].column->get(0, param_value);
487
76
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
76
        auto param_type = arguments[0].type->get_primitive_type();
491
76
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
76
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
76
                param_type, &param_value, query_param));
494
495
76
        segment_v2::InvertedIndexParam param;
496
76
        param.column_name = data_type_with_name.first;
497
76
        param.column_type = data_type_with_name.second;
498
76
        param.query_value = query_param->get_value();
499
76
        param.query_type = query_type;
500
76
        param.num_rows = num_rows;
501
76
        param.roaring = std::make_shared<roaring::Roaring>();
502
76
        param.analyzer_ctx = analyzer_ctx;
503
76
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
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
169
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
169
        DCHECK(arguments.size() == 1);
454
169
        DCHECK(data_type_with_names.size() == 1);
455
169
        DCHECK(iterators.size() == 1);
456
169
        auto* iter = iterators[0];
457
169
        auto data_type_with_name = data_type_with_names[0];
458
169
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
169
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
61
            return Status::OK();
463
61
        }
464
108
        segment_v2::InvertedIndexQueryType query_type;
465
108
        std::string_view name_view(name);
466
110
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
110
        } else if (name_view == NameLess::name) {
469
110
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
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
110
        if (segment_v2::is_range_query(query_type) &&
481
110
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
26
            return Status::OK();
484
26
        }
485
84
        Field param_value;
486
84
        arguments[0].column->get(0, param_value);
487
84
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
84
        auto param_type = arguments[0].type->get_primitive_type();
491
84
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
84
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
84
                param_type, &param_value, query_param));
494
495
84
        segment_v2::InvertedIndexParam param;
496
84
        param.column_name = data_type_with_name.first;
497
84
        param.column_type = data_type_with_name.second;
498
84
        param.query_value = query_param->get_value();
499
84
        param.query_type = query_type;
500
84
        param.num_rows = num_rows;
501
84
        param.roaring = std::make_shared<roaring::Roaring>();
502
84
        param.analyzer_ctx = analyzer_ctx;
503
84
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
65
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
67
        if (iter->has_null()) {
506
67
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
67
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
67
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
67
        }
510
65
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
65
        bitmap_result = result;
512
65
        bitmap_result.mask_out_null();
513
514
65
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
65
        return Status::OK();
521
65
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
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
98
        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
20
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
20
        if (iter->has_null()) {
506
19
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
19
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
19
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
19
        }
510
20
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
20
        bitmap_result = result;
512
20
        bitmap_result.mask_out_null();
513
514
20
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
20
        return Status::OK();
521
20
    }
522
523
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
524
141k
                        uint32_t result, size_t input_rows_count) const override {
525
141k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
141k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
141k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
141k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
141k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
141k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
141k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
141k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
141k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
141k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
242k
        auto can_compare = [](PrimitiveType t) -> bool {
563
242k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
242k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
76.4k
        auto can_compare = [](PrimitiveType t) -> bool {
563
76.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
76.4k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
8.21k
        auto can_compare = [](PrimitiveType t) -> bool {
563
8.21k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
8.21k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
64.9k
        auto can_compare = [](PrimitiveType t) -> bool {
563
64.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
64.9k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
33.0k
        auto can_compare = [](PrimitiveType t) -> bool {
563
33.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
33.0k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
18.3k
        auto can_compare = [](PrimitiveType t) -> bool {
563
18.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
18.3k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
41.0k
        auto can_compare = [](PrimitiveType t) -> bool {
563
41.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
41.0k
        };
565
566
141k
        if (can_compare(left_type->get_primitive_type()) &&
567
141k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
101k
            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
101k
        }
575
576
141k
        auto compare_type = left_type->get_primitive_type();
577
141k
        switch (compare_type) {
578
2.07k
        case TYPE_BOOLEAN:
579
2.07k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
10.7k
        case TYPE_DATEV2:
581
10.7k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
2.44k
        case TYPE_DATETIMEV2:
583
2.44k
            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.75k
        case TYPE_TINYINT:
587
5.75k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
2.11k
        case TYPE_SMALLINT:
589
2.11k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
44.3k
        case TYPE_INT:
591
44.3k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
28.3k
        case TYPE_BIGINT:
593
28.3k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
656
        case TYPE_LARGEINT:
595
656
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
70
        case TYPE_IPV4:
597
70
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
48
        case TYPE_IPV6:
599
48
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
890
        case TYPE_FLOAT:
601
890
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
3.50k
        case TYPE_DOUBLE:
603
3.50k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
4
        case TYPE_TIMEV2:
605
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
606
0
        case TYPE_DECIMALV2:
607
490
        case TYPE_DECIMAL32:
608
10.1k
        case TYPE_DECIMAL64:
609
14.7k
        case TYPE_DECIMAL128I:
610
14.9k
        case TYPE_DECIMAL256:
611
14.9k
            return execute_decimal(block, result, col_with_type_and_name_left,
612
14.9k
                                   col_with_type_and_name_right);
613
1.62k
        case TYPE_CHAR:
614
10.4k
        case TYPE_VARCHAR:
615
25.0k
        case TYPE_STRING:
616
25.0k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
617
140
        default:
618
140
            return execute_generic(block, result, col_with_type_and_name_left,
619
140
                                   col_with_type_and_name_right);
620
141k
        }
621
0
        return Status::OK();
622
141k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
49.7k
                        uint32_t result, size_t input_rows_count) const override {
525
49.7k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
49.7k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
49.7k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
49.7k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
49.7k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
49.7k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
49.7k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
49.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
49.7k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
49.8k
            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
49.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
49.7k
        };
565
566
49.7k
        if (can_compare(left_type->get_primitive_type()) &&
567
49.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
26.6k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
26.6k
        }
575
576
49.7k
        auto compare_type = left_type->get_primitive_type();
577
49.7k
        switch (compare_type) {
578
1.61k
        case TYPE_BOOLEAN:
579
1.61k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.21k
        case TYPE_DATEV2:
581
1.21k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
702
        case TYPE_DATETIMEV2:
583
702
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
4.00k
        case TYPE_TINYINT:
587
4.00k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
615
        case TYPE_SMALLINT:
589
615
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
7.16k
        case TYPE_INT:
591
7.16k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
10.6k
        case TYPE_BIGINT:
593
10.6k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
148
        case TYPE_LARGEINT:
595
148
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
31
        case TYPE_IPV4:
597
31
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
30
        case TYPE_IPV6:
599
30
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
122
        case TYPE_FLOAT:
601
122
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
373
        case TYPE_DOUBLE:
603
373
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
4
        case TYPE_TIMEV2:
605
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
606
0
        case TYPE_DECIMALV2:
607
241
        case TYPE_DECIMAL32:
608
523
        case TYPE_DECIMAL64:
609
1.79k
        case TYPE_DECIMAL128I:
610
1.82k
        case TYPE_DECIMAL256:
611
1.82k
            return execute_decimal(block, result, col_with_type_and_name_left,
612
1.82k
                                   col_with_type_and_name_right);
613
1.27k
        case TYPE_CHAR:
614
9.04k
        case TYPE_VARCHAR:
615
21.2k
        case TYPE_STRING:
616
21.2k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
617
17
        default:
618
17
            return execute_generic(block, result, col_with_type_and_name_left,
619
17
                                   col_with_type_and_name_right);
620
49.7k
        }
621
0
        return Status::OK();
622
49.7k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
4.99k
                        uint32_t result, size_t input_rows_count) const override {
525
4.99k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
4.99k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
4.99k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
4.99k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
4.99k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
4.99k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
4.99k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
4.99k
        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
4.99k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
4.99k
            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
4.99k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
4.99k
        };
565
566
4.99k
        if (can_compare(left_type->get_primitive_type()) &&
567
4.99k
            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
3.23k
            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
3.23k
        }
575
576
4.99k
        auto compare_type = left_type->get_primitive_type();
577
4.99k
        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
53
        case TYPE_DATEV2:
581
53
            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
90
        case TYPE_TINYINT:
587
90
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
4
        case TYPE_SMALLINT:
589
4
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
1.38k
        case TYPE_INT:
591
1.38k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
1.59k
        case TYPE_BIGINT:
593
1.59k
            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
48
        case TYPE_FLOAT:
601
48
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
59
        case TYPE_DOUBLE:
603
59
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIMEV2:
605
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
606
0
        case TYPE_DECIMALV2:
607
0
        case TYPE_DECIMAL32:
608
60
        case TYPE_DECIMAL64:
609
384
        case TYPE_DECIMAL128I:
610
414
        case TYPE_DECIMAL256:
611
414
            return execute_decimal(block, result, col_with_type_and_name_left,
612
414
                                   col_with_type_and_name_right);
613
9
        case TYPE_CHAR:
614
271
        case TYPE_VARCHAR:
615
1.33k
        case TYPE_STRING:
616
1.33k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
617
8
        default:
618
8
            return execute_generic(block, result, col_with_type_and_name_left,
619
8
                                   col_with_type_and_name_right);
620
4.99k
        }
621
0
        return Status::OK();
622
4.99k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
37.0k
                        uint32_t result, size_t input_rows_count) const override {
525
37.0k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
37.0k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
37.0k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
37.0k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
37.0k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
37.0k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
37.0k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
37.0k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
37.0k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
37.0k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          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
37.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
37.0k
        };
565
566
37.0k
        if (can_compare(left_type->get_primitive_type()) &&
567
37.0k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
27.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
27.8k
        }
575
576
37.0k
        auto compare_type = left_type->get_primitive_type();
577
37.0k
        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.14k
        case TYPE_DATEV2:
581
1.14k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
91
        case TYPE_DATETIMEV2:
583
91
            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
631
        case TYPE_TINYINT:
587
631
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
1.01k
        case TYPE_SMALLINT:
589
1.01k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
8.82k
        case TYPE_INT:
591
8.82k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
13.2k
        case TYPE_BIGINT:
593
13.2k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
223
        case TYPE_LARGEINT:
595
223
            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
228
        case TYPE_FLOAT:
601
228
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
2.45k
        case TYPE_DOUBLE:
603
2.45k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIMEV2:
605
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
606
0
        case TYPE_DECIMALV2:
607
28
        case TYPE_DECIMAL32:
608
7.12k
        case TYPE_DECIMAL64:
609
8.93k
        case TYPE_DECIMAL128I:
610
8.93k
        case TYPE_DECIMAL256:
611
8.93k
            return execute_decimal(block, result, col_with_type_and_name_left,
612
8.93k
                                   col_with_type_and_name_right);
613
21
        case TYPE_CHAR:
614
82
        case TYPE_VARCHAR:
615
212
        case TYPE_STRING:
616
212
            return execute_string(block, result, col_left_untyped, col_right_untyped);
617
9
        default:
618
9
            return execute_generic(block, result, col_with_type_and_name_left,
619
9
                                   col_with_type_and_name_right);
620
37.0k
        }
621
0
        return Status::OK();
622
37.0k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
17.0k
                        uint32_t result, size_t input_rows_count) const override {
525
17.0k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
17.0k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
17.0k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
17.0k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
17.0k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
17.0k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
17.0k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
17.0k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
17.0k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
17.0k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
17.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
17.0k
        };
565
566
17.0k
        if (can_compare(left_type->get_primitive_type()) &&
567
17.0k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
15.9k
            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.9k
        }
575
576
17.0k
        auto compare_type = left_type->get_primitive_type();
577
17.0k
        switch (compare_type) {
578
187
        case TYPE_BOOLEAN:
579
187
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.57k
        case TYPE_DATEV2:
581
1.57k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
713
        case TYPE_DATETIMEV2:
583
713
            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
73
        case TYPE_TINYINT:
587
73
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
95
        case TYPE_SMALLINT:
589
95
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
12.4k
        case TYPE_INT:
591
12.4k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
470
        case TYPE_BIGINT:
593
470
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
43
        case TYPE_LARGEINT:
595
43
            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
168
        case TYPE_FLOAT:
601
168
            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_TIMEV2:
605
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
606
0
        case TYPE_DECIMALV2:
607
8
        case TYPE_DECIMAL32:
608
338
        case TYPE_DECIMAL64:
609
394
        case TYPE_DECIMAL128I:
610
421
        case TYPE_DECIMAL256:
611
421
            return execute_decimal(block, result, col_with_type_and_name_left,
612
421
                                   col_with_type_and_name_right);
613
43
        case TYPE_CHAR:
614
260
        case TYPE_VARCHAR:
615
663
        case TYPE_STRING:
616
663
            return execute_string(block, result, col_left_untyped, col_right_untyped);
617
42
        default:
618
42
            return execute_generic(block, result, col_with_type_and_name_left,
619
42
                                   col_with_type_and_name_right);
620
17.0k
        }
621
0
        return Status::OK();
622
17.0k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
9.97k
                        uint32_t result, size_t input_rows_count) const override {
525
9.97k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
9.97k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
9.97k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
9.97k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
9.97k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
9.97k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
9.97k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
9.97k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
9.97k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
9.97k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
9.97k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
9.97k
        };
565
566
9.97k
        if (can_compare(left_type->get_primitive_type()) &&
567
9.97k
            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
8.39k
            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
8.39k
        }
575
576
9.97k
        auto compare_type = left_type->get_primitive_type();
577
9.97k
        switch (compare_type) {
578
81
        case TYPE_BOOLEAN:
579
81
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
2.27k
        case TYPE_DATEV2:
581
2.27k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
561
        case TYPE_DATETIMEV2:
583
561
            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
853
        case TYPE_TINYINT:
587
853
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
243
        case TYPE_SMALLINT:
589
243
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
2.04k
        case TYPE_INT:
591
2.04k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
1.64k
        case TYPE_BIGINT:
593
1.64k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
184
        case TYPE_LARGEINT:
595
184
            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
160
        case TYPE_FLOAT:
601
160
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
316
        case TYPE_DOUBLE:
603
316
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIMEV2:
605
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
606
0
        case TYPE_DECIMALV2:
607
206
        case TYPE_DECIMAL32:
608
446
        case TYPE_DECIMAL64:
609
891
        case TYPE_DECIMAL128I:
610
892
        case TYPE_DECIMAL256:
611
892
            return execute_decimal(block, result, col_with_type_and_name_left,
612
892
                                   col_with_type_and_name_right);
613
192
        case TYPE_CHAR:
614
383
        case TYPE_VARCHAR:
615
670
        case TYPE_STRING:
616
670
            return execute_string(block, result, col_left_untyped, col_right_untyped);
617
11
        default:
618
11
            return execute_generic(block, result, col_with_type_and_name_left,
619
11
                                   col_with_type_and_name_right);
620
9.97k
        }
621
0
        return Status::OK();
622
9.97k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
22.1k
                        uint32_t result, size_t input_rows_count) const override {
525
22.1k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
22.1k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
22.1k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
22.1k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
22.1k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
22.1k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
22.1k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
22.1k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
22.1k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
22.1k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
22.1k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
22.1k
        };
565
566
22.1k
        if (can_compare(left_type->get_primitive_type()) &&
567
22.1k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
18.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
18.8k
        }
575
576
22.1k
        auto compare_type = left_type->get_primitive_type();
577
22.1k
        switch (compare_type) {
578
186
        case TYPE_BOOLEAN:
579
186
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
4.48k
        case TYPE_DATEV2:
581
4.48k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
377
        case TYPE_DATETIMEV2:
583
377
            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
100
        case TYPE_TINYINT:
587
100
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
140
        case TYPE_SMALLINT:
589
140
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
12.5k
        case TYPE_INT:
591
12.5k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
649
        case TYPE_BIGINT:
593
649
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
58
        case TYPE_LARGEINT:
595
58
            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
164
        case TYPE_FLOAT:
601
164
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
135
        case TYPE_DOUBLE:
603
135
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIMEV2:
605
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
606
0
        case TYPE_DECIMALV2:
607
7
        case TYPE_DECIMAL32:
608
1.62k
        case TYPE_DECIMAL64:
609
2.39k
        case TYPE_DECIMAL128I:
610
2.41k
        case TYPE_DECIMAL256:
611
2.41k
            return execute_decimal(block, result, col_with_type_and_name_left,
612
2.41k
                                   col_with_type_and_name_right);
613
84
        case TYPE_CHAR:
614
455
        case TYPE_VARCHAR:
615
875
        case TYPE_STRING:
616
875
            return execute_string(block, result, col_left_untyped, col_right_untyped);
617
53
        default:
618
53
            return execute_generic(block, result, col_with_type_and_name_left,
619
53
                                   col_with_type_and_name_right);
620
22.1k
        }
621
0
        return Status::OK();
622
22.1k
    }
623
};
624
625
#include "common/compile_check_end.h"
626
} // namespace doris