Coverage Report

Created: 2026-03-30 13:00

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
11.7k
                                        PaddedPODArray<UInt8>& c) {
66
11.7k
        size_t size = a.size();
67
11.7k
        const A* __restrict a_pos = a.data();
68
11.7k
        const B* __restrict b_pos = b.data();
69
11.7k
        UInt8* __restrict c_pos = c.data();
70
11.7k
        const A* __restrict a_end = a_pos + size;
71
72
11.9M
        while (a_pos < a_end) {
73
11.9M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
11.9M
            ++a_pos;
75
11.9M
            ++b_pos;
76
11.9M
            ++c_pos;
77
11.9M
        }
78
11.7k
    }
_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
343
                                        PaddedPODArray<UInt8>& c) {
66
343
        size_t size = a.size();
67
343
        const A* __restrict a_pos = a.data();
68
343
        const B* __restrict b_pos = b.data();
69
343
        UInt8* __restrict c_pos = c.data();
70
343
        const A* __restrict a_end = a_pos + size;
71
72
1.54k
        while (a_pos < a_end) {
73
1.19k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.19k
            ++a_pos;
75
1.19k
            ++b_pos;
76
1.19k
            ++c_pos;
77
1.19k
        }
78
343
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
278
                                        PaddedPODArray<UInt8>& c) {
66
278
        size_t size = a.size();
67
278
        const A* __restrict a_pos = a.data();
68
278
        const B* __restrict b_pos = b.data();
69
278
        UInt8* __restrict c_pos = c.data();
70
278
        const A* __restrict a_end = a_pos + size;
71
72
578
        while (a_pos < a_end) {
73
300
            *c_pos = Op::apply(*a_pos, *b_pos);
74
300
            ++a_pos;
75
300
            ++b_pos;
76
300
            ++c_pos;
77
300
        }
78
278
    }
_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
717
                                        PaddedPODArray<UInt8>& c) {
66
717
        size_t size = a.size();
67
717
        const A* __restrict a_pos = a.data();
68
717
        const B* __restrict b_pos = b.data();
69
717
        UInt8* __restrict c_pos = c.data();
70
717
        const A* __restrict a_end = a_pos + size;
71
72
5.51k
        while (a_pos < a_end) {
73
4.79k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.79k
            ++a_pos;
75
4.79k
            ++b_pos;
76
4.79k
            ++c_pos;
77
4.79k
        }
78
717
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
124
                                        PaddedPODArray<UInt8>& c) {
66
124
        size_t size = a.size();
67
124
        const A* __restrict a_pos = a.data();
68
124
        const B* __restrict b_pos = b.data();
69
124
        UInt8* __restrict c_pos = c.data();
70
124
        const A* __restrict a_end = a_pos + size;
71
72
556
        while (a_pos < a_end) {
73
432
            *c_pos = Op::apply(*a_pos, *b_pos);
74
432
            ++a_pos;
75
432
            ++b_pos;
76
432
            ++c_pos;
77
432
        }
78
124
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
397
                                        PaddedPODArray<UInt8>& c) {
66
397
        size_t size = a.size();
67
397
        const A* __restrict a_pos = a.data();
68
397
        const B* __restrict b_pos = b.data();
69
397
        UInt8* __restrict c_pos = c.data();
70
397
        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
397
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
202
                                        PaddedPODArray<UInt8>& c) {
66
202
        size_t size = a.size();
67
202
        const A* __restrict a_pos = a.data();
68
202
        const B* __restrict b_pos = b.data();
69
202
        UInt8* __restrict c_pos = c.data();
70
202
        const A* __restrict a_end = a_pos + size;
71
72
11.7k
        while (a_pos < a_end) {
73
11.5k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
11.5k
            ++a_pos;
75
11.5k
            ++b_pos;
76
11.5k
            ++c_pos;
77
11.5k
        }
78
202
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
92
                                        PaddedPODArray<UInt8>& c) {
66
92
        size_t size = a.size();
67
92
        const A* __restrict a_pos = a.data();
68
92
        const B* __restrict b_pos = b.data();
69
92
        UInt8* __restrict c_pos = c.data();
70
92
        const A* __restrict a_end = a_pos + size;
71
72
208
        while (a_pos < a_end) {
73
116
            *c_pos = Op::apply(*a_pos, *b_pos);
74
116
            ++a_pos;
75
116
            ++b_pos;
76
116
            ++c_pos;
77
116
        }
78
92
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
24
                                        PaddedPODArray<UInt8>& c) {
66
24
        size_t size = a.size();
67
24
        const A* __restrict a_pos = a.data();
68
24
        const B* __restrict b_pos = b.data();
69
24
        UInt8* __restrict c_pos = c.data();
70
24
        const A* __restrict a_end = a_pos + size;
71
72
48
        while (a_pos < a_end) {
73
24
            *c_pos = Op::apply(*a_pos, *b_pos);
74
24
            ++a_pos;
75
24
            ++b_pos;
76
24
            ++c_pos;
77
24
        }
78
24
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
104
                                        PaddedPODArray<UInt8>& c) {
66
104
        size_t size = a.size();
67
104
        const A* __restrict a_pos = a.data();
68
104
        const B* __restrict b_pos = b.data();
69
104
        UInt8* __restrict c_pos = c.data();
70
104
        const A* __restrict a_end = a_pos + size;
71
72
227
        while (a_pos < a_end) {
73
123
            *c_pos = Op::apply(*a_pos, *b_pos);
74
123
            ++a_pos;
75
123
            ++b_pos;
76
123
            ++c_pos;
77
123
        }
78
104
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
105
                                        PaddedPODArray<UInt8>& c) {
66
105
        size_t size = a.size();
67
105
        const A* __restrict a_pos = a.data();
68
105
        const B* __restrict b_pos = b.data();
69
105
        UInt8* __restrict c_pos = c.data();
70
105
        const A* __restrict a_end = a_pos + size;
71
72
231
        while (a_pos < a_end) {
73
126
            *c_pos = Op::apply(*a_pos, *b_pos);
74
126
            ++a_pos;
75
126
            ++b_pos;
76
126
            ++c_pos;
77
126
        }
78
105
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
4
                                        PaddedPODArray<UInt8>& c) {
66
4
        size_t size = a.size();
67
4
        const A* __restrict a_pos = a.data();
68
4
        const B* __restrict b_pos = b.data();
69
4
        UInt8* __restrict c_pos = c.data();
70
4
        const A* __restrict a_end = a_pos + size;
71
72
8
        while (a_pos < a_end) {
73
4
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4
            ++a_pos;
75
4
            ++b_pos;
76
4
            ++c_pos;
77
4
        }
78
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
39
                                        PaddedPODArray<UInt8>& c) {
66
39
        size_t size = a.size();
67
39
        const A* __restrict a_pos = a.data();
68
39
        const B* __restrict b_pos = b.data();
69
39
        UInt8* __restrict c_pos = c.data();
70
39
        const A* __restrict a_end = a_pos + size;
71
72
108
        while (a_pos < a_end) {
73
69
            *c_pos = Op::apply(*a_pos, *b_pos);
74
69
            ++a_pos;
75
69
            ++b_pos;
76
69
            ++c_pos;
77
69
        }
78
39
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
64
                                        PaddedPODArray<UInt8>& c) {
66
64
        size_t size = a.size();
67
64
        const A* __restrict a_pos = a.data();
68
64
        const B* __restrict b_pos = b.data();
69
64
        UInt8* __restrict c_pos = c.data();
70
64
        const A* __restrict a_end = a_pos + size;
71
72
288
        while (a_pos < a_end) {
73
224
            *c_pos = Op::apply(*a_pos, *b_pos);
74
224
            ++a_pos;
75
224
            ++b_pos;
76
224
            ++c_pos;
77
224
        }
78
64
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
641
                                        PaddedPODArray<UInt8>& c) {
66
641
        size_t size = a.size();
67
641
        const A* __restrict a_pos = a.data();
68
641
        const B* __restrict b_pos = b.data();
69
641
        UInt8* __restrict c_pos = c.data();
70
641
        const A* __restrict a_end = a_pos + size;
71
72
296k
        while (a_pos < a_end) {
73
295k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
295k
            ++a_pos;
75
295k
            ++b_pos;
76
295k
            ++c_pos;
77
295k
        }
78
641
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
537
                                        PaddedPODArray<UInt8>& c) {
66
537
        size_t size = a.size();
67
537
        const A* __restrict a_pos = a.data();
68
537
        const B* __restrict b_pos = b.data();
69
537
        UInt8* __restrict c_pos = c.data();
70
537
        const A* __restrict a_end = a_pos + size;
71
72
40.5k
        while (a_pos < a_end) {
73
39.9k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39.9k
            ++a_pos;
75
39.9k
            ++b_pos;
76
39.9k
            ++c_pos;
77
39.9k
        }
78
537
    }
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
974
                                        PaddedPODArray<UInt8>& c) {
66
974
        size_t size = a.size();
67
974
        const A* __restrict a_pos = a.data();
68
974
        const B* __restrict b_pos = b.data();
69
974
        UInt8* __restrict c_pos = c.data();
70
974
        const A* __restrict a_end = a_pos + size;
71
72
3.69M
        while (a_pos < a_end) {
73
3.69M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.69M
            ++a_pos;
75
3.69M
            ++b_pos;
76
3.69M
            ++c_pos;
77
3.69M
        }
78
974
    }
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
237
                                        PaddedPODArray<UInt8>& c) {
66
237
        size_t size = a.size();
67
237
        const A* __restrict a_pos = a.data();
68
237
        const B* __restrict b_pos = b.data();
69
237
        UInt8* __restrict c_pos = c.data();
70
237
        const A* __restrict a_end = a_pos + size;
71
72
2.18k
        while (a_pos < a_end) {
73
1.94k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.94k
            ++a_pos;
75
1.94k
            ++b_pos;
76
1.94k
            ++c_pos;
77
1.94k
        }
78
237
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
504
                                        PaddedPODArray<UInt8>& c) {
66
504
        size_t size = a.size();
67
504
        const A* __restrict a_pos = a.data();
68
504
        const B* __restrict b_pos = b.data();
69
504
        UInt8* __restrict c_pos = c.data();
70
504
        const A* __restrict a_end = a_pos + size;
71
72
4.59k
        while (a_pos < a_end) {
73
4.08k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.08k
            ++a_pos;
75
4.08k
            ++b_pos;
76
4.08k
            ++c_pos;
77
4.08k
        }
78
504
    }
_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
103
                                        PaddedPODArray<UInt8>& c) {
66
103
        size_t size = a.size();
67
103
        const A* __restrict a_pos = a.data();
68
103
        const B* __restrict b_pos = b.data();
69
103
        UInt8* __restrict c_pos = c.data();
70
103
        const A* __restrict a_end = a_pos + size;
71
72
1.65k
        while (a_pos < a_end) {
73
1.55k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.55k
            ++a_pos;
75
1.55k
            ++b_pos;
76
1.55k
            ++c_pos;
77
1.55k
        }
78
103
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
41
                                        PaddedPODArray<UInt8>& c) {
66
41
        size_t size = a.size();
67
41
        const A* __restrict a_pos = a.data();
68
41
        const B* __restrict b_pos = b.data();
69
41
        UInt8* __restrict c_pos = c.data();
70
41
        const A* __restrict a_end = a_pos + size;
71
72
195
        while (a_pos < a_end) {
73
154
            *c_pos = Op::apply(*a_pos, *b_pos);
74
154
            ++a_pos;
75
154
            ++b_pos;
76
154
            ++c_pos;
77
154
        }
78
41
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
37
                                        PaddedPODArray<UInt8>& c) {
66
37
        size_t size = a.size();
67
37
        const A* __restrict a_pos = a.data();
68
37
        const B* __restrict b_pos = b.data();
69
37
        UInt8* __restrict c_pos = c.data();
70
37
        const A* __restrict a_end = a_pos + size;
71
72
135
        while (a_pos < a_end) {
73
98
            *c_pos = Op::apply(*a_pos, *b_pos);
74
98
            ++a_pos;
75
98
            ++b_pos;
76
98
            ++c_pos;
77
98
        }
78
37
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
7
                                        PaddedPODArray<UInt8>& c) {
66
7
        size_t size = a.size();
67
7
        const A* __restrict a_pos = a.data();
68
7
        const B* __restrict b_pos = b.data();
69
7
        UInt8* __restrict c_pos = c.data();
70
7
        const A* __restrict a_end = a_pos + size;
71
72
38
        while (a_pos < a_end) {
73
31
            *c_pos = Op::apply(*a_pos, *b_pos);
74
31
            ++a_pos;
75
31
            ++b_pos;
76
31
            ++c_pos;
77
31
        }
78
7
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
10
                                        PaddedPODArray<UInt8>& c) {
66
10
        size_t size = a.size();
67
10
        const A* __restrict a_pos = a.data();
68
10
        const B* __restrict b_pos = b.data();
69
10
        UInt8* __restrict c_pos = c.data();
70
10
        const A* __restrict a_end = a_pos + size;
71
72
101
        while (a_pos < a_end) {
73
91
            *c_pos = Op::apply(*a_pos, *b_pos);
74
91
            ++a_pos;
75
91
            ++b_pos;
76
91
            ++c_pos;
77
91
        }
78
10
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
5
                                        PaddedPODArray<UInt8>& c) {
66
5
        size_t size = a.size();
67
5
        const A* __restrict a_pos = a.data();
68
5
        const B* __restrict b_pos = b.data();
69
5
        UInt8* __restrict c_pos = c.data();
70
5
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
7
            *c_pos = Op::apply(*a_pos, *b_pos);
74
7
            ++a_pos;
75
7
            ++b_pos;
76
7
            ++c_pos;
77
7
        }
78
5
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
17
                                        PaddedPODArray<UInt8>& c) {
66
17
        size_t size = a.size();
67
17
        const A* __restrict a_pos = a.data();
68
17
        const B* __restrict b_pos = b.data();
69
17
        UInt8* __restrict c_pos = c.data();
70
17
        const A* __restrict a_end = a_pos + size;
71
72
126
        while (a_pos < a_end) {
73
109
            *c_pos = Op::apply(*a_pos, *b_pos);
74
109
            ++a_pos;
75
109
            ++b_pos;
76
109
            ++c_pos;
77
109
        }
78
17
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
75
                                        PaddedPODArray<UInt8>& c) {
66
75
        size_t size = a.size();
67
75
        const A* __restrict a_pos = a.data();
68
75
        const B* __restrict b_pos = b.data();
69
75
        UInt8* __restrict c_pos = c.data();
70
75
        const A* __restrict a_end = a_pos + size;
71
72
181
        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
75
    }
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.71k
                                        PaddedPODArray<UInt8>& c) {
66
1.71k
        size_t size = a.size();
67
1.71k
        const A* __restrict a_pos = a.data();
68
1.71k
        const B* __restrict b_pos = b.data();
69
1.71k
        UInt8* __restrict c_pos = c.data();
70
1.71k
        const A* __restrict a_end = a_pos + size;
71
72
2.38M
        while (a_pos < a_end) {
73
2.37M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.37M
            ++a_pos;
75
2.37M
            ++b_pos;
76
2.37M
            ++c_pos;
77
2.37M
        }
78
1.71k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
214
                                        PaddedPODArray<UInt8>& c) {
66
214
        size_t size = a.size();
67
214
        const A* __restrict a_pos = a.data();
68
214
        const B* __restrict b_pos = b.data();
69
214
        UInt8* __restrict c_pos = c.data();
70
214
        const A* __restrict a_end = a_pos + size;
71
72
428
        while (a_pos < a_end) {
73
214
            *c_pos = Op::apply(*a_pos, *b_pos);
74
214
            ++a_pos;
75
214
            ++b_pos;
76
214
            ++c_pos;
77
214
        }
78
214
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
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
622
                                        PaddedPODArray<UInt8>& c) {
66
622
        size_t size = a.size();
67
622
        const A* __restrict a_pos = a.data();
68
622
        const B* __restrict b_pos = b.data();
69
622
        UInt8* __restrict c_pos = c.data();
70
622
        const A* __restrict a_end = a_pos + size;
71
72
4.86k
        while (a_pos < a_end) {
73
4.23k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.23k
            ++a_pos;
75
4.23k
            ++b_pos;
76
4.23k
            ++c_pos;
77
4.23k
        }
78
622
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
102
                                        PaddedPODArray<UInt8>& c) {
66
102
        size_t size = a.size();
67
102
        const A* __restrict a_pos = a.data();
68
102
        const B* __restrict b_pos = b.data();
69
102
        UInt8* __restrict c_pos = c.data();
70
102
        const A* __restrict a_end = a_pos + size;
71
72
206
        while (a_pos < a_end) {
73
104
            *c_pos = Op::apply(*a_pos, *b_pos);
74
104
            ++a_pos;
75
104
            ++b_pos;
76
104
            ++c_pos;
77
104
        }
78
102
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
117
                                        PaddedPODArray<UInt8>& c) {
66
117
        size_t size = a.size();
67
117
        const A* __restrict a_pos = a.data();
68
117
        const B* __restrict b_pos = b.data();
69
117
        UInt8* __restrict c_pos = c.data();
70
117
        const A* __restrict a_end = a_pos + size;
71
72
766
        while (a_pos < a_end) {
73
649
            *c_pos = Op::apply(*a_pos, *b_pos);
74
649
            ++a_pos;
75
649
            ++b_pos;
76
649
            ++c_pos;
77
649
        }
78
117
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
189
                                        PaddedPODArray<UInt8>& c) {
66
189
        size_t size = a.size();
67
189
        const A* __restrict a_pos = a.data();
68
189
        const B* __restrict b_pos = b.data();
69
189
        UInt8* __restrict c_pos = c.data();
70
189
        const A* __restrict a_end = a_pos + size;
71
72
5.68k
        while (a_pos < a_end) {
73
5.49k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.49k
            ++a_pos;
75
5.49k
            ++b_pos;
76
5.49k
            ++c_pos;
77
5.49k
        }
78
189
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
173
                                        PaddedPODArray<UInt8>& c) {
66
173
        size_t size = a.size();
67
173
        const A* __restrict a_pos = a.data();
68
173
        const B* __restrict b_pos = b.data();
69
173
        UInt8* __restrict c_pos = c.data();
70
173
        const A* __restrict a_end = a_pos + size;
71
72
495
        while (a_pos < a_end) {
73
322
            *c_pos = Op::apply(*a_pos, *b_pos);
74
322
            ++a_pos;
75
322
            ++b_pos;
76
322
            ++c_pos;
77
322
        }
78
173
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
118
                                        PaddedPODArray<UInt8>& c) {
66
118
        size_t size = a.size();
67
118
        const A* __restrict a_pos = a.data();
68
118
        const B* __restrict b_pos = b.data();
69
118
        UInt8* __restrict c_pos = c.data();
70
118
        const A* __restrict a_end = a_pos + size;
71
72
255
        while (a_pos < a_end) {
73
137
            *c_pos = Op::apply(*a_pos, *b_pos);
74
137
            ++a_pos;
75
137
            ++b_pos;
76
137
            ++c_pos;
77
137
        }
78
118
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
141
                                        PaddedPODArray<UInt8>& c) {
66
141
        size_t size = a.size();
67
141
        const A* __restrict a_pos = a.data();
68
141
        const B* __restrict b_pos = b.data();
69
141
        UInt8* __restrict c_pos = c.data();
70
141
        const A* __restrict a_end = a_pos + size;
71
72
323
        while (a_pos < a_end) {
73
182
            *c_pos = Op::apply(*a_pos, *b_pos);
74
182
            ++a_pos;
75
182
            ++b_pos;
76
182
            ++c_pos;
77
182
        }
78
141
    }
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
436
                                        PaddedPODArray<UInt8>& c) {
66
436
        size_t size = a.size();
67
436
        const A* __restrict a_pos = a.data();
68
436
        const B* __restrict b_pos = b.data();
69
436
        UInt8* __restrict c_pos = c.data();
70
436
        const A* __restrict a_end = a_pos + size;
71
72
6.84k
        while (a_pos < a_end) {
73
6.41k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.41k
            ++a_pos;
75
6.41k
            ++b_pos;
76
6.41k
            ++c_pos;
77
6.41k
        }
78
436
    }
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
37
                                        PaddedPODArray<UInt8>& c) {
66
37
        size_t size = a.size();
67
37
        const A* __restrict a_pos = a.data();
68
37
        const B* __restrict b_pos = b.data();
69
37
        UInt8* __restrict c_pos = c.data();
70
37
        const A* __restrict a_end = a_pos + size;
71
72
904
        while (a_pos < a_end) {
73
867
            *c_pos = Op::apply(*a_pos, *b_pos);
74
867
            ++a_pos;
75
867
            ++b_pos;
76
867
            ++c_pos;
77
867
        }
78
37
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
77
                                        PaddedPODArray<UInt8>& c) {
66
77
        size_t size = a.size();
67
77
        const A* __restrict a_pos = a.data();
68
77
        const B* __restrict b_pos = b.data();
69
77
        UInt8* __restrict c_pos = c.data();
70
77
        const A* __restrict a_end = a_pos + size;
71
72
333
        while (a_pos < a_end) {
73
256
            *c_pos = Op::apply(*a_pos, *b_pos);
74
256
            ++a_pos;
75
256
            ++b_pos;
76
256
            ++c_pos;
77
256
        }
78
77
    }
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
17.8k
                                          PaddedPODArray<UInt8>& c) {
82
17.8k
        size_t size = a.size();
83
17.8k
        const A* __restrict a_pos = a.data();
84
17.8k
        UInt8* __restrict c_pos = c.data();
85
17.8k
        const A* __restrict a_end = a_pos + size;
86
87
23.5M
        while (a_pos < a_end) {
88
23.5M
            *c_pos = Op::apply(*a_pos, b);
89
23.5M
            ++a_pos;
90
23.5M
            ++c_pos;
91
23.5M
        }
92
17.8k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
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
165
        while (a_pos < a_end) {
88
139
            *c_pos = Op::apply(*a_pos, b);
89
139
            ++a_pos;
90
139
            ++c_pos;
91
139
        }
92
26
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
829
                                          PaddedPODArray<UInt8>& c) {
82
829
        size_t size = a.size();
83
829
        const A* __restrict a_pos = a.data();
84
829
        UInt8* __restrict c_pos = c.data();
85
829
        const A* __restrict a_end = a_pos + size;
86
87
206k
        while (a_pos < a_end) {
88
205k
            *c_pos = Op::apply(*a_pos, b);
89
205k
            ++a_pos;
90
205k
            ++c_pos;
91
205k
        }
92
829
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
251
                                          PaddedPODArray<UInt8>& c) {
82
251
        size_t size = a.size();
83
251
        const A* __restrict a_pos = a.data();
84
251
        UInt8* __restrict c_pos = c.data();
85
251
        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
251
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
2.64k
                                          PaddedPODArray<UInt8>& c) {
82
2.64k
        size_t size = a.size();
83
2.64k
        const A* __restrict a_pos = a.data();
84
2.64k
        UInt8* __restrict c_pos = c.data();
85
2.64k
        const A* __restrict a_end = a_pos + size;
86
87
9.14M
        while (a_pos < a_end) {
88
9.14M
            *c_pos = Op::apply(*a_pos, b);
89
9.14M
            ++a_pos;
90
9.14M
            ++c_pos;
91
9.14M
        }
92
2.64k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
301
                                          PaddedPODArray<UInt8>& c) {
82
301
        size_t size = a.size();
83
301
        const A* __restrict a_pos = a.data();
84
301
        UInt8* __restrict c_pos = c.data();
85
301
        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
301
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.88k
                                          PaddedPODArray<UInt8>& c) {
82
1.88k
        size_t size = a.size();
83
1.88k
        const A* __restrict a_pos = a.data();
84
1.88k
        UInt8* __restrict c_pos = c.data();
85
1.88k
        const A* __restrict a_end = a_pos + size;
86
87
217k
        while (a_pos < a_end) {
88
215k
            *c_pos = Op::apply(*a_pos, b);
89
215k
            ++a_pos;
90
215k
            ++c_pos;
91
215k
        }
92
1.88k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
761
                                          PaddedPODArray<UInt8>& c) {
82
761
        size_t size = a.size();
83
761
        const A* __restrict a_pos = a.data();
84
761
        UInt8* __restrict c_pos = c.data();
85
761
        const A* __restrict a_end = a_pos + size;
86
87
359k
        while (a_pos < a_end) {
88
358k
            *c_pos = Op::apply(*a_pos, b);
89
358k
            ++a_pos;
90
358k
            ++c_pos;
91
358k
        }
92
761
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
24
                                          PaddedPODArray<UInt8>& c) {
82
24
        size_t size = a.size();
83
24
        const A* __restrict a_pos = a.data();
84
24
        UInt8* __restrict c_pos = c.data();
85
24
        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
24
    }
_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
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
158
                                          PaddedPODArray<UInt8>& c) {
82
158
        size_t size = a.size();
83
158
        const A* __restrict a_pos = a.data();
84
158
        UInt8* __restrict c_pos = c.data();
85
158
        const A* __restrict a_end = a_pos + size;
86
87
700k
        while (a_pos < a_end) {
88
700k
            *c_pos = Op::apply(*a_pos, b);
89
700k
            ++a_pos;
90
700k
            ++c_pos;
91
700k
        }
92
158
    }
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
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
5
        while (a_pos < a_end) {
88
3
            *c_pos = Op::apply(*a_pos, b);
89
3
            ++a_pos;
90
3
            ++c_pos;
91
3
        }
92
2
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
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
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
78
        while (a_pos < a_end) {
88
50
            *c_pos = Op::apply(*a_pos, b);
89
50
            ++a_pos;
90
50
            ++c_pos;
91
50
        }
92
28
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
61
                                          PaddedPODArray<UInt8>& c) {
82
61
        size_t size = a.size();
83
61
        const A* __restrict a_pos = a.data();
84
61
        UInt8* __restrict c_pos = c.data();
85
61
        const A* __restrict a_end = a_pos + size;
86
87
416
        while (a_pos < a_end) {
88
355
            *c_pos = Op::apply(*a_pos, b);
89
355
            ++a_pos;
90
355
            ++c_pos;
91
355
        }
92
61
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_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
1.06k
        while (a_pos < a_end) {
88
1.04k
            *c_pos = Op::apply(*a_pos, b);
89
1.04k
            ++a_pos;
90
1.04k
            ++c_pos;
91
1.04k
        }
92
26
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
32
                                          PaddedPODArray<UInt8>& c) {
82
32
        size_t size = a.size();
83
32
        const A* __restrict a_pos = a.data();
84
32
        UInt8* __restrict c_pos = c.data();
85
32
        const A* __restrict a_end = a_pos + size;
86
87
80
        while (a_pos < a_end) {
88
48
            *c_pos = Op::apply(*a_pos, b);
89
48
            ++a_pos;
90
48
            ++c_pos;
91
48
        }
92
32
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
52
                                          PaddedPODArray<UInt8>& c) {
82
52
        size_t size = a.size();
83
52
        const A* __restrict a_pos = a.data();
84
52
        UInt8* __restrict c_pos = c.data();
85
52
        const A* __restrict a_end = a_pos + size;
86
87
312
        while (a_pos < a_end) {
88
260
            *c_pos = Op::apply(*a_pos, b);
89
260
            ++a_pos;
90
260
            ++c_pos;
91
260
        }
92
52
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
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
12
        while (a_pos < a_end) {
88
10
            *c_pos = Op::apply(*a_pos, b);
89
10
            ++a_pos;
90
10
            ++c_pos;
91
10
        }
92
2
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
341
                                          PaddedPODArray<UInt8>& c) {
82
341
        size_t size = a.size();
83
341
        const A* __restrict a_pos = a.data();
84
341
        UInt8* __restrict c_pos = c.data();
85
341
        const A* __restrict a_end = a_pos + size;
86
87
1.67M
        while (a_pos < a_end) {
88
1.67M
            *c_pos = Op::apply(*a_pos, b);
89
1.67M
            ++a_pos;
90
1.67M
            ++c_pos;
91
1.67M
        }
92
341
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_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
6
        while (a_pos < a_end) {
88
4
            *c_pos = Op::apply(*a_pos, b);
89
4
            ++a_pos;
90
4
            ++c_pos;
91
4
        }
92
2
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
59
                                          PaddedPODArray<UInt8>& c) {
82
59
        size_t size = a.size();
83
59
        const A* __restrict a_pos = a.data();
84
59
        UInt8* __restrict c_pos = c.data();
85
59
        const A* __restrict a_end = a_pos + size;
86
87
269
        while (a_pos < a_end) {
88
210
            *c_pos = Op::apply(*a_pos, b);
89
210
            ++a_pos;
90
210
            ++c_pos;
91
210
        }
92
59
    }
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
417
                                          PaddedPODArray<UInt8>& c) {
82
417
        size_t size = a.size();
83
417
        const A* __restrict a_pos = a.data();
84
417
        UInt8* __restrict c_pos = c.data();
85
417
        const A* __restrict a_end = a_pos + size;
86
87
4.22k
        while (a_pos < a_end) {
88
3.80k
            *c_pos = Op::apply(*a_pos, b);
89
3.80k
            ++a_pos;
90
3.80k
            ++c_pos;
91
3.80k
        }
92
417
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
39
                                          PaddedPODArray<UInt8>& c) {
82
39
        size_t size = a.size();
83
39
        const A* __restrict a_pos = a.data();
84
39
        UInt8* __restrict c_pos = c.data();
85
39
        const A* __restrict a_end = a_pos + size;
86
87
157
        while (a_pos < a_end) {
88
118
            *c_pos = Op::apply(*a_pos, b);
89
118
            ++a_pos;
90
118
            ++c_pos;
91
118
        }
92
39
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
413
                                          PaddedPODArray<UInt8>& c) {
82
413
        size_t size = a.size();
83
413
        const A* __restrict a_pos = a.data();
84
413
        UInt8* __restrict c_pos = c.data();
85
413
        const A* __restrict a_end = a_pos + size;
86
87
3.65k
        while (a_pos < a_end) {
88
3.24k
            *c_pos = Op::apply(*a_pos, b);
89
3.24k
            ++a_pos;
90
3.24k
            ++c_pos;
91
3.24k
        }
92
413
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
20
                                          PaddedPODArray<UInt8>& c) {
82
20
        size_t size = a.size();
83
20
        const A* __restrict a_pos = a.data();
84
20
        UInt8* __restrict c_pos = c.data();
85
20
        const A* __restrict a_end = a_pos + size;
86
87
50
        while (a_pos < a_end) {
88
30
            *c_pos = Op::apply(*a_pos, b);
89
30
            ++a_pos;
90
30
            ++c_pos;
91
30
        }
92
20
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.61k
                                          PaddedPODArray<UInt8>& c) {
82
1.61k
        size_t size = a.size();
83
1.61k
        const A* __restrict a_pos = a.data();
84
1.61k
        UInt8* __restrict c_pos = c.data();
85
1.61k
        const A* __restrict a_end = a_pos + size;
86
87
14.1k
        while (a_pos < a_end) {
88
12.5k
            *c_pos = Op::apply(*a_pos, b);
89
12.5k
            ++a_pos;
90
12.5k
            ++c_pos;
91
12.5k
        }
92
1.61k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
545
                                          PaddedPODArray<UInt8>& c) {
82
545
        size_t size = a.size();
83
545
        const A* __restrict a_pos = a.data();
84
545
        UInt8* __restrict c_pos = c.data();
85
545
        const A* __restrict a_end = a_pos + size;
86
87
3.31k
        while (a_pos < a_end) {
88
2.76k
            *c_pos = Op::apply(*a_pos, b);
89
2.76k
            ++a_pos;
90
2.76k
            ++c_pos;
91
2.76k
        }
92
545
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.20k
                                          PaddedPODArray<UInt8>& c) {
82
1.20k
        size_t size = a.size();
83
1.20k
        const A* __restrict a_pos = a.data();
84
1.20k
        UInt8* __restrict c_pos = c.data();
85
1.20k
        const A* __restrict a_end = a_pos + size;
86
87
122k
        while (a_pos < a_end) {
88
121k
            *c_pos = Op::apply(*a_pos, b);
89
121k
            ++a_pos;
90
121k
            ++c_pos;
91
121k
        }
92
1.20k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
480
                                          PaddedPODArray<UInt8>& c) {
82
480
        size_t size = a.size();
83
480
        const A* __restrict a_pos = a.data();
84
480
        UInt8* __restrict c_pos = c.data();
85
480
        const A* __restrict a_end = a_pos + size;
86
87
1.47k
        while (a_pos < a_end) {
88
999
            *c_pos = Op::apply(*a_pos, b);
89
999
            ++a_pos;
90
999
            ++c_pos;
91
999
        }
92
480
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
207
                                          PaddedPODArray<UInt8>& c) {
82
207
        size_t size = a.size();
83
207
        const A* __restrict a_pos = a.data();
84
207
        UInt8* __restrict c_pos = c.data();
85
207
        const A* __restrict a_end = a_pos + size;
86
87
1.75k
        while (a_pos < a_end) {
88
1.54k
            *c_pos = Op::apply(*a_pos, b);
89
1.54k
            ++a_pos;
90
1.54k
            ++c_pos;
91
1.54k
        }
92
207
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
17
                                          PaddedPODArray<UInt8>& c) {
82
17
        size_t size = a.size();
83
17
        const A* __restrict a_pos = a.data();
84
17
        UInt8* __restrict c_pos = c.data();
85
17
        const A* __restrict a_end = a_pos + size;
86
87
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
2.62k
        while (a_pos < a_end) {
88
2.42k
            *c_pos = Op::apply(*a_pos, b);
89
2.42k
            ++a_pos;
90
2.42k
            ++c_pos;
91
2.42k
        }
92
208
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
499
                                          PaddedPODArray<UInt8>& c) {
82
499
        size_t size = a.size();
83
499
        const A* __restrict a_pos = a.data();
84
499
        UInt8* __restrict c_pos = c.data();
85
499
        const A* __restrict a_end = a_pos + size;
86
87
7.43k
        while (a_pos < a_end) {
88
6.93k
            *c_pos = Op::apply(*a_pos, b);
89
6.93k
            ++a_pos;
90
6.93k
            ++c_pos;
91
6.93k
        }
92
499
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
194
                                          PaddedPODArray<UInt8>& c) {
82
194
        size_t size = a.size();
83
194
        const A* __restrict a_pos = a.data();
84
194
        UInt8* __restrict c_pos = c.data();
85
194
        const A* __restrict a_end = a_pos + size;
86
87
607k
        while (a_pos < a_end) {
88
607k
            *c_pos = Op::apply(*a_pos, b);
89
607k
            ++a_pos;
90
607k
            ++c_pos;
91
607k
        }
92
194
    }
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
18
                                          PaddedPODArray<UInt8>& c) {
82
18
        size_t size = a.size();
83
18
        const A* __restrict a_pos = a.data();
84
18
        UInt8* __restrict c_pos = c.data();
85
18
        const A* __restrict a_end = a_pos + size;
86
87
51.9k
        while (a_pos < a_end) {
88
51.9k
            *c_pos = Op::apply(*a_pos, b);
89
51.9k
            ++a_pos;
90
51.9k
            ++c_pos;
91
51.9k
        }
92
18
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
27
                                          PaddedPODArray<UInt8>& c) {
82
27
        size_t size = a.size();
83
27
        const A* __restrict a_pos = a.data();
84
27
        UInt8* __restrict c_pos = c.data();
85
27
        const A* __restrict a_end = a_pos + size;
86
87
119k
        while (a_pos < a_end) {
88
119k
            *c_pos = Op::apply(*a_pos, b);
89
119k
            ++a_pos;
90
119k
            ++c_pos;
91
119k
        }
92
27
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
490
                                          PaddedPODArray<UInt8>& c) {
82
490
        size_t size = a.size();
83
490
        const A* __restrict a_pos = a.data();
84
490
        UInt8* __restrict c_pos = c.data();
85
490
        const A* __restrict a_end = a_pos + size;
86
87
1.69M
        while (a_pos < a_end) {
88
1.68M
            *c_pos = Op::apply(*a_pos, b);
89
1.68M
            ++a_pos;
90
1.68M
            ++c_pos;
91
1.68M
        }
92
490
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
125
                                          PaddedPODArray<UInt8>& c) {
82
125
        size_t size = a.size();
83
125
        const A* __restrict a_pos = a.data();
84
125
        UInt8* __restrict c_pos = c.data();
85
125
        const A* __restrict a_end = a_pos + size;
86
87
612k
        while (a_pos < a_end) {
88
611k
            *c_pos = Op::apply(*a_pos, b);
89
611k
            ++a_pos;
90
611k
            ++c_pos;
91
611k
        }
92
125
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
137
                                          PaddedPODArray<UInt8>& c) {
82
137
        size_t size = a.size();
83
137
        const A* __restrict a_pos = a.data();
84
137
        UInt8* __restrict c_pos = c.data();
85
137
        const A* __restrict a_end = a_pos + size;
86
87
515
        while (a_pos < a_end) {
88
378
            *c_pos = Op::apply(*a_pos, b);
89
378
            ++a_pos;
90
378
            ++c_pos;
91
378
        }
92
137
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
44
                                          PaddedPODArray<UInt8>& c) {
82
44
        size_t size = a.size();
83
44
        const A* __restrict a_pos = a.data();
84
44
        UInt8* __restrict c_pos = c.data();
85
44
        const A* __restrict a_end = a_pos + size;
86
87
94
        while (a_pos < a_end) {
88
50
            *c_pos = Op::apply(*a_pos, b);
89
50
            ++a_pos;
90
50
            ++c_pos;
91
50
        }
92
44
    }
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
55
                                          PaddedPODArray<UInt8>& c) {
82
55
        size_t size = a.size();
83
55
        const A* __restrict a_pos = a.data();
84
55
        UInt8* __restrict c_pos = c.data();
85
55
        const A* __restrict a_end = a_pos + size;
86
87
41.1k
        while (a_pos < a_end) {
88
41.0k
            *c_pos = Op::apply(*a_pos, b);
89
41.0k
            ++a_pos;
90
41.0k
            ++c_pos;
91
41.0k
        }
92
55
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
61
                                          PaddedPODArray<UInt8>& c) {
82
61
        size_t size = a.size();
83
61
        const A* __restrict a_pos = a.data();
84
61
        UInt8* __restrict c_pos = c.data();
85
61
        const A* __restrict a_end = a_pos + size;
86
87
36.8k
        while (a_pos < a_end) {
88
36.8k
            *c_pos = Op::apply(*a_pos, b);
89
36.8k
            ++a_pos;
90
36.8k
            ++c_pos;
91
36.8k
        }
92
61
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
86
                                          PaddedPODArray<UInt8>& c) {
82
86
        size_t size = a.size();
83
86
        const A* __restrict a_pos = a.data();
84
86
        UInt8* __restrict c_pos = c.data();
85
86
        const A* __restrict a_end = a_pos + size;
86
87
6.01k
        while (a_pos < a_end) {
88
5.92k
            *c_pos = Op::apply(*a_pos, b);
89
5.92k
            ++a_pos;
90
5.92k
            ++c_pos;
91
5.92k
        }
92
86
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
124
                                          PaddedPODArray<UInt8>& c) {
82
124
        size_t size = a.size();
83
124
        const A* __restrict a_pos = a.data();
84
124
        UInt8* __restrict c_pos = c.data();
85
124
        const A* __restrict a_end = a_pos + size;
86
87
69.7k
        while (a_pos < a_end) {
88
69.6k
            *c_pos = Op::apply(*a_pos, b);
89
69.6k
            ++a_pos;
90
69.6k
            ++c_pos;
91
69.6k
        }
92
124
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.31k
                                          PaddedPODArray<UInt8>& c) {
82
1.31k
        size_t size = a.size();
83
1.31k
        const A* __restrict a_pos = a.data();
84
1.31k
        UInt8* __restrict c_pos = c.data();
85
1.31k
        const A* __restrict a_end = a_pos + size;
86
87
3.13M
        while (a_pos < a_end) {
88
3.13M
            *c_pos = Op::apply(*a_pos, b);
89
3.13M
            ++a_pos;
90
3.13M
            ++c_pos;
91
3.13M
        }
92
1.31k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.36k
                                          PaddedPODArray<UInt8>& c) {
82
1.36k
        size_t size = a.size();
83
1.36k
        const A* __restrict a_pos = a.data();
84
1.36k
        UInt8* __restrict c_pos = c.data();
85
1.36k
        const A* __restrict a_end = a_pos + size;
86
87
3.05M
        while (a_pos < a_end) {
88
3.05M
            *c_pos = Op::apply(*a_pos, b);
89
3.05M
            ++a_pos;
90
3.05M
            ++c_pos;
91
3.05M
        }
92
1.36k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_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
5.38k
        while (a_pos < a_end) {
88
5.25k
            *c_pos = Op::apply(*a_pos, b);
89
5.25k
            ++a_pos;
90
5.25k
            ++c_pos;
91
5.25k
        }
92
138
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
230
                                          PaddedPODArray<UInt8>& c) {
82
230
        size_t size = a.size();
83
230
        const A* __restrict a_pos = a.data();
84
230
        UInt8* __restrict c_pos = c.data();
85
230
        const A* __restrict a_end = a_pos + size;
86
87
2.82k
        while (a_pos < a_end) {
88
2.59k
            *c_pos = Op::apply(*a_pos, b);
89
2.59k
            ++a_pos;
90
2.59k
            ++c_pos;
91
2.59k
        }
92
230
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
8
                                          PaddedPODArray<UInt8>& c) {
82
8
        size_t size = a.size();
83
8
        const A* __restrict a_pos = a.data();
84
8
        UInt8* __restrict c_pos = c.data();
85
8
        const A* __restrict a_end = a_pos + size;
86
87
14.9k
        while (a_pos < a_end) {
88
14.9k
            *c_pos = Op::apply(*a_pos, b);
89
14.9k
            ++a_pos;
90
14.9k
            ++c_pos;
91
14.9k
        }
92
8
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
7
                                          PaddedPODArray<UInt8>& c) {
82
7
        size_t size = a.size();
83
7
        const A* __restrict a_pos = a.data();
84
7
        UInt8* __restrict c_pos = c.data();
85
7
        const A* __restrict a_end = a_pos + size;
86
87
12.9k
        while (a_pos < a_end) {
88
12.9k
            *c_pos = Op::apply(*a_pos, b);
89
12.9k
            ++a_pos;
90
12.9k
            ++c_pos;
91
12.9k
        }
92
7
    }
_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
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
15
        while (a_pos < a_end) {
88
9
            *c_pos = Op::apply(*a_pos, b);
89
9
            ++a_pos;
90
9
            ++c_pos;
91
9
        }
92
6
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
102
                                          PaddedPODArray<UInt8>& c) {
82
102
        size_t size = a.size();
83
102
        const A* __restrict a_pos = a.data();
84
102
        UInt8* __restrict c_pos = c.data();
85
102
        const A* __restrict a_end = a_pos + size;
86
87
601k
        while (a_pos < a_end) {
88
600k
            *c_pos = Op::apply(*a_pos, b);
89
600k
            ++a_pos;
90
600k
            ++c_pos;
91
600k
        }
92
102
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
105
                                          PaddedPODArray<UInt8>& c) {
82
105
        size_t size = a.size();
83
105
        const A* __restrict a_pos = a.data();
84
105
        UInt8* __restrict c_pos = c.data();
85
105
        const A* __restrict a_end = a_pos + size;
86
87
600k
        while (a_pos < a_end) {
88
600k
            *c_pos = Op::apply(*a_pos, b);
89
600k
            ++a_pos;
90
600k
            ++c_pos;
91
600k
        }
92
105
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
93
94
8
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
8
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
8
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
8
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
8
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
8
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
97
};
98
99
/// Generic version, implemented for columns of same type.
100
template <typename Op>
101
struct GenericComparisonImpl {
102
9
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
20
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
11
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
11
        }
106
9
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
4
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
10
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
6
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
6
        }
106
4
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
1
        }
106
1
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
1
        }
106
1
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
3
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
6
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
3
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
3
        }
106
3
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
107
108
83
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
83
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
148k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
148k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
148k
        }
113
83
    }
_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
25
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
25
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
101k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
101k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
101k
        }
113
25
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
21
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
21
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
46.9k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
46.9k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
46.9k
        }
113
21
    }
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
382
                                                      PaddedPODArray<UInt8>& c) {
127
382
        size_t size = a_offsets.size();
128
382
        ColumnString::Offset prev_a_offset = 0;
129
382
        ColumnString::Offset prev_b_offset = 0;
130
382
        const auto* a_pos = a_data.data();
131
382
        const auto* b_pos = b_data.data();
132
133
1.03k
        for (size_t i = 0; i < size; ++i) {
134
652
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
652
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
652
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
652
                             0);
138
139
652
            prev_a_offset = a_offsets[i];
140
652
            prev_b_offset = b_offsets[i];
141
652
        }
142
382
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
2
                                                      PaddedPODArray<UInt8>& c) {
127
2
        size_t size = a_offsets.size();
128
2
        ColumnString::Offset prev_a_offset = 0;
129
2
        ColumnString::Offset prev_b_offset = 0;
130
2
        const auto* a_pos = a_data.data();
131
2
        const auto* b_pos = b_data.data();
132
133
49
        for (size_t i = 0; i < size; ++i) {
134
47
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
47
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
47
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
47
                             0);
138
139
47
            prev_a_offset = a_offsets[i];
140
47
            prev_b_offset = b_offsets[i];
141
47
        }
142
2
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
43
                                                      PaddedPODArray<UInt8>& c) {
127
43
        size_t size = a_offsets.size();
128
43
        ColumnString::Offset prev_a_offset = 0;
129
43
        ColumnString::Offset prev_b_offset = 0;
130
43
        const auto* a_pos = a_data.data();
131
43
        const auto* b_pos = b_data.data();
132
133
307
        for (size_t i = 0; i < size; ++i) {
134
264
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
264
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
264
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
264
                             0);
138
139
264
            prev_a_offset = a_offsets[i];
140
264
            prev_b_offset = b_offsets[i];
141
264
        }
142
43
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
337
                                                      PaddedPODArray<UInt8>& c) {
127
337
        size_t size = a_offsets.size();
128
337
        ColumnString::Offset prev_a_offset = 0;
129
337
        ColumnString::Offset prev_b_offset = 0;
130
337
        const auto* a_pos = a_data.data();
131
337
        const auto* b_pos = b_data.data();
132
133
678
        for (size_t i = 0; i < size; ++i) {
134
341
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
341
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
341
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
341
                             0);
138
139
341
            prev_a_offset = a_offsets[i];
140
341
            prev_b_offset = b_offsets[i];
141
341
        }
142
337
    }
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
693
                                                 PaddedPODArray<UInt8>& c) {
149
693
        size_t size = a_offsets.size();
150
693
        ColumnString::Offset prev_a_offset = 0;
151
693
        const auto* a_pos = a_data.data();
152
693
        const auto* b_pos = b_data.data();
153
154
1.23M
        for (size_t i = 0; i < size; ++i) {
155
1.23M
            c[i] = Op::apply(
156
1.23M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
1.23M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
1.23M
                    0);
159
160
1.23M
            prev_a_offset = a_offsets[i];
161
1.23M
        }
162
693
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
196
                                                 PaddedPODArray<UInt8>& c) {
149
196
        size_t size = a_offsets.size();
150
196
        ColumnString::Offset prev_a_offset = 0;
151
196
        const auto* a_pos = a_data.data();
152
196
        const auto* b_pos = b_data.data();
153
154
597k
        for (size_t i = 0; i < size; ++i) {
155
596k
            c[i] = Op::apply(
156
596k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
596k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
596k
                    0);
159
160
596k
            prev_a_offset = a_offsets[i];
161
596k
        }
162
196
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
123
                                                 PaddedPODArray<UInt8>& c) {
149
123
        size_t size = a_offsets.size();
150
123
        ColumnString::Offset prev_a_offset = 0;
151
123
        const auto* a_pos = a_data.data();
152
123
        const auto* b_pos = b_data.data();
153
154
72.3k
        for (size_t i = 0; i < size; ++i) {
155
72.2k
            c[i] = Op::apply(
156
72.2k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
72.2k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
72.2k
                    0);
159
160
72.2k
            prev_a_offset = a_offsets[i];
161
72.2k
        }
162
123
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
195
                                                 PaddedPODArray<UInt8>& c) {
149
195
        size_t size = a_offsets.size();
150
195
        ColumnString::Offset prev_a_offset = 0;
151
195
        const auto* a_pos = a_data.data();
152
195
        const auto* b_pos = b_data.data();
153
154
271k
        for (size_t i = 0; i < size; ++i) {
155
271k
            c[i] = Op::apply(
156
271k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
271k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
271k
                    0);
159
160
271k
            prev_a_offset = a_offsets[i];
161
271k
        }
162
195
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
179
                                                 PaddedPODArray<UInt8>& c) {
149
179
        size_t size = a_offsets.size();
150
179
        ColumnString::Offset prev_a_offset = 0;
151
179
        const auto* a_pos = a_data.data();
152
179
        const auto* b_pos = b_data.data();
153
154
290k
        for (size_t i = 0; i < size; ++i) {
155
290k
            c[i] = Op::apply(
156
290k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
290k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
290k
                    0);
159
160
290k
            prev_a_offset = a_offsets[i];
161
290k
        }
162
179
    }
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
437
                                                      PaddedPODArray<UInt8>& c) {
181
437
        size_t size = a_offsets.size();
182
437
        ColumnString::Offset prev_a_offset = 0;
183
437
        ColumnString::Offset prev_b_offset = 0;
184
437
        const auto* a_pos = a_data.data();
185
437
        const auto* b_pos = b_data.data();
186
187
1.30k
        for (size_t i = 0; i < size; ++i) {
188
868
            auto a_size = a_offsets[i] - prev_a_offset;
189
868
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
868
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
868
                                                               b_pos + prev_b_offset, b_size);
193
194
868
            prev_a_offset = a_offsets[i];
195
868
            prev_b_offset = b_offsets[i];
196
868
        }
197
437
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
436
                                                      PaddedPODArray<UInt8>& c) {
181
436
        size_t size = a_offsets.size();
182
436
        ColumnString::Offset prev_a_offset = 0;
183
436
        ColumnString::Offset prev_b_offset = 0;
184
436
        const auto* a_pos = a_data.data();
185
436
        const auto* b_pos = b_data.data();
186
187
1.30k
        for (size_t i = 0; i < size; ++i) {
188
864
            auto a_size = a_offsets[i] - prev_a_offset;
189
864
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
864
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
864
                                                               b_pos + prev_b_offset, b_size);
193
194
864
            prev_a_offset = a_offsets[i];
195
864
            prev_b_offset = b_offsets[i];
196
864
        }
197
436
    }
_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
11.2k
                                                 PaddedPODArray<UInt8>& c) {
204
11.2k
        size_t size = a_offsets.size();
205
11.2k
        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
11.2k
        } else {
215
11.2k
            ColumnString::Offset prev_a_offset = 0;
216
11.2k
            const auto* a_pos = a_data.data();
217
11.2k
            const auto* b_pos = b_data.data();
218
1.58M
            for (size_t i = 0; i < size; ++i) {
219
1.57M
                auto a_size = a_offsets[i] - prev_a_offset;
220
1.57M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
1.57M
                                                                   b_pos, b_size);
222
1.57M
                prev_a_offset = a_offsets[i];
223
1.57M
            }
224
11.2k
        }
225
11.2k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
11.1k
                                                 PaddedPODArray<UInt8>& c) {
204
11.1k
        size_t size = a_offsets.size();
205
11.1k
        if (b_size == 0) {
206
0
            auto* __restrict data = c.data();
207
0
            auto* __restrict offsets = a_offsets.data();
208
209
0
            ColumnString::Offset prev_a_offset = 0;
210
0
            for (size_t i = 0; i < size; ++i) {
211
0
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
0
                prev_a_offset = offsets[i];
213
0
            }
214
11.1k
        } else {
215
11.1k
            ColumnString::Offset prev_a_offset = 0;
216
11.1k
            const auto* a_pos = a_data.data();
217
11.1k
            const auto* b_pos = b_data.data();
218
1.54M
            for (size_t i = 0; i < size; ++i) {
219
1.53M
                auto a_size = a_offsets[i] - prev_a_offset;
220
1.53M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
1.53M
                                                                   b_pos, b_size);
222
1.53M
                prev_a_offset = a_offsets[i];
223
1.53M
            }
224
11.1k
        }
225
11.1k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
118
                                                 PaddedPODArray<UInt8>& c) {
204
118
        size_t size = a_offsets.size();
205
118
        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
93
        } else {
215
93
            ColumnString::Offset prev_a_offset = 0;
216
93
            const auto* a_pos = a_data.data();
217
93
            const auto* b_pos = b_data.data();
218
41.9k
            for (size_t i = 0; i < size; ++i) {
219
41.8k
                auto a_size = a_offsets[i] - prev_a_offset;
220
41.8k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
41.8k
                                                                   b_pos, b_size);
222
41.8k
                prev_a_offset = a_offsets[i];
223
41.8k
            }
224
93
        }
225
118
    }
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
295k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
265
250k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
265
1.15k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
265
4.88k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
265
18.3k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
265
2.75k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
265
18.0k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
266
267
296k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
267
250k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
267
1.15k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
267
4.88k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
267
18.3k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
267
2.75k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
267
18.0k
    FunctionComparison() = default;
268
269
686k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
269
675k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
269
556
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
269
3.37k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
269
3.75k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
269
1.74k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
269
2.13k
    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
29.5k
                            const ColumnPtr& col_right_ptr) const {
275
29.5k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
29.5k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
29.5k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
29.5k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
29.5k
        DCHECK(!(left_is_const && right_is_const));
282
283
29.5k
        if (!left_is_const && !right_is_const) {
284
11.7k
            auto col_res = ColumnUInt8::create();
285
286
11.7k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
11.7k
            vec_res.resize(col_left->get_data().size());
288
11.7k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
11.7k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
11.7k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
11.7k
                                                     vec_res);
292
293
11.7k
            block.replace_by_position(result, std::move(col_res));
294
17.8k
        } else if (!left_is_const && right_is_const) {
295
17.8k
            auto col_res = ColumnUInt8::create();
296
297
17.8k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
17.8k
            vec_res.resize(col_left->size());
299
17.8k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
17.8k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
17.8k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
17.8k
                                                       col_right->get_element(0), vec_res);
303
304
17.8k
            block.replace_by_position(result, std::move(col_res));
305
17.8k
        } else if (left_is_const && !right_is_const) {
306
8
            auto col_res = ColumnUInt8::create();
307
308
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
8
            vec_res.resize(col_right->size());
310
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
8
                              typename PrimitiveTypeTraits<PT>::CppType,
312
8
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
8
                                                       col_right->get_data(), vec_res);
314
315
8
            block.replace_by_position(result, std::move(col_res));
316
8
        }
317
29.5k
        return Status::OK();
318
29.5k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
102
                            const ColumnPtr& col_right_ptr) const {
275
102
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
102
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
102
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
102
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
102
        DCHECK(!(left_is_const && right_is_const));
282
283
102
        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
76
        } 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
102
        return Status::OK();
318
102
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.17k
                            const ColumnPtr& col_right_ptr) const {
275
1.17k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.17k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.17k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.17k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.17k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.17k
        if (!left_is_const && !right_is_const) {
284
343
            auto col_res = ColumnUInt8::create();
285
286
343
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
343
            vec_res.resize(col_left->get_data().size());
288
343
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
343
                              typename PrimitiveTypeTraits<PT>::CppType,
290
343
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
343
                                                     vec_res);
292
293
343
            block.replace_by_position(result, std::move(col_res));
294
829
        } else if (!left_is_const && right_is_const) {
295
829
            auto col_res = ColumnUInt8::create();
296
297
829
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
829
            vec_res.resize(col_left->size());
299
829
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
829
                              typename PrimitiveTypeTraits<PT>::CppType,
301
829
                              Op<PT>>::vector_constant(col_left->get_data(),
302
829
                                                       col_right->get_element(0), vec_res);
303
304
829
            block.replace_by_position(result, std::move(col_res));
305
829
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.17k
        return Status::OK();
318
1.17k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
529
                            const ColumnPtr& col_right_ptr) const {
275
529
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
529
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
529
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
529
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
529
        DCHECK(!(left_is_const && right_is_const));
282
283
529
        if (!left_is_const && !right_is_const) {
284
278
            auto col_res = ColumnUInt8::create();
285
286
278
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
278
            vec_res.resize(col_left->get_data().size());
288
278
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
278
                              typename PrimitiveTypeTraits<PT>::CppType,
290
278
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
278
                                                     vec_res);
292
293
278
            block.replace_by_position(result, std::move(col_res));
294
278
        } else if (!left_is_const && right_is_const) {
295
251
            auto col_res = ColumnUInt8::create();
296
297
251
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
251
            vec_res.resize(col_left->size());
299
251
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
251
                              typename PrimitiveTypeTraits<PT>::CppType,
301
251
                              Op<PT>>::vector_constant(col_left->get_data(),
302
251
                                                       col_right->get_element(0), vec_res);
303
304
251
            block.replace_by_position(result, std::move(col_res));
305
251
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
529
        return Status::OK();
318
529
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3.36k
                            const ColumnPtr& col_right_ptr) const {
275
3.36k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.36k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.36k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.36k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.36k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.36k
        if (!left_is_const && !right_is_const) {
284
717
            auto col_res = ColumnUInt8::create();
285
286
717
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
717
            vec_res.resize(col_left->get_data().size());
288
717
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
717
                              typename PrimitiveTypeTraits<PT>::CppType,
290
717
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
717
                                                     vec_res);
292
293
717
            block.replace_by_position(result, std::move(col_res));
294
2.64k
        } else if (!left_is_const && right_is_const) {
295
2.64k
            auto col_res = ColumnUInt8::create();
296
297
2.64k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2.64k
            vec_res.resize(col_left->size());
299
2.64k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2.64k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2.64k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2.64k
                                                       col_right->get_element(0), vec_res);
303
304
2.64k
            block.replace_by_position(result, std::move(col_res));
305
2.64k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.36k
        return Status::OK();
318
3.36k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
424
                            const ColumnPtr& col_right_ptr) const {
275
424
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
424
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
424
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
424
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
424
        DCHECK(!(left_is_const && right_is_const));
282
283
425
        if (!left_is_const && !right_is_const) {
284
123
            auto col_res = ColumnUInt8::create();
285
286
123
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
123
            vec_res.resize(col_left->get_data().size());
288
123
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
123
                              typename PrimitiveTypeTraits<PT>::CppType,
290
123
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
123
                                                     vec_res);
292
293
123
            block.replace_by_position(result, std::move(col_res));
294
301
        } else if (!left_is_const && right_is_const) {
295
301
            auto col_res = ColumnUInt8::create();
296
297
301
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
301
            vec_res.resize(col_left->size());
299
301
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
301
                              typename PrimitiveTypeTraits<PT>::CppType,
301
301
                              Op<PT>>::vector_constant(col_left->get_data(),
302
301
                                                       col_right->get_element(0), vec_res);
303
304
301
            block.replace_by_position(result, std::move(col_res));
305
301
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
424
        return Status::OK();
318
424
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.28k
                            const ColumnPtr& col_right_ptr) const {
275
2.28k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.28k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.28k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.28k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.28k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.28k
        if (!left_is_const && !right_is_const) {
284
397
            auto col_res = ColumnUInt8::create();
285
286
397
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
397
            vec_res.resize(col_left->get_data().size());
288
397
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
397
                              typename PrimitiveTypeTraits<PT>::CppType,
290
397
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
397
                                                     vec_res);
292
293
397
            block.replace_by_position(result, std::move(col_res));
294
1.88k
        } 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
1.87k
        } else if (left_is_const && !right_is_const) {
306
8
            auto col_res = ColumnUInt8::create();
307
308
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
8
            vec_res.resize(col_right->size());
310
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
8
                              typename PrimitiveTypeTraits<PT>::CppType,
312
8
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
8
                                                       col_right->get_data(), vec_res);
314
315
8
            block.replace_by_position(result, std::move(col_res));
316
8
        }
317
2.28k
        return Status::OK();
318
2.28k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
963
                            const ColumnPtr& col_right_ptr) const {
275
963
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
963
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
963
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
963
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
963
        DCHECK(!(left_is_const && right_is_const));
282
283
963
        if (!left_is_const && !right_is_const) {
284
202
            auto col_res = ColumnUInt8::create();
285
286
202
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
202
            vec_res.resize(col_left->get_data().size());
288
202
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
202
                              typename PrimitiveTypeTraits<PT>::CppType,
290
202
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
202
                                                     vec_res);
292
293
202
            block.replace_by_position(result, std::move(col_res));
294
761
        } else if (!left_is_const && right_is_const) {
295
761
            auto col_res = ColumnUInt8::create();
296
297
761
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
761
            vec_res.resize(col_left->size());
299
761
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
761
                              typename PrimitiveTypeTraits<PT>::CppType,
301
761
                              Op<PT>>::vector_constant(col_left->get_data(),
302
761
                                                       col_right->get_element(0), vec_res);
303
304
761
            block.replace_by_position(result, std::move(col_res));
305
761
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
963
        return Status::OK();
318
963
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
116
                            const ColumnPtr& col_right_ptr) const {
275
116
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
116
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
116
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
116
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
116
        DCHECK(!(left_is_const && right_is_const));
282
283
116
        if (!left_is_const && !right_is_const) {
284
92
            auto col_res = ColumnUInt8::create();
285
286
92
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
92
            vec_res.resize(col_left->get_data().size());
288
92
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
92
                              typename PrimitiveTypeTraits<PT>::CppType,
290
92
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
92
                                                     vec_res);
292
293
92
            block.replace_by_position(result, std::move(col_res));
294
92
        } else if (!left_is_const && right_is_const) {
295
24
            auto col_res = ColumnUInt8::create();
296
297
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
24
            vec_res.resize(col_left->size());
299
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
24
                              typename PrimitiveTypeTraits<PT>::CppType,
301
24
                              Op<PT>>::vector_constant(col_left->get_data(),
302
24
                                                       col_right->get_element(0), vec_res);
303
304
24
            block.replace_by_position(result, std::move(col_res));
305
24
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
116
        return Status::OK();
318
116
    }
_ZNK5doris18FunctionComparisonINS_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
104
                            const ColumnPtr& col_right_ptr) const {
275
104
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
104
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
104
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
104
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
104
        DCHECK(!(left_is_const && right_is_const));
282
283
104
        if (!left_is_const && !right_is_const) {
284
104
            auto col_res = ColumnUInt8::create();
285
286
104
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
104
            vec_res.resize(col_left->get_data().size());
288
104
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
104
                              typename PrimitiveTypeTraits<PT>::CppType,
290
104
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
104
                                                     vec_res);
292
293
104
            block.replace_by_position(result, std::move(col_res));
294
104
        } else if (!left_is_const && right_is_const) {
295
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
104
        return Status::OK();
318
104
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
263
                            const ColumnPtr& col_right_ptr) const {
275
263
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
263
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
263
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
263
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
263
        DCHECK(!(left_is_const && right_is_const));
282
283
263
        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
158
        } else if (!left_is_const && right_is_const) {
295
158
            auto col_res = ColumnUInt8::create();
296
297
158
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
158
            vec_res.resize(col_left->size());
299
158
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
158
                              typename PrimitiveTypeTraits<PT>::CppType,
301
158
                              Op<PT>>::vector_constant(col_left->get_data(),
302
158
                                                       col_right->get_element(0), vec_res);
303
304
158
            block.replace_by_position(result, std::move(col_res));
305
158
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
263
        return Status::OK();
318
263
    }
_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
41
                            const ColumnPtr& col_right_ptr) const {
275
41
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
41
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
41
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
41
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
41
        DCHECK(!(left_is_const && right_is_const));
282
283
41
        if (!left_is_const && !right_is_const) {
284
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
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
41
        return Status::OK();
318
41
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
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
92
                            const ColumnPtr& col_right_ptr) const {
275
92
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
92
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
92
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
92
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
92
        DCHECK(!(left_is_const && right_is_const));
282
283
92
        if (!left_is_const && !right_is_const) {
284
64
            auto col_res = ColumnUInt8::create();
285
286
64
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
64
            vec_res.resize(col_left->get_data().size());
288
64
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
64
                              typename PrimitiveTypeTraits<PT>::CppType,
290
64
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
64
                                                     vec_res);
292
293
64
            block.replace_by_position(result, std::move(col_res));
294
64
        } else if (!left_is_const && right_is_const) {
295
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
92
        return Status::OK();
318
92
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_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
641
            auto col_res = ColumnUInt8::create();
285
286
641
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
641
            vec_res.resize(col_left->get_data().size());
288
641
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
641
                              typename PrimitiveTypeTraits<PT>::CppType,
290
641
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
641
                                                     vec_res);
292
293
641
            block.replace_by_position(result, std::move(col_res));
294
641
        } else if (!left_is_const && right_is_const) {
295
61
            auto col_res = ColumnUInt8::create();
296
297
61
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
61
            vec_res.resize(col_left->size());
299
61
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
61
                              typename PrimitiveTypeTraits<PT>::CppType,
301
61
                              Op<PT>>::vector_constant(col_left->get_data(),
302
61
                                                       col_right->get_element(0), vec_res);
303
304
61
            block.replace_by_position(result, std::move(col_res));
305
61
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
702
        return Status::OK();
318
702
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
563
                            const ColumnPtr& col_right_ptr) const {
275
563
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
563
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
563
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
563
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
563
        DCHECK(!(left_is_const && right_is_const));
282
283
563
        if (!left_is_const && !right_is_const) {
284
537
            auto col_res = ColumnUInt8::create();
285
286
537
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
537
            vec_res.resize(col_left->get_data().size());
288
537
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
537
                              typename PrimitiveTypeTraits<PT>::CppType,
290
537
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
537
                                                     vec_res);
292
293
537
            block.replace_by_position(result, std::move(col_res));
294
537
        } 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
563
        return Status::OK();
318
563
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
52
                            const ColumnPtr& col_right_ptr) const {
275
52
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
52
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
52
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
52
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
52
        DCHECK(!(left_is_const && right_is_const));
282
283
52
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
32
        } else if (!left_is_const && right_is_const) {
295
32
            auto col_res = ColumnUInt8::create();
296
297
32
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
32
            vec_res.resize(col_left->size());
299
32
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
32
                              typename PrimitiveTypeTraits<PT>::CppType,
301
32
                              Op<PT>>::vector_constant(col_left->get_data(),
302
32
                                                       col_right->get_element(0), vec_res);
303
304
32
            block.replace_by_position(result, std::move(col_res));
305
32
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
52
        return Status::OK();
318
52
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
72
                            const ColumnPtr& col_right_ptr) const {
275
72
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
72
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
72
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
72
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
72
        DCHECK(!(left_is_const && right_is_const));
282
283
72
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
52
        } else if (!left_is_const && right_is_const) {
295
52
            auto col_res = ColumnUInt8::create();
296
297
52
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
52
            vec_res.resize(col_left->size());
299
52
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
52
                              typename PrimitiveTypeTraits<PT>::CppType,
301
52
                              Op<PT>>::vector_constant(col_left->get_data(),
302
52
                                                       col_right->get_element(0), vec_res);
303
304
52
            block.replace_by_position(result, std::move(col_res));
305
52
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
72
        return Status::OK();
318
72
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
976
                            const ColumnPtr& col_right_ptr) const {
275
976
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
976
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
976
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
976
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
976
        DCHECK(!(left_is_const && right_is_const));
282
283
976
        if (!left_is_const && !right_is_const) {
284
974
            auto col_res = ColumnUInt8::create();
285
286
974
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
974
            vec_res.resize(col_left->get_data().size());
288
974
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
974
                              typename PrimitiveTypeTraits<PT>::CppType,
290
974
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
974
                                                     vec_res);
292
293
974
            block.replace_by_position(result, std::move(col_res));
294
974
        } 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
976
        return Status::OK();
318
976
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_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
    }
_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
654
                            const ColumnPtr& col_right_ptr) const {
275
654
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
654
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
654
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
654
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
654
        DCHECK(!(left_is_const && right_is_const));
282
283
654
        if (!left_is_const && !right_is_const) {
284
237
            auto col_res = ColumnUInt8::create();
285
286
237
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
237
            vec_res.resize(col_left->get_data().size());
288
237
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
237
                              typename PrimitiveTypeTraits<PT>::CppType,
290
237
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
237
                                                     vec_res);
292
293
237
            block.replace_by_position(result, std::move(col_res));
294
417
        } else if (!left_is_const && right_is_const) {
295
417
            auto col_res = ColumnUInt8::create();
296
297
417
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
417
            vec_res.resize(col_left->size());
299
417
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
417
                              typename PrimitiveTypeTraits<PT>::CppType,
301
417
                              Op<PT>>::vector_constant(col_left->get_data(),
302
417
                                                       col_right->get_element(0), vec_res);
303
304
417
            block.replace_by_position(result, std::move(col_res));
305
417
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
654
        return Status::OK();
318
654
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
916
                            const ColumnPtr& col_right_ptr) const {
275
916
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
916
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
916
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
916
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
916
        DCHECK(!(left_is_const && right_is_const));
282
283
916
        if (!left_is_const && !right_is_const) {
284
504
            auto col_res = ColumnUInt8::create();
285
286
504
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
504
            vec_res.resize(col_left->get_data().size());
288
504
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
504
                              typename PrimitiveTypeTraits<PT>::CppType,
290
504
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
504
                                                     vec_res);
292
293
504
            block.replace_by_position(result, std::move(col_res));
294
504
        } else if (!left_is_const && right_is_const) {
295
412
            auto col_res = ColumnUInt8::create();
296
297
412
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
412
            vec_res.resize(col_left->size());
299
412
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
412
                              typename PrimitiveTypeTraits<PT>::CppType,
301
412
                              Op<PT>>::vector_constant(col_left->get_data(),
302
412
                                                       col_right->get_element(0), vec_res);
303
304
412
            block.replace_by_position(result, std::move(col_res));
305
412
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
916
        return Status::OK();
318
916
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3.38k
                            const ColumnPtr& col_right_ptr) const {
275
3.38k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.38k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.38k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.38k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.38k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.39k
        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
1.78k
        } else if (!left_is_const && right_is_const) {
295
1.61k
            auto col_res = ColumnUInt8::create();
296
297
1.61k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.61k
            vec_res.resize(col_left->size());
299
1.61k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.61k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.61k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.61k
                                                       col_right->get_element(0), vec_res);
303
304
1.61k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3.38k
        return Status::OK();
318
3.38k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.30k
                            const ColumnPtr& col_right_ptr) const {
275
1.30k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.30k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.30k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.30k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.30k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.30k
        if (!left_is_const && !right_is_const) {
284
103
            auto col_res = ColumnUInt8::create();
285
286
103
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
103
            vec_res.resize(col_left->get_data().size());
288
103
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
103
                              typename PrimitiveTypeTraits<PT>::CppType,
290
103
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
103
                                                     vec_res);
292
293
103
            block.replace_by_position(result, std::move(col_res));
294
1.20k
        } else if (!left_is_const && right_is_const) {
295
1.20k
            auto col_res = ColumnUInt8::create();
296
297
1.20k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.20k
            vec_res.resize(col_left->size());
299
1.20k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.20k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.20k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.20k
                                                       col_right->get_element(0), vec_res);
303
304
1.20k
            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.30k
        return Status::OK();
318
1.30k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
247
                            const ColumnPtr& col_right_ptr) const {
275
247
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
247
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
247
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
247
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
247
        DCHECK(!(left_is_const && right_is_const));
282
283
248
        if (!left_is_const && !right_is_const) {
284
41
            auto col_res = ColumnUInt8::create();
285
286
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
41
            vec_res.resize(col_left->get_data().size());
288
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
41
                              typename PrimitiveTypeTraits<PT>::CppType,
290
41
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
41
                                                     vec_res);
292
293
41
            block.replace_by_position(result, std::move(col_res));
294
207
        } else if (!left_is_const && right_is_const) {
295
207
            auto col_res = ColumnUInt8::create();
296
297
207
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
207
            vec_res.resize(col_left->size());
299
207
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
207
                              typename PrimitiveTypeTraits<PT>::CppType,
301
207
                              Op<PT>>::vector_constant(col_left->get_data(),
302
207
                                                       col_right->get_element(0), vec_res);
303
304
207
            block.replace_by_position(result, std::move(col_res));
305
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
247
        return Status::OK();
318
247
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
1
            auto col_res = ColumnUInt8::create();
296
297
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1
            vec_res.resize(col_left->size());
299
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1
                                                       col_right->get_element(0), vec_res);
303
304
1
            block.replace_by_position(result, std::move(col_res));
305
1
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1
                            const ColumnPtr& col_right_ptr) const {
275
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1
        DCHECK(!(left_is_const && right_is_const));
282
283
1
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1
        return Status::OK();
318
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
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
536
                            const ColumnPtr& col_right_ptr) const {
275
536
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
536
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
536
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
536
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
536
        DCHECK(!(left_is_const && right_is_const));
282
283
536
        if (!left_is_const && !right_is_const) {
284
37
            auto col_res = ColumnUInt8::create();
285
286
37
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
37
            vec_res.resize(col_left->get_data().size());
288
37
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
37
                              typename PrimitiveTypeTraits<PT>::CppType,
290
37
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
37
                                                     vec_res);
292
293
37
            block.replace_by_position(result, std::move(col_res));
294
499
        } else if (!left_is_const && right_is_const) {
295
499
            auto col_res = ColumnUInt8::create();
296
297
499
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
499
            vec_res.resize(col_left->size());
299
499
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
499
                              typename PrimitiveTypeTraits<PT>::CppType,
301
499
                              Op<PT>>::vector_constant(col_left->get_data(),
302
499
                                                       col_right->get_element(0), vec_res);
303
304
499
            block.replace_by_position(result, std::move(col_res));
305
499
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
536
        return Status::OK();
318
536
    }
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
18
                            const ColumnPtr& col_right_ptr) const {
275
18
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
18
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
18
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
18
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
18
        DCHECK(!(left_is_const && right_is_const));
282
283
18
        if (!left_is_const && !right_is_const) {
284
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
18
        } else if (!left_is_const && right_is_const) {
295
18
            auto col_res = ColumnUInt8::create();
296
297
18
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
18
            vec_res.resize(col_left->size());
299
18
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
18
                              typename PrimitiveTypeTraits<PT>::CppType,
301
18
                              Op<PT>>::vector_constant(col_left->get_data(),
302
18
                                                       col_right->get_element(0), vec_res);
303
304
18
            block.replace_by_position(result, std::move(col_res));
305
18
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
18
        return Status::OK();
318
18
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
497
                            const ColumnPtr& col_right_ptr) const {
275
497
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
497
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
497
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
497
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
497
        DCHECK(!(left_is_const && right_is_const));
282
283
497
        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
490
        } else if (!left_is_const && right_is_const) {
295
490
            auto col_res = ColumnUInt8::create();
296
297
490
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
490
            vec_res.resize(col_left->size());
299
490
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
490
                              typename PrimitiveTypeTraits<PT>::CppType,
301
490
                              Op<PT>>::vector_constant(col_left->get_data(),
302
490
                                                       col_right->get_element(0), vec_res);
303
304
490
            block.replace_by_position(result, std::move(col_res));
305
490
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
497
        return Status::OK();
318
497
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
147
                            const ColumnPtr& col_right_ptr) const {
275
147
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
147
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
147
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
147
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
147
        DCHECK(!(left_is_const && right_is_const));
282
283
147
        if (!left_is_const && !right_is_const) {
284
10
            auto col_res = ColumnUInt8::create();
285
286
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
10
            vec_res.resize(col_left->get_data().size());
288
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
10
                              typename PrimitiveTypeTraits<PT>::CppType,
290
10
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
10
                                                     vec_res);
292
293
10
            block.replace_by_position(result, std::move(col_res));
294
137
        } else if (!left_is_const && right_is_const) {
295
136
            auto col_res = ColumnUInt8::create();
296
297
136
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
136
            vec_res.resize(col_left->size());
299
136
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
136
                              typename PrimitiveTypeTraits<PT>::CppType,
301
136
                              Op<PT>>::vector_constant(col_left->get_data(),
302
136
                                                       col_right->get_element(0), vec_res);
303
304
136
            block.replace_by_position(result, std::move(col_res));
305
136
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
147
        return Status::OK();
318
147
    }
_ZNK5doris18FunctionComparisonINS_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
55
                            const ColumnPtr& col_right_ptr) const {
275
55
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
55
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
55
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
55
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
55
        DCHECK(!(left_is_const && right_is_const));
282
283
55
        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
55
        } else if (!left_is_const && right_is_const) {
295
55
            auto col_res = ColumnUInt8::create();
296
297
55
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
55
            vec_res.resize(col_left->size());
299
55
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
55
                              typename PrimitiveTypeTraits<PT>::CppType,
301
55
                              Op<PT>>::vector_constant(col_left->get_data(),
302
55
                                                       col_right->get_element(0), vec_res);
303
304
55
            block.replace_by_position(result, std::move(col_res));
305
55
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
55
        return Status::OK();
318
55
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
85
                            const ColumnPtr& col_right_ptr) const {
275
85
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
85
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
85
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
85
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
85
        DCHECK(!(left_is_const && right_is_const));
282
283
85
        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
85
        } else if (!left_is_const && right_is_const) {
295
85
            auto col_res = ColumnUInt8::create();
296
297
85
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
85
            vec_res.resize(col_left->size());
299
85
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
85
                              typename PrimitiveTypeTraits<PT>::CppType,
301
85
                              Op<PT>>::vector_constant(col_left->get_data(),
302
85
                                                       col_right->get_element(0), vec_res);
303
304
85
            block.replace_by_position(result, std::move(col_res));
305
85
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
85
        return Status::OK();
318
85
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.32k
                            const ColumnPtr& col_right_ptr) const {
275
1.32k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.32k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.32k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.32k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.32k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.32k
        if (!left_is_const && !right_is_const) {
284
5
            auto col_res = ColumnUInt8::create();
285
286
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
5
            vec_res.resize(col_left->get_data().size());
288
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
5
                              typename PrimitiveTypeTraits<PT>::CppType,
290
5
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
5
                                                     vec_res);
292
293
5
            block.replace_by_position(result, std::move(col_res));
294
1.31k
        } else if (!left_is_const && right_is_const) {
295
1.31k
            auto col_res = ColumnUInt8::create();
296
297
1.31k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.31k
            vec_res.resize(col_left->size());
299
1.31k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.31k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.31k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.31k
                                                       col_right->get_element(0), vec_res);
303
304
1.31k
            block.replace_by_position(result, std::move(col_res));
305
1.31k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.32k
        return Status::OK();
318
1.32k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
155
                            const ColumnPtr& col_right_ptr) const {
275
155
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
155
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
155
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
155
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
155
        DCHECK(!(left_is_const && right_is_const));
282
283
155
        if (!left_is_const && !right_is_const) {
284
17
            auto col_res = ColumnUInt8::create();
285
286
17
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
17
            vec_res.resize(col_left->get_data().size());
288
17
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
17
                              typename PrimitiveTypeTraits<PT>::CppType,
290
17
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
17
                                                     vec_res);
292
293
17
            block.replace_by_position(result, std::move(col_res));
294
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
155
        return Status::OK();
318
155
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
8
                            const ColumnPtr& col_right_ptr) const {
275
8
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
8
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
8
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
8
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
8
        DCHECK(!(left_is_const && right_is_const));
282
283
8
        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
8
        } else if (!left_is_const && right_is_const) {
295
8
            auto col_res = ColumnUInt8::create();
296
297
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
8
            vec_res.resize(col_left->size());
299
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
8
                              typename PrimitiveTypeTraits<PT>::CppType,
301
8
                              Op<PT>>::vector_constant(col_left->get_data(),
302
8
                                                       col_right->get_element(0), vec_res);
303
304
8
            block.replace_by_position(result, std::move(col_res));
305
8
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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
        return Status::OK();
318
8
    }
_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
26
                            const ColumnPtr& col_right_ptr) const {
275
26
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
26
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
26
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
26
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
26
        DCHECK(!(left_is_const && right_is_const));
282
283
26
        if (!left_is_const && !right_is_const) {
284
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
20
        } 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
26
        return Status::OK();
318
26
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
177
                            const ColumnPtr& col_right_ptr) const {
275
177
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
177
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
177
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
177
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
177
        DCHECK(!(left_is_const && right_is_const));
282
283
177
        if (!left_is_const && !right_is_const) {
284
75
            auto col_res = ColumnUInt8::create();
285
286
75
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
75
            vec_res.resize(col_left->get_data().size());
288
75
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
75
                              typename PrimitiveTypeTraits<PT>::CppType,
290
75
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
75
                                                     vec_res);
292
293
75
            block.replace_by_position(result, std::move(col_res));
294
102
        } else if (!left_is_const && right_is_const) {
295
102
            auto col_res = ColumnUInt8::create();
296
297
102
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
102
            vec_res.resize(col_left->size());
299
102
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
102
                              typename PrimitiveTypeTraits<PT>::CppType,
301
102
                              Op<PT>>::vector_constant(col_left->get_data(),
302
102
                                                       col_right->get_element(0), vec_res);
303
304
102
            block.replace_by_position(result, std::move(col_res));
305
102
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
177
        return Status::OK();
318
177
    }
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.05k
                            const ColumnPtr& col_right_ptr) const {
275
2.05k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.05k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.05k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.05k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.05k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.05k
        if (!left_is_const && !right_is_const) {
284
1.71k
            auto col_res = ColumnUInt8::create();
285
286
1.71k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.71k
            vec_res.resize(col_left->get_data().size());
288
1.71k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.71k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.71k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.71k
                                                     vec_res);
292
293
1.71k
            block.replace_by_position(result, std::move(col_res));
294
1.71k
        } else if (!left_is_const && right_is_const) {
295
340
            auto col_res = ColumnUInt8::create();
296
297
340
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
340
            vec_res.resize(col_left->size());
299
340
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
340
                              typename PrimitiveTypeTraits<PT>::CppType,
301
340
                              Op<PT>>::vector_constant(col_left->get_data(),
302
340
                                                       col_right->get_element(0), vec_res);
303
304
340
            block.replace_by_position(result, std::move(col_res));
305
340
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2.05k
        return Status::OK();
318
2.05k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
273
                            const ColumnPtr& col_right_ptr) const {
275
273
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
273
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
273
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
273
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
273
        DCHECK(!(left_is_const && right_is_const));
282
283
273
        if (!left_is_const && !right_is_const) {
284
214
            auto col_res = ColumnUInt8::create();
285
286
214
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
214
            vec_res.resize(col_left->get_data().size());
288
214
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
214
                              typename PrimitiveTypeTraits<PT>::CppType,
290
214
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
214
                                                     vec_res);
292
293
214
            block.replace_by_position(result, std::move(col_res));
294
214
        } else if (!left_is_const && right_is_const) {
295
59
            auto col_res = ColumnUInt8::create();
296
297
59
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
59
            vec_res.resize(col_left->size());
299
59
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
59
                              typename PrimitiveTypeTraits<PT>::CppType,
301
59
                              Op<PT>>::vector_constant(col_left->get_data(),
302
59
                                                       col_right->get_element(0), vec_res);
303
304
59
            block.replace_by_position(result, std::move(col_res));
305
59
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
273
        return Status::OK();
318
273
    }
_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
661
                            const ColumnPtr& col_right_ptr) const {
275
661
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
661
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
661
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
661
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
661
        DCHECK(!(left_is_const && right_is_const));
282
283
661
        if (!left_is_const && !right_is_const) {
284
622
            auto col_res = ColumnUInt8::create();
285
286
622
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
622
            vec_res.resize(col_left->get_data().size());
288
622
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
622
                              typename PrimitiveTypeTraits<PT>::CppType,
290
622
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
622
                                                     vec_res);
292
293
622
            block.replace_by_position(result, std::move(col_res));
294
622
        } 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
661
        return Status::OK();
318
661
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_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
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
20
            auto col_res = ColumnUInt8::create();
296
297
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
20
            vec_res.resize(col_left->size());
299
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
20
                              typename PrimitiveTypeTraits<PT>::CppType,
301
20
                              Op<PT>>::vector_constant(col_left->get_data(),
302
20
                                                       col_right->get_element(0), vec_res);
303
304
20
            block.replace_by_position(result, std::move(col_res));
305
20
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
661
                            const ColumnPtr& col_right_ptr) const {
275
661
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
661
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
661
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
661
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
661
        DCHECK(!(left_is_const && right_is_const));
282
283
661
        if (!left_is_const && !right_is_const) {
284
117
            auto col_res = ColumnUInt8::create();
285
286
117
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
117
            vec_res.resize(col_left->get_data().size());
288
117
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
117
                              typename PrimitiveTypeTraits<PT>::CppType,
290
117
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
117
                                                     vec_res);
292
293
117
            block.replace_by_position(result, std::move(col_res));
294
544
        } else if (!left_is_const && right_is_const) {
295
544
            auto col_res = ColumnUInt8::create();
296
297
544
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
544
            vec_res.resize(col_left->size());
299
544
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
544
                              typename PrimitiveTypeTraits<PT>::CppType,
301
544
                              Op<PT>>::vector_constant(col_left->get_data(),
302
544
                                                       col_right->get_element(0), vec_res);
303
304
544
            block.replace_by_position(result, std::move(col_res));
305
544
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
661
        return Status::OK();
318
661
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
669
                            const ColumnPtr& col_right_ptr) const {
275
669
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
669
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
669
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
669
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
669
        DCHECK(!(left_is_const && right_is_const));
282
283
669
        if (!left_is_const && !right_is_const) {
284
189
            auto col_res = ColumnUInt8::create();
285
286
189
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
189
            vec_res.resize(col_left->get_data().size());
288
189
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
189
                              typename PrimitiveTypeTraits<PT>::CppType,
290
189
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
189
                                                     vec_res);
292
293
189
            block.replace_by_position(result, std::move(col_res));
294
480
        } else if (!left_is_const && right_is_const) {
295
480
            auto col_res = ColumnUInt8::create();
296
297
480
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
480
            vec_res.resize(col_left->size());
299
480
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
480
                              typename PrimitiveTypeTraits<PT>::CppType,
301
480
                              Op<PT>>::vector_constant(col_left->get_data(),
302
480
                                                       col_right->get_element(0), vec_res);
303
304
480
            block.replace_by_position(result, std::move(col_res));
305
480
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
669
        return Status::OK();
318
669
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
190
                            const ColumnPtr& col_right_ptr) const {
275
190
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
190
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
190
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
190
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
190
        DCHECK(!(left_is_const && right_is_const));
282
283
190
        if (!left_is_const && !right_is_const) {
284
173
            auto col_res = ColumnUInt8::create();
285
286
173
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
173
            vec_res.resize(col_left->get_data().size());
288
173
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
173
                              typename PrimitiveTypeTraits<PT>::CppType,
290
173
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
173
                                                     vec_res);
292
293
173
            block.replace_by_position(result, std::move(col_res));
294
173
        } else if (!left_is_const && right_is_const) {
295
17
            auto col_res = ColumnUInt8::create();
296
297
17
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
17
            vec_res.resize(col_left->size());
299
17
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
17
                              typename PrimitiveTypeTraits<PT>::CppType,
301
17
                              Op<PT>>::vector_constant(col_left->get_data(),
302
17
                                                       col_right->get_element(0), vec_res);
303
304
17
            block.replace_by_position(result, std::move(col_res));
305
17
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
190
        return Status::OK();
318
190
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
16
                            const ColumnPtr& col_right_ptr) const {
275
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
16
        DCHECK(!(left_is_const && right_is_const));
282
283
16
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
16
        return Status::OK();
318
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
16
                            const ColumnPtr& col_right_ptr) const {
275
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
16
        DCHECK(!(left_is_const && right_is_const));
282
283
16
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
16
        return Status::OK();
318
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
118
                            const ColumnPtr& col_right_ptr) const {
275
118
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
118
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
118
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
118
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
118
        DCHECK(!(left_is_const && right_is_const));
282
283
118
        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
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
118
        return Status::OK();
318
118
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
335
                            const ColumnPtr& col_right_ptr) const {
275
335
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
335
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
335
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
335
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
335
        DCHECK(!(left_is_const && right_is_const));
282
283
335
        if (!left_is_const && !right_is_const) {
284
141
            auto col_res = ColumnUInt8::create();
285
286
141
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
141
            vec_res.resize(col_left->get_data().size());
288
141
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
141
                              typename PrimitiveTypeTraits<PT>::CppType,
290
141
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
141
                                                     vec_res);
292
293
141
            block.replace_by_position(result, std::move(col_res));
294
194
        } else if (!left_is_const && right_is_const) {
295
194
            auto col_res = ColumnUInt8::create();
296
297
194
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
194
            vec_res.resize(col_left->size());
299
194
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
194
                              typename PrimitiveTypeTraits<PT>::CppType,
301
194
                              Op<PT>>::vector_constant(col_left->get_data(),
302
194
                                                       col_right->get_element(0), vec_res);
303
304
194
            block.replace_by_position(result, std::move(col_res));
305
194
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
335
        return Status::OK();
318
335
    }
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
27
                            const ColumnPtr& col_right_ptr) const {
275
27
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
27
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
27
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
27
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
27
        DCHECK(!(left_is_const && right_is_const));
282
283
27
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
27
        } else if (!left_is_const && right_is_const) {
295
27
            auto col_res = ColumnUInt8::create();
296
297
27
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
27
            vec_res.resize(col_left->size());
299
27
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
27
                              typename PrimitiveTypeTraits<PT>::CppType,
301
27
                              Op<PT>>::vector_constant(col_left->get_data(),
302
27
                                                       col_right->get_element(0), vec_res);
303
304
27
            block.replace_by_position(result, std::move(col_res));
305
27
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
27
        return Status::OK();
318
27
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_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
436
            auto col_res = ColumnUInt8::create();
285
286
436
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
436
            vec_res.resize(col_left->get_data().size());
288
436
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
436
                              typename PrimitiveTypeTraits<PT>::CppType,
290
436
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
436
                                                     vec_res);
292
293
436
            block.replace_by_position(result, std::move(col_res));
294
436
        } else if (!left_is_const && right_is_const) {
295
125
            auto col_res = ColumnUInt8::create();
296
297
125
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
125
            vec_res.resize(col_left->size());
299
125
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
125
                              typename PrimitiveTypeTraits<PT>::CppType,
301
125
                              Op<PT>>::vector_constant(col_left->get_data(),
302
125
                                                       col_right->get_element(0), vec_res);
303
304
125
            block.replace_by_position(result, std::move(col_res));
305
125
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
44
                            const ColumnPtr& col_right_ptr) const {
275
44
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
44
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
44
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
44
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
44
        DCHECK(!(left_is_const && right_is_const));
282
283
44
        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
44
        } else if (!left_is_const && right_is_const) {
295
44
            auto col_res = ColumnUInt8::create();
296
297
44
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
44
            vec_res.resize(col_left->size());
299
44
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
44
                              typename PrimitiveTypeTraits<PT>::CppType,
301
44
                              Op<PT>>::vector_constant(col_left->get_data(),
302
44
                                                       col_right->get_element(0), vec_res);
303
304
44
            block.replace_by_position(result, std::move(col_res));
305
44
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
44
        return Status::OK();
318
44
    }
_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
62
                            const ColumnPtr& col_right_ptr) const {
275
62
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
62
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
62
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
62
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
62
        DCHECK(!(left_is_const && right_is_const));
282
283
62
        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
61
        } else if (!left_is_const && right_is_const) {
295
61
            auto col_res = ColumnUInt8::create();
296
297
61
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
61
            vec_res.resize(col_left->size());
299
61
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
61
                              typename PrimitiveTypeTraits<PT>::CppType,
301
61
                              Op<PT>>::vector_constant(col_left->get_data(),
302
61
                                                       col_right->get_element(0), vec_res);
303
304
61
            block.replace_by_position(result, std::move(col_res));
305
61
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
62
        return Status::OK();
318
62
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
124
                            const ColumnPtr& col_right_ptr) const {
275
124
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
124
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
124
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
124
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
124
        DCHECK(!(left_is_const && right_is_const));
282
283
124
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
124
        } else if (!left_is_const && right_is_const) {
295
124
            auto col_res = ColumnUInt8::create();
296
297
124
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
124
            vec_res.resize(col_left->size());
299
124
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
124
                              typename PrimitiveTypeTraits<PT>::CppType,
301
124
                              Op<PT>>::vector_constant(col_left->get_data(),
302
124
                                                       col_right->get_element(0), vec_res);
303
304
124
            block.replace_by_position(result, std::move(col_res));
305
124
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
124
        return Status::OK();
318
124
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.40k
                            const ColumnPtr& col_right_ptr) const {
275
1.40k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.40k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.40k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.40k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.40k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.40k
        if (!left_is_const && !right_is_const) {
284
37
            auto col_res = ColumnUInt8::create();
285
286
37
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
37
            vec_res.resize(col_left->get_data().size());
288
37
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
37
                              typename PrimitiveTypeTraits<PT>::CppType,
290
37
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
37
                                                     vec_res);
292
293
37
            block.replace_by_position(result, std::move(col_res));
294
1.36k
        } else if (!left_is_const && right_is_const) {
295
1.36k
            auto col_res = ColumnUInt8::create();
296
297
1.36k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.36k
            vec_res.resize(col_left->size());
299
1.36k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.36k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.36k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.36k
                                                       col_right->get_element(0), vec_res);
303
304
1.36k
            block.replace_by_position(result, std::move(col_res));
305
1.36k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.40k
        return Status::OK();
318
1.40k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
307
                            const ColumnPtr& col_right_ptr) const {
275
307
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
307
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
307
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
307
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
307
        DCHECK(!(left_is_const && right_is_const));
282
283
307
        if (!left_is_const && !right_is_const) {
284
77
            auto col_res = ColumnUInt8::create();
285
286
77
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
77
            vec_res.resize(col_left->get_data().size());
288
77
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
77
                              typename PrimitiveTypeTraits<PT>::CppType,
290
77
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
77
                                                     vec_res);
292
293
77
            block.replace_by_position(result, std::move(col_res));
294
230
        } else if (!left_is_const && right_is_const) {
295
230
            auto col_res = ColumnUInt8::create();
296
297
230
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
230
            vec_res.resize(col_left->size());
299
230
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
230
                              typename PrimitiveTypeTraits<PT>::CppType,
301
230
                              Op<PT>>::vector_constant(col_left->get_data(),
302
230
                                                       col_right->get_element(0), vec_res);
303
304
230
            block.replace_by_position(result, std::move(col_res));
305
230
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
307
        return Status::OK();
318
307
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
7
                            const ColumnPtr& col_right_ptr) const {
275
7
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
7
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
7
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
7
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
7
        DCHECK(!(left_is_const && right_is_const));
282
283
7
        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
7
        } else if (!left_is_const && right_is_const) {
295
7
            auto col_res = ColumnUInt8::create();
296
297
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
7
            vec_res.resize(col_left->size());
299
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
7
                              typename PrimitiveTypeTraits<PT>::CppType,
301
7
                              Op<PT>>::vector_constant(col_left->get_data(),
302
7
                                                       col_right->get_element(0), vec_res);
303
304
7
            block.replace_by_position(result, std::move(col_res));
305
7
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
7
        return Status::OK();
318
7
    }
_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
20
                            const ColumnPtr& col_right_ptr) const {
275
20
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
20
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
20
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
20
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
20
        DCHECK(!(left_is_const && right_is_const));
282
283
20
        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
20
        } 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
20
        return Status::OK();
318
20
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
125
                            const ColumnPtr& col_right_ptr) const {
275
125
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
125
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
125
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
125
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
125
        DCHECK(!(left_is_const && right_is_const));
282
283
125
        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
105
        } else if (!left_is_const && right_is_const) {
295
105
            auto col_res = ColumnUInt8::create();
296
297
105
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
105
            vec_res.resize(col_left->size());
299
105
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
105
                              typename PrimitiveTypeTraits<PT>::CppType,
301
105
                              Op<PT>>::vector_constant(col_left->get_data(),
302
105
                                                       col_right->get_element(0), vec_res);
303
304
105
            block.replace_by_position(result, std::move(col_res));
305
105
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
125
        return Status::OK();
318
125
    }
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
3.20k
                           const ColumnWithTypeAndName& col_right) const {
322
3.20k
        auto call = [&](const auto& type) -> bool {
323
3.20k
            using DispatchType = std::decay_t<decltype(type)>;
324
3.20k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
3.20k
                    block, result, col_left, col_right);
326
3.20k
            return true;
327
3.20k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
147
        auto call = [&](const auto& type) -> bool {
323
147
            using DispatchType = std::decay_t<decltype(type)>;
324
147
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
147
                    block, result, col_left, col_right);
326
147
            return true;
327
147
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
162
        auto call = [&](const auto& type) -> bool {
323
162
            using DispatchType = std::decay_t<decltype(type)>;
324
162
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
162
                    block, result, col_left, col_right);
326
162
            return true;
327
162
        };
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
909
        auto call = [&](const auto& type) -> bool {
323
909
            using DispatchType = std::decay_t<decltype(type)>;
324
909
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
909
                    block, result, col_left, col_right);
326
909
            return true;
327
909
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
30
        auto call = [&](const auto& type) -> bool {
323
30
            using DispatchType = std::decay_t<decltype(type)>;
324
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
30
                    block, result, col_left, col_right);
326
30
            return true;
327
30
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
61
        auto call = [&](const auto& type) -> bool {
323
61
            using DispatchType = std::decay_t<decltype(type)>;
324
61
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
61
                    block, result, col_left, col_right);
326
61
            return true;
327
61
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
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_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
12
        auto call = [&](const auto& type) -> bool {
323
12
            using DispatchType = std::decay_t<decltype(type)>;
324
12
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
12
                    block, result, col_left, col_right);
326
12
            return true;
327
12
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
66
        auto call = [&](const auto& type) -> bool {
323
66
            using DispatchType = std::decay_t<decltype(type)>;
324
66
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
66
                    block, result, col_left, col_right);
326
66
            return true;
327
66
        };
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
865
        auto call = [&](const auto& type) -> bool {
323
865
            using DispatchType = std::decay_t<decltype(type)>;
324
865
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
865
                    block, result, col_left, col_right);
326
865
            return true;
327
865
        };
_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
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_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
59
        auto call = [&](const auto& type) -> bool {
323
59
            using DispatchType = std::decay_t<decltype(type)>;
324
59
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
59
                    block, result, col_left, col_right);
326
59
            return true;
327
59
        };
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
178
        auto call = [&](const auto& type) -> bool {
323
178
            using DispatchType = std::decay_t<decltype(type)>;
324
178
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
178
                    block, result, col_left, col_right);
326
178
            return true;
327
178
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
202
        auto call = [&](const auto& type) -> bool {
323
202
            using DispatchType = std::decay_t<decltype(type)>;
324
202
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
202
                    block, result, col_left, col_right);
326
202
            return true;
327
202
        };
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
235
        auto call = [&](const auto& type) -> bool {
323
235
            using DispatchType = std::decay_t<decltype(type)>;
324
235
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
235
                    block, result, col_left, col_right);
326
235
            return true;
327
235
        };
_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
10
        auto call = [&](const auto& type) -> bool {
323
10
            using DispatchType = std::decay_t<decltype(type)>;
324
10
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
10
                    block, result, col_left, col_right);
326
10
            return true;
327
10
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
58
        auto call = [&](const auto& type) -> bool {
323
58
            using DispatchType = std::decay_t<decltype(type)>;
324
58
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
58
                    block, result, col_left, col_right);
326
58
            return true;
327
58
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_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
45
        auto call = [&](const auto& type) -> bool {
323
45
            using DispatchType = std::decay_t<decltype(type)>;
324
45
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
45
                    block, result, col_left, col_right);
326
45
            return true;
327
45
        };
_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
3.20k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
3.20k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
3.20k
        return Status::OK();
340
3.20k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.24k
                           const ColumnWithTypeAndName& col_right) const {
322
1.24k
        auto call = [&](const auto& type) -> bool {
323
1.24k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.24k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.24k
                    block, result, col_left, col_right);
326
1.24k
            return true;
327
1.24k
        };
328
329
1.24k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
1.24k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
1.24k
        return Status::OK();
340
1.24k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
119
                           const ColumnWithTypeAndName& col_right) const {
322
119
        auto call = [&](const auto& type) -> bool {
323
119
            using DispatchType = std::decay_t<decltype(type)>;
324
119
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
119
                    block, result, col_left, col_right);
326
119
            return true;
327
119
        };
328
329
119
        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
119
        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
119
        return Status::OK();
340
119
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
945
                           const ColumnWithTypeAndName& col_right) const {
322
945
        auto call = [&](const auto& type) -> bool {
323
945
            using DispatchType = std::decay_t<decltype(type)>;
324
945
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
945
                    block, result, col_left, col_right);
326
945
            return true;
327
945
        };
328
329
945
        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
945
        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
945
        return Status::OK();
340
945
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
143
                           const ColumnWithTypeAndName& col_right) const {
322
143
        auto call = [&](const auto& type) -> bool {
323
143
            using DispatchType = std::decay_t<decltype(type)>;
324
143
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
143
                    block, result, col_left, col_right);
326
143
            return true;
327
143
        };
328
329
143
        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
143
        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
143
        return Status::OK();
340
143
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
616
                           const ColumnWithTypeAndName& col_right) const {
322
616
        auto call = [&](const auto& type) -> bool {
323
616
            using DispatchType = std::decay_t<decltype(type)>;
324
616
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
616
                    block, result, col_left, col_right);
326
616
            return true;
327
616
        };
328
329
616
        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
616
        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
616
        return Status::OK();
340
616
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
135
                           const ColumnWithTypeAndName& col_right) const {
322
135
        auto call = [&](const auto& type) -> bool {
323
135
            using DispatchType = std::decay_t<decltype(type)>;
324
135
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
135
                    block, result, col_left, col_right);
326
135
            return true;
327
135
        };
328
329
135
        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
135
        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
135
        return Status::OK();
340
135
    }
341
342
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
343
12.7k
                          const IColumn* c1) const {
344
12.7k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
12.7k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
12.7k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
12.7k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
12.7k
        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
12.7k
        DCHECK(!(c0_const && c1_const));
353
12.7k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
12.7k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
12.7k
        ColumnString::Offset c0_const_size = 0;
356
12.7k
        ColumnString::Offset c1_const_size = 0;
357
358
12.7k
        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
12.7k
        if (c1_const) {
372
11.9k
            const ColumnString* c1_const_string =
373
11.9k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
11.9k
            if (c1_const_string) {
376
11.9k
                c1_const_chars = &c1_const_string->get_chars();
377
11.9k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
11.9k
        }
383
384
12.7k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
12.7k
        auto c_res = ColumnUInt8::create();
387
12.7k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
12.7k
        vec_res.resize(c0->size());
389
390
12.7k
        if (c0_string && c1_string) {
391
819
            StringImpl::string_vector_string_vector(
392
819
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
819
                    c1_string->get_offsets(), vec_res);
394
11.9k
        } else if (c0_string && c1_const) {
395
11.9k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
11.9k
                                               *c1_const_chars, c1_const_size, vec_res);
397
11.9k
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
1
        } else {
402
1
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
1
                                        c0->get_name(), c1->get_name(), name);
404
1
        }
405
12.7k
        block.replace_by_position(result, std::move(c_res));
406
12.7k
        return Status::OK();
407
12.7k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
11.5k
                          const IColumn* c1) const {
344
11.5k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
11.5k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
11.5k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
11.5k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
11.5k
        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
11.5k
        DCHECK(!(c0_const && c1_const));
353
11.5k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
11.5k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
11.5k
        ColumnString::Offset c0_const_size = 0;
356
11.5k
        ColumnString::Offset c1_const_size = 0;
357
358
11.5k
        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
11.5k
        if (c1_const) {
372
11.1k
            const ColumnString* c1_const_string =
373
11.1k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
11.1k
            if (c1_const_string) {
376
11.1k
                c1_const_chars = &c1_const_string->get_chars();
377
11.1k
                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
11.1k
        }
383
384
11.5k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
11.5k
        auto c_res = ColumnUInt8::create();
387
11.5k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
11.5k
        vec_res.resize(c0->size());
389
390
11.5k
        if (c0_string && c1_string) {
391
436
            StringImpl::string_vector_string_vector(
392
436
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
436
                    c1_string->get_offsets(), vec_res);
394
11.1k
        } else if (c0_string && c1_const) {
395
11.1k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
11.1k
                                               *c1_const_chars, c1_const_size, vec_res);
397
11.1k
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
1
        } else {
402
1
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
1
                                        c0->get_name(), c1->get_name(), name);
404
1
        }
405
11.5k
        block.replace_by_position(result, std::move(c_res));
406
11.5k
        return Status::OK();
407
11.5k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
119
                          const IColumn* c1) const {
344
119
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
119
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
119
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
119
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
119
        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
119
        DCHECK(!(c0_const && c1_const));
353
119
        const ColumnString::Chars* c0_const_chars = nullptr;
354
119
        const ColumnString::Chars* c1_const_chars = nullptr;
355
119
        ColumnString::Offset c0_const_size = 0;
356
119
        ColumnString::Offset c1_const_size = 0;
357
358
119
        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
119
        if (c1_const) {
372
118
            const ColumnString* c1_const_string =
373
118
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
118
            if (c1_const_string) {
376
118
                c1_const_chars = &c1_const_string->get_chars();
377
118
                c1_const_size = c1_const_string->get_offsets()[0];
378
118
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
118
        }
383
384
119
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
119
        auto c_res = ColumnUInt8::create();
387
119
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
119
        vec_res.resize(c0->size());
389
390
119
        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
118
        } else if (c0_string && c1_const) {
395
118
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
118
                                               *c1_const_chars, c1_const_size, vec_res);
397
118
        } 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
119
        block.replace_by_position(result, std::move(c_res));
406
119
        return Status::OK();
407
119
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
198
                          const IColumn* c1) const {
344
198
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
198
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
198
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
198
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
198
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
198
        DCHECK(!(c0_const && c1_const));
353
198
        const ColumnString::Chars* c0_const_chars = nullptr;
354
198
        const ColumnString::Chars* c1_const_chars = nullptr;
355
198
        ColumnString::Offset c0_const_size = 0;
356
198
        ColumnString::Offset c1_const_size = 0;
357
358
198
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
198
        if (c1_const) {
372
196
            const ColumnString* c1_const_string =
373
196
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
196
            if (c1_const_string) {
376
196
                c1_const_chars = &c1_const_string->get_chars();
377
196
                c1_const_size = c1_const_string->get_offsets()[0];
378
196
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
196
        }
383
384
198
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
198
        auto c_res = ColumnUInt8::create();
387
198
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
198
        vec_res.resize(c0->size());
389
390
198
        if (c0_string && c1_string) {
391
2
            StringImpl::string_vector_string_vector(
392
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
2
                    c1_string->get_offsets(), vec_res);
394
196
        } else if (c0_string && c1_const) {
395
196
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
196
                                               *c1_const_chars, c1_const_size, vec_res);
397
196
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
198
        block.replace_by_position(result, std::move(c_res));
406
198
        return Status::OK();
407
198
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
238
                          const IColumn* c1) const {
344
238
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
238
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
238
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
238
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
238
        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
238
        DCHECK(!(c0_const && c1_const));
353
238
        const ColumnString::Chars* c0_const_chars = nullptr;
354
238
        const ColumnString::Chars* c1_const_chars = nullptr;
355
238
        ColumnString::Offset c0_const_size = 0;
356
238
        ColumnString::Offset c1_const_size = 0;
357
358
238
        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
238
        if (c1_const) {
372
195
            const ColumnString* c1_const_string =
373
195
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
195
            if (c1_const_string) {
376
195
                c1_const_chars = &c1_const_string->get_chars();
377
195
                c1_const_size = c1_const_string->get_offsets()[0];
378
195
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
195
        }
383
384
238
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
238
        auto c_res = ColumnUInt8::create();
387
238
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
238
        vec_res.resize(c0->size());
389
390
238
        if (c0_string && c1_string) {
391
43
            StringImpl::string_vector_string_vector(
392
43
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
43
                    c1_string->get_offsets(), vec_res);
394
195
        } else if (c0_string && c1_const) {
395
195
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
195
                                               *c1_const_chars, c1_const_size, vec_res);
397
195
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
238
        block.replace_by_position(result, std::move(c_res));
406
238
        return Status::OK();
407
238
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
460
                          const IColumn* c1) const {
344
460
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
460
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
460
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
460
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
460
        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
460
        DCHECK(!(c0_const && c1_const));
353
460
        const ColumnString::Chars* c0_const_chars = nullptr;
354
460
        const ColumnString::Chars* c1_const_chars = nullptr;
355
460
        ColumnString::Offset c0_const_size = 0;
356
460
        ColumnString::Offset c1_const_size = 0;
357
358
460
        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
460
        if (c1_const) {
372
123
            const ColumnString* c1_const_string =
373
123
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
123
            if (c1_const_string) {
376
123
                c1_const_chars = &c1_const_string->get_chars();
377
123
                c1_const_size = c1_const_string->get_offsets()[0];
378
123
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
123
        }
383
384
460
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
460
        auto c_res = ColumnUInt8::create();
387
460
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
460
        vec_res.resize(c0->size());
389
390
460
        if (c0_string && c1_string) {
391
337
            StringImpl::string_vector_string_vector(
392
337
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
337
                    c1_string->get_offsets(), vec_res);
394
337
        } else if (c0_string && c1_const) {
395
123
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
123
                                               *c1_const_chars, c1_const_size, vec_res);
397
123
        } 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
460
        block.replace_by_position(result, std::move(c_res));
406
460
        return Status::OK();
407
460
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
179
                          const IColumn* c1) const {
344
179
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
179
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
179
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
179
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
179
        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
179
        DCHECK(!(c0_const && c1_const));
353
179
        const ColumnString::Chars* c0_const_chars = nullptr;
354
179
        const ColumnString::Chars* c1_const_chars = nullptr;
355
179
        ColumnString::Offset c0_const_size = 0;
356
179
        ColumnString::Offset c1_const_size = 0;
357
358
179
        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
179
        if (c1_const) {
372
179
            const ColumnString* c1_const_string =
373
179
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
179
            if (c1_const_string) {
376
179
                c1_const_chars = &c1_const_string->get_chars();
377
179
                c1_const_size = c1_const_string->get_offsets()[0];
378
179
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
179
        }
383
384
179
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
179
        auto c_res = ColumnUInt8::create();
387
179
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
179
        vec_res.resize(c0->size());
389
390
179
        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
179
        } else if (c0_string && c1_const) {
395
179
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
179
                                               *c1_const_chars, c1_const_size, vec_res);
397
179
        } 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
179
        block.replace_by_position(result, std::move(c_res));
406
179
        return Status::OK();
407
179
    }
408
409
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
410
92
                                         const IColumn* c1) const {
411
92
        bool c0_const = is_column_const(*c0);
412
92
        bool c1_const = is_column_const(*c1);
413
414
92
        DCHECK(!(c0_const && c1_const));
415
416
92
        auto c_res = ColumnUInt8::create();
417
92
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
92
        vec_res.resize(c0->size());
419
420
92
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
92
        } else if (c1_const) {
423
83
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
83
        } else {
425
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
9
        }
427
428
92
        block.replace_by_position(result, std::move(c_res));
429
92
    }
_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
22
                                         const IColumn* c1) const {
411
22
        bool c0_const = is_column_const(*c0);
412
22
        bool c1_const = is_column_const(*c1);
413
414
22
        DCHECK(!(c0_const && c1_const));
415
416
22
        auto c_res = ColumnUInt8::create();
417
22
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
22
        vec_res.resize(c0->size());
419
420
22
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
22
        } else if (c1_const) {
423
21
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
21
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
22
        block.replace_by_position(result, std::move(c_res));
429
22
    }
_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
25
                                         const IColumn* c1) const {
411
25
        bool c0_const = is_column_const(*c0);
412
25
        bool c1_const = is_column_const(*c1);
413
414
25
        DCHECK(!(c0_const && c1_const));
415
416
25
        auto c_res = ColumnUInt8::create();
417
25
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
25
        vec_res.resize(c0->size());
419
420
25
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
25
        } else if (c1_const) {
423
25
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
25
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
25
        block.replace_by_position(result, std::move(c_res));
429
25
    }
430
431
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
432
92
                           const ColumnWithTypeAndName& c1) const {
433
92
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
92
        return Status::OK();
435
92
    }
_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
22
                           const ColumnWithTypeAndName& c1) const {
433
22
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
22
        return Status::OK();
435
22
    }
_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
25
                           const ColumnWithTypeAndName& c1) const {
433
25
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
25
        return Status::OK();
435
25
    }
436
437
public:
438
219
    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
38
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
81
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
438
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
1
    String get_name() const override { return name; }
439
440
295k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
250k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
1.14k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
440
4.87k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
18.3k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
440
2.74k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
18.0k
    size_t get_number_of_arguments() const override { return 2; }
441
442
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
443
295k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
295k
        return std::make_shared<DataTypeUInt8>();
445
295k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
250k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
250k
        return std::make_shared<DataTypeUInt8>();
445
250k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
1.14k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
1.14k
        return std::make_shared<DataTypeUInt8>();
445
1.14k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
4.87k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
4.87k
        return std::make_shared<DataTypeUInt8>();
445
4.87k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
18.3k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
18.3k
        return std::make_shared<DataTypeUInt8>();
445
18.3k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
2.74k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
2.74k
        return std::make_shared<DataTypeUInt8>();
445
2.74k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
18.0k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
18.0k
        return std::make_shared<DataTypeUInt8>();
445
18.0k
    }
446
447
    Status evaluate_inverted_index(
448
            const ColumnsWithTypeAndName& arguments,
449
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
450
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
451
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
452
1.74k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
1.74k
        DCHECK(arguments.size() == 1);
454
1.74k
        DCHECK(data_type_with_names.size() == 1);
455
1.74k
        DCHECK(iterators.size() == 1);
456
1.74k
        auto* iter = iterators[0];
457
1.74k
        auto data_type_with_name = data_type_with_names[0];
458
1.74k
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
1.74k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
428
            return Status::OK();
463
428
        }
464
1.31k
        segment_v2::InvertedIndexQueryType query_type;
465
1.31k
        std::string_view name_view(name);
466
1.31k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
856
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
856
        } else if (name_view == NameLess::name) {
469
114
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
349
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
251
        } else if (name_view == NameGreater::name) {
473
113
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
138
        } else if (name_view == NameGreaterOrEquals::name) {
475
138
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
138
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
1.31k
        if (segment_v2::is_range_query(query_type) &&
481
1.31k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
171
            return Status::OK();
484
171
        }
485
1.14k
        Field param_value;
486
1.14k
        arguments[0].column->get(0, param_value);
487
1.14k
        if (param_value.is_null()) {
488
2
            return Status::OK();
489
2
        }
490
1.14k
        auto param_type = arguments[0].type->get_primitive_type();
491
1.14k
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
1.14k
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
1.14k
                param_type, &param_value, query_param));
494
495
1.14k
        segment_v2::InvertedIndexParam param;
496
1.14k
        param.column_name = data_type_with_name.first;
497
1.14k
        param.column_type = data_type_with_name.second;
498
1.14k
        param.query_value = query_param->get_value();
499
1.14k
        param.query_type = query_type;
500
1.14k
        param.num_rows = num_rows;
501
1.14k
        param.roaring = std::make_shared<roaring::Roaring>();
502
1.14k
        param.analyzer_ctx = analyzer_ctx;
503
1.14k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
986
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
986
        if (iter->has_null()) {
506
982
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
982
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
982
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
982
        }
510
986
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
986
        bitmap_result = result;
512
986
        bitmap_result.mask_out_null();
513
514
986
        if (name_view == NameNotEquals::name) {
515
62
            roaring::Roaring full_result;
516
62
            full_result.addRange(0, num_rows);
517
62
            bitmap_result.op_not(&full_result);
518
62
        }
519
520
986
        return Status::OK();
521
986
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
860
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
860
        DCHECK(arguments.size() == 1);
454
860
        DCHECK(data_type_with_names.size() == 1);
455
860
        DCHECK(iterators.size() == 1);
456
860
        auto* iter = iterators[0];
457
860
        auto data_type_with_name = data_type_with_names[0];
458
860
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
860
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
72
            return Status::OK();
463
72
        }
464
788
        segment_v2::InvertedIndexQueryType query_type;
465
788
        std::string_view name_view(name);
466
788
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
786
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
786
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
2
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
2
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
2
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
2
        } else {
477
2
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
2
        }
479
480
786
        if (segment_v2::is_range_query(query_type) &&
481
786
            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
786
        Field param_value;
486
786
        arguments[0].column->get(0, param_value);
487
786
        if (param_value.is_null()) {
488
2
            return Status::OK();
489
2
        }
490
784
        auto param_type = arguments[0].type->get_primitive_type();
491
784
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
784
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
784
                param_type, &param_value, query_param));
494
495
784
        segment_v2::InvertedIndexParam param;
496
784
        param.column_name = data_type_with_name.first;
497
784
        param.column_type = data_type_with_name.second;
498
784
        param.query_value = query_param->get_value();
499
784
        param.query_type = query_type;
500
784
        param.num_rows = num_rows;
501
784
        param.roaring = std::make_shared<roaring::Roaring>();
502
784
        param.analyzer_ctx = analyzer_ctx;
503
784
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
733
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
735
        if (iter->has_null()) {
506
735
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
735
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
735
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
735
        }
510
733
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
733
        bitmap_result = result;
512
733
        bitmap_result.mask_out_null();
513
514
733
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
733
        return Status::OK();
521
733
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
77
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
77
        DCHECK(arguments.size() == 1);
454
77
        DCHECK(data_type_with_names.size() == 1);
455
77
        DCHECK(iterators.size() == 1);
456
77
        auto* iter = iterators[0];
457
77
        auto data_type_with_name = data_type_with_names[0];
458
77
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
77
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
8
            return Status::OK();
463
8
        }
464
69
        segment_v2::InvertedIndexQueryType query_type;
465
69
        std::string_view name_view(name);
466
70
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
70
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
18.4E
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
18.4E
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
18.4E
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
70
        if (segment_v2::is_range_query(query_type) &&
481
70
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
0
            return Status::OK();
484
0
        }
485
70
        Field param_value;
486
70
        arguments[0].column->get(0, param_value);
487
70
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
70
        auto param_type = arguments[0].type->get_primitive_type();
491
70
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
70
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
70
                param_type, &param_value, query_param));
494
495
70
        segment_v2::InvertedIndexParam param;
496
70
        param.column_name = data_type_with_name.first;
497
70
        param.column_type = data_type_with_name.second;
498
70
        param.query_value = query_param->get_value();
499
70
        param.query_type = query_type;
500
70
        param.num_rows = num_rows;
501
70
        param.roaring = std::make_shared<roaring::Roaring>();
502
70
        param.analyzer_ctx = analyzer_ctx;
503
70
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
63
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
63
        if (iter->has_null()) {
506
61
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
61
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
61
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
61
        }
510
63
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
63
        bitmap_result = result;
512
63
        bitmap_result.mask_out_null();
513
514
63
        if (name_view == NameNotEquals::name) {
515
62
            roaring::Roaring full_result;
516
62
            full_result.addRange(0, num_rows);
517
62
            bitmap_result.op_not(&full_result);
518
62
        }
519
520
63
        return Status::OK();
521
63
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
175
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
175
        DCHECK(arguments.size() == 1);
454
175
        DCHECK(data_type_with_names.size() == 1);
455
175
        DCHECK(iterators.size() == 1);
456
175
        auto* iter = iterators[0];
457
175
        auto data_type_with_name = data_type_with_names[0];
458
175
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
175
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
62
            return Status::OK();
463
62
        }
464
113
        segment_v2::InvertedIndexQueryType query_type;
465
113
        std::string_view name_view(name);
466
113
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
113
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
113
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
113
        } else if (name_view == NameGreater::name) {
473
113
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
113
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
113
        if (segment_v2::is_range_query(query_type) &&
481
113
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
28
            return Status::OK();
484
28
        }
485
85
        Field param_value;
486
85
        arguments[0].column->get(0, param_value);
487
85
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
85
        auto param_type = arguments[0].type->get_primitive_type();
491
85
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
85
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
85
                param_type, &param_value, query_param));
494
495
85
        segment_v2::InvertedIndexParam param;
496
85
        param.column_name = data_type_with_name.first;
497
85
        param.column_type = data_type_with_name.second;
498
85
        param.query_value = query_param->get_value();
499
85
        param.query_type = query_type;
500
85
        param.num_rows = num_rows;
501
85
        param.roaring = std::make_shared<roaring::Roaring>();
502
85
        param.analyzer_ctx = analyzer_ctx;
503
85
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
66
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
66
        if (iter->has_null()) {
506
65
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
65
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
65
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
65
        }
510
66
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
66
        bitmap_result = result;
512
66
        bitmap_result.mask_out_null();
513
514
66
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
66
        return Status::OK();
521
66
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
251
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
251
        DCHECK(arguments.size() == 1);
454
251
        DCHECK(data_type_with_names.size() == 1);
455
251
        DCHECK(iterators.size() == 1);
456
251
        auto* iter = iterators[0];
457
251
        auto data_type_with_name = data_type_with_names[0];
458
251
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
251
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
114
            return Status::OK();
463
114
        }
464
137
        segment_v2::InvertedIndexQueryType query_type;
465
137
        std::string_view name_view(name);
466
138
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
137
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
137
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
137
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
138
        } else if (name_view == NameGreaterOrEquals::name) {
475
138
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
138
        if (segment_v2::is_range_query(query_type) &&
481
138
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
59
            return Status::OK();
484
59
        }
485
79
        Field param_value;
486
79
        arguments[0].column->get(0, param_value);
487
79
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
79
        auto param_type = arguments[0].type->get_primitive_type();
491
79
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
79
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
79
                param_type, &param_value, query_param));
494
495
79
        segment_v2::InvertedIndexParam param;
496
79
        param.column_name = data_type_with_name.first;
497
79
        param.column_type = data_type_with_name.second;
498
79
        param.query_value = query_param->get_value();
499
79
        param.query_type = query_type;
500
79
        param.num_rows = num_rows;
501
79
        param.roaring = std::make_shared<roaring::Roaring>();
502
79
        param.analyzer_ctx = analyzer_ctx;
503
79
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
38
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
38
        if (iter->has_null()) {
506
37
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
37
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
37
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
37
        }
510
38
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
38
        bitmap_result = result;
512
38
        bitmap_result.mask_out_null();
513
514
38
        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
38
        return Status::OK();
521
38
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
173
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
173
        DCHECK(arguments.size() == 1);
454
173
        DCHECK(data_type_with_names.size() == 1);
455
173
        DCHECK(iterators.size() == 1);
456
173
        auto* iter = iterators[0];
457
173
        auto data_type_with_name = data_type_with_names[0];
458
173
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
173
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
59
            return Status::OK();
463
59
        }
464
114
        segment_v2::InvertedIndexQueryType query_type;
465
114
        std::string_view name_view(name);
466
114
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
114
        } else if (name_view == NameLess::name) {
469
114
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
114
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
0
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
0
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
114
        if (segment_v2::is_range_query(query_type) &&
481
114
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
26
            return Status::OK();
484
26
        }
485
88
        Field param_value;
486
88
        arguments[0].column->get(0, param_value);
487
88
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
88
        auto param_type = arguments[0].type->get_primitive_type();
491
88
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
88
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
88
                param_type, &param_value, query_param));
494
495
88
        segment_v2::InvertedIndexParam param;
496
88
        param.column_name = data_type_with_name.first;
497
88
        param.column_type = data_type_with_name.second;
498
88
        param.query_value = query_param->get_value();
499
88
        param.query_type = query_type;
500
88
        param.num_rows = num_rows;
501
88
        param.roaring = std::make_shared<roaring::Roaring>();
502
88
        param.analyzer_ctx = analyzer_ctx;
503
88
        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
66
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
66
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
66
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
66
        }
510
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_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
211
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
211
        DCHECK(arguments.size() == 1);
454
211
        DCHECK(data_type_with_names.size() == 1);
455
211
        DCHECK(iterators.size() == 1);
456
211
        auto* iter = iterators[0];
457
211
        auto data_type_with_name = data_type_with_names[0];
458
211
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
211
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
113
            return Status::OK();
463
113
        }
464
98
        segment_v2::InvertedIndexQueryType query_type;
465
98
        std::string_view name_view(name);
466
98
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
98
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
98
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
98
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
0
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
98
        if (segment_v2::is_range_query(query_type) &&
481
98
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
58
            return Status::OK();
484
58
        }
485
40
        Field param_value;
486
40
        arguments[0].column->get(0, param_value);
487
40
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
40
        auto param_type = arguments[0].type->get_primitive_type();
491
40
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
40
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
40
                param_type, &param_value, query_param));
494
495
40
        segment_v2::InvertedIndexParam param;
496
40
        param.column_name = data_type_with_name.first;
497
40
        param.column_type = data_type_with_name.second;
498
40
        param.query_value = query_param->get_value();
499
40
        param.query_type = query_type;
500
40
        param.num_rows = num_rows;
501
40
        param.roaring = std::make_shared<roaring::Roaring>();
502
40
        param.analyzer_ctx = analyzer_ctx;
503
40
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
19
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
19
        if (iter->has_null()) {
506
18
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
18
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
18
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
18
        }
510
19
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
19
        bitmap_result = result;
512
19
        bitmap_result.mask_out_null();
513
514
19
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
19
        return Status::OK();
521
19
    }
522
523
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
524
45.6k
                        uint32_t result, size_t input_rows_count) const override {
525
45.6k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
45.6k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
45.6k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
45.6k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
45.6k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
45.6k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
45.6k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
45.6k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
45.6k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
45.6k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
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
75.2k
        auto can_compare = [](PrimitiveType t) -> bool {
563
75.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
75.2k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
31.5k
        auto can_compare = [](PrimitiveType t) -> bool {
563
31.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
31.5k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
3.29k
        auto can_compare = [](PrimitiveType t) -> bool {
563
3.29k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
3.29k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
17.6k
        auto can_compare = [](PrimitiveType t) -> bool {
563
17.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
17.6k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
5.43k
        auto can_compare = [](PrimitiveType t) -> bool {
563
5.43k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
5.43k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
11.4k
        auto can_compare = [](PrimitiveType t) -> bool {
563
11.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
11.4k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
5.74k
        auto can_compare = [](PrimitiveType t) -> bool {
563
5.74k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
5.74k
        };
565
566
45.6k
        if (can_compare(left_type->get_primitive_type()) &&
567
45.6k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
29.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
29.6k
        }
575
576
45.6k
        auto compare_type = left_type->get_primitive_type();
577
45.6k
        switch (compare_type) {
578
228
        case TYPE_BOOLEAN:
579
228
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
5.30k
        case TYPE_DATEV2:
581
5.30k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
995
        case TYPE_DATETIMEV2:
583
995
            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
4.88k
        case TYPE_TINYINT:
587
4.88k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
1.67k
        case TYPE_SMALLINT:
589
1.67k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
9.76k
        case TYPE_INT:
591
9.76k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
3.96k
        case TYPE_BIGINT:
593
3.96k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
568
        case TYPE_LARGEINT:
595
568
            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
548
        case TYPE_FLOAT:
601
548
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
1.50k
        case TYPE_DOUBLE:
603
1.50k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
4
        case TYPE_TIMEV2:
606
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
348
        case TYPE_DECIMAL32:
609
957
        case TYPE_DECIMAL64:
610
3.09k
        case TYPE_DECIMAL128I:
611
3.20k
        case TYPE_DECIMAL256:
612
3.20k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
3.20k
                                   col_with_type_and_name_right);
614
1.08k
        case TYPE_CHAR:
615
6.87k
        case TYPE_VARCHAR:
616
12.7k
        case TYPE_STRING:
617
12.7k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
92
        default:
619
92
            return execute_generic(block, result, col_with_type_and_name_left,
620
92
                                   col_with_type_and_name_right);
621
45.6k
        }
622
0
        return Status::OK();
623
45.6k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
22.2k
                        uint32_t result, size_t input_rows_count) const override {
525
22.2k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
22.2k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
22.2k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
22.2k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
22.2k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
22.2k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
22.2k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
22.2k
        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.2k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
22.2k
            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.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
22.2k
        };
565
566
22.2k
        if (can_compare(left_type->get_primitive_type()) &&
567
22.2k
            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
9.38k
            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
9.38k
        }
575
576
22.2k
        auto compare_type = left_type->get_primitive_type();
577
22.2k
        switch (compare_type) {
578
102
        case TYPE_BOOLEAN:
579
102
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.17k
        case TYPE_DATEV2:
581
1.17k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
529
        case TYPE_DATETIMEV2:
583
529
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
3.36k
        case TYPE_TINYINT:
587
3.36k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
425
        case TYPE_SMALLINT:
589
425
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
2.28k
        case TYPE_INT:
591
2.28k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
963
        case TYPE_BIGINT:
593
963
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
116
        case TYPE_LARGEINT:
595
116
            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
104
        case TYPE_FLOAT:
601
104
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
263
        case TYPE_DOUBLE:
603
263
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
4
        case TYPE_TIMEV2:
606
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
147
        case TYPE_DECIMAL32:
609
309
        case TYPE_DECIMAL64:
610
1.21k
        case TYPE_DECIMAL128I:
611
1.24k
        case TYPE_DECIMAL256:
612
1.24k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
1.24k
                                   col_with_type_and_name_right);
614
857
        case TYPE_CHAR:
615
6.13k
        case TYPE_VARCHAR:
616
11.5k
        case TYPE_STRING:
617
11.5k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
17
        default:
619
17
            return execute_generic(block, result, col_with_type_and_name_left,
620
17
                                   col_with_type_and_name_right);
621
22.2k
        }
622
0
        return Status::OK();
623
22.2k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
1.76k
                        uint32_t result, size_t input_rows_count) const override {
525
1.76k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
1.76k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
1.76k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
1.76k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
1.76k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
1.76k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
1.76k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
1.76k
        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
1.76k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
1.76k
            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
1.76k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
1.76k
        };
565
566
1.76k
        if (can_compare(left_type->get_primitive_type()) &&
567
1.76k
            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
1.52k
            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
1.52k
        }
575
576
1.76k
        auto compare_type = left_type->get_primitive_type();
577
1.76k
        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
41
        case TYPE_DATEV2:
581
41
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
0
        case TYPE_DATETIMEV2:
583
0
            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
92
        case TYPE_TINYINT:
587
92
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
0
        case TYPE_SMALLINT:
589
0
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
702
        case TYPE_INT:
591
702
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
563
        case TYPE_BIGINT:
593
563
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
0
        case TYPE_LARGEINT:
595
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
0
        case TYPE_IPV4:
597
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
0
        case TYPE_IPV6:
599
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
52
        case TYPE_FLOAT:
601
52
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
72
        case TYPE_DOUBLE:
603
72
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
0
        case TYPE_DECIMAL32:
609
61
        case TYPE_DECIMAL64:
610
89
        case TYPE_DECIMAL128I:
611
119
        case TYPE_DECIMAL256:
612
119
            return execute_decimal(block, result, col_with_type_and_name_left,
613
119
                                   col_with_type_and_name_right);
614
1
        case TYPE_CHAR:
615
29
        case TYPE_VARCHAR:
616
119
        case TYPE_STRING:
617
119
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
8
        default:
619
8
            return execute_generic(block, result, col_with_type_and_name_left,
620
8
                                   col_with_type_and_name_right);
621
1.76k
        }
622
0
        return Status::OK();
623
1.76k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
9.41k
                        uint32_t result, size_t input_rows_count) const override {
525
9.41k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
9.41k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
9.41k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
9.41k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
9.41k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
9.41k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
9.41k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
9.41k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
9.41k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
9.41k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
9.41k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
9.41k
        };
565
566
9.41k
        if (can_compare(left_type->get_primitive_type()) &&
567
9.41k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
8.26k
            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.26k
        }
575
576
9.41k
        auto compare_type = left_type->get_primitive_type();
577
9.41k
        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
976
        case TYPE_DATEV2:
581
976
            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
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
654
        case TYPE_TINYINT:
587
654
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
916
        case TYPE_SMALLINT:
589
916
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
3.39k
        case TYPE_INT:
591
3.39k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
1.30k
        case TYPE_BIGINT:
593
1.30k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
247
        case TYPE_LARGEINT:
595
247
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
2
        case TYPE_IPV4:
597
2
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
1
        case TYPE_IPV6:
599
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
228
        case TYPE_FLOAT:
601
228
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
536
        case TYPE_DOUBLE:
603
536
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
12
        case TYPE_DECIMAL32:
609
78
        case TYPE_DECIMAL64:
610
943
        case TYPE_DECIMAL128I:
611
945
        case TYPE_DECIMAL256:
612
945
            return execute_decimal(block, result, col_with_type_and_name_left,
613
945
                                   col_with_type_and_name_right);
614
21
        case TYPE_CHAR:
615
91
        case TYPE_VARCHAR:
616
198
        case TYPE_STRING:
617
198
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
9
        default:
619
9
            return execute_generic(block, result, col_with_type_and_name_left,
620
9
                                   col_with_type_and_name_right);
621
9.41k
        }
622
0
        return Status::OK();
623
9.41k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
2.91k
                        uint32_t result, size_t input_rows_count) const override {
525
2.91k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
2.91k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
2.91k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
2.91k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
2.91k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
2.91k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
2.91k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
2.91k
        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
2.91k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
2.91k
            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
2.91k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
2.91k
        };
565
566
2.91k
        if (can_compare(left_type->get_primitive_type()) &&
567
2.91k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
2.52k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
2.52k
        }
575
576
2.91k
        auto compare_type = left_type->get_primitive_type();
577
2.91k
        switch (compare_type) {
578
18
        case TYPE_BOOLEAN:
579
18
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
497
        case TYPE_DATEV2:
581
497
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
147
        case TYPE_DATETIMEV2:
583
147
            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
55
        case TYPE_TINYINT:
587
55
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
85
        case TYPE_SMALLINT:
589
85
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
1.32k
        case TYPE_INT:
591
1.32k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
155
        case TYPE_BIGINT:
593
155
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
8
        case TYPE_LARGEINT:
595
8
            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
26
        case TYPE_FLOAT:
601
26
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
177
        case TYPE_DOUBLE:
603
177
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
1
        case TYPE_DECIMAL32:
609
60
        case TYPE_DECIMAL64:
610
116
        case TYPE_DECIMAL128I:
611
143
        case TYPE_DECIMAL256:
612
143
            return execute_decimal(block, result, col_with_type_and_name_left,
613
143
                                   col_with_type_and_name_right);
614
28
        case TYPE_CHAR:
615
181
        case TYPE_VARCHAR:
616
238
        case TYPE_STRING:
617
238
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
22
        default:
619
22
            return execute_generic(block, result, col_with_type_and_name_left,
620
22
                                   col_with_type_and_name_right);
621
2.91k
        }
622
0
        return Status::OK();
623
2.91k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
6.28k
                        uint32_t result, size_t input_rows_count) const override {
525
6.28k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
6.28k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
6.28k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
6.28k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
6.28k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
6.28k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
6.28k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
6.28k
        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
6.28k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
6.28k
            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
6.28k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
6.28k
        };
565
566
6.28k
        if (can_compare(left_type->get_primitive_type()) &&
567
6.28k
            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
5.19k
            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
5.19k
        }
575
576
6.28k
        auto compare_type = left_type->get_primitive_type();
577
6.28k
        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.05k
        case TYPE_DATEV2:
581
2.05k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
273
        case TYPE_DATETIMEV2:
583
273
            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
661
        case TYPE_TINYINT:
587
661
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
122
        case TYPE_SMALLINT:
589
122
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
661
        case TYPE_INT:
591
661
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
669
        case TYPE_BIGINT:
593
669
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
190
        case TYPE_LARGEINT:
595
190
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
16
        case TYPE_IPV4:
597
16
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
16
        case TYPE_IPV6:
599
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
118
        case TYPE_FLOAT:
601
118
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
335
        case TYPE_DOUBLE:
603
335
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
178
        case TYPE_DECIMAL32:
609
380
        case TYPE_DECIMAL64:
610
615
        case TYPE_DECIMAL128I:
611
616
        case TYPE_DECIMAL256:
612
616
            return execute_decimal(block, result, col_with_type_and_name_left,
613
616
                                   col_with_type_and_name_right);
614
156
        case TYPE_CHAR:
615
321
        case TYPE_VARCHAR:
616
460
        case TYPE_STRING:
617
460
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
11
        default:
619
11
            return execute_generic(block, result, col_with_type_and_name_left,
620
11
                                   col_with_type_and_name_right);
621
6.28k
        }
622
0
        return Status::OK();
623
6.28k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
3.03k
                        uint32_t result, size_t input_rows_count) const override {
525
3.03k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
3.03k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
3.03k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
3.03k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
3.03k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
3.03k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
3.03k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
3.03k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
3.03k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
3.03k
            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
3.03k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
3.03k
        };
565
566
3.03k
        if (can_compare(left_type->get_primitive_type()) &&
567
3.03k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
2.71k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
2.71k
        }
575
576
3.03k
        auto compare_type = left_type->get_primitive_type();
577
3.03k
        switch (compare_type) {
578
27
        case TYPE_BOOLEAN:
579
27
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
561
        case TYPE_DATEV2:
581
561
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
44
        case TYPE_DATETIMEV2:
583
44
            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
62
        case TYPE_TINYINT:
587
62
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
124
        case TYPE_SMALLINT:
589
124
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
1.40k
        case TYPE_INT:
591
1.40k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
307
        case TYPE_BIGINT:
593
307
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
7
        case TYPE_LARGEINT:
595
7
            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
20
        case TYPE_FLOAT:
601
20
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
125
        case TYPE_DOUBLE:
603
125
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
10
        case TYPE_DECIMAL32:
609
69
        case TYPE_DECIMAL64:
610
114
        case TYPE_DECIMAL128I:
611
136
        case TYPE_DECIMAL256:
612
136
            return execute_decimal(block, result, col_with_type_and_name_left,
613
136
                                   col_with_type_and_name_right);
614
19
        case TYPE_CHAR:
615
124
        case TYPE_VARCHAR:
616
179
        case TYPE_STRING:
617
179
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
25
        default:
619
25
            return execute_generic(block, result, col_with_type_and_name_left,
620
25
                                   col_with_type_and_name_right);
621
3.03k
        }
622
0
        return Status::OK();
623
3.03k
    }
624
};
625
626
#include "common/compile_check_end.h"
627
} // namespace doris