Coverage Report

Created: 2026-04-01 11:49

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.5k
                                        PaddedPODArray<UInt8>& c) {
66
11.5k
        size_t size = a.size();
67
11.5k
        const A* __restrict a_pos = a.data();
68
11.5k
        const B* __restrict b_pos = b.data();
69
11.5k
        UInt8* __restrict c_pos = c.data();
70
11.5k
        const A* __restrict a_end = a_pos + size;
71
72
11.8M
        while (a_pos < a_end) {
73
11.8M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
11.8M
            ++a_pos;
75
11.8M
            ++b_pos;
76
11.8M
            ++c_pos;
77
11.8M
        }
78
11.5k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
66
                                        PaddedPODArray<UInt8>& c) {
66
66
        size_t size = a.size();
67
66
        const A* __restrict a_pos = a.data();
68
66
        const B* __restrict b_pos = b.data();
69
66
        UInt8* __restrict c_pos = c.data();
70
66
        const A* __restrict a_end = a_pos + size;
71
72
132
        while (a_pos < a_end) {
73
66
            *c_pos = Op::apply(*a_pos, *b_pos);
74
66
            ++a_pos;
75
66
            ++b_pos;
76
66
            ++c_pos;
77
66
        }
78
66
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
203
                                        PaddedPODArray<UInt8>& c) {
66
203
        size_t size = a.size();
67
203
        const A* __restrict a_pos = a.data();
68
203
        const B* __restrict b_pos = b.data();
69
203
        UInt8* __restrict c_pos = c.data();
70
203
        const A* __restrict a_end = a_pos + size;
71
72
412
        while (a_pos < a_end) {
73
209
            *c_pos = Op::apply(*a_pos, *b_pos);
74
209
            ++a_pos;
75
209
            ++b_pos;
76
209
            ++c_pos;
77
209
        }
78
203
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
238
                                        PaddedPODArray<UInt8>& c) {
66
238
        size_t size = a.size();
67
238
        const A* __restrict a_pos = a.data();
68
238
        const B* __restrict b_pos = b.data();
69
238
        UInt8* __restrict c_pos = c.data();
70
238
        const A* __restrict a_end = a_pos + size;
71
72
496
        while (a_pos < a_end) {
73
258
            *c_pos = Op::apply(*a_pos, *b_pos);
74
258
            ++a_pos;
75
258
            ++b_pos;
76
258
            ++c_pos;
77
258
        }
78
238
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
842
                                        PaddedPODArray<UInt8>& c) {
66
842
        size_t size = a.size();
67
842
        const A* __restrict a_pos = a.data();
68
842
        const B* __restrict b_pos = b.data();
69
842
        UInt8* __restrict c_pos = c.data();
70
842
        const A* __restrict a_end = a_pos + size;
71
72
5.22k
        while (a_pos < a_end) {
73
4.38k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.38k
            ++a_pos;
75
4.38k
            ++b_pos;
76
4.38k
            ++c_pos;
77
4.38k
        }
78
842
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
122
                                        PaddedPODArray<UInt8>& c) {
66
122
        size_t size = a.size();
67
122
        const A* __restrict a_pos = a.data();
68
122
        const B* __restrict b_pos = b.data();
69
122
        UInt8* __restrict c_pos = c.data();
70
122
        const A* __restrict a_end = a_pos + size;
71
72
542
        while (a_pos < a_end) {
73
420
            *c_pos = Op::apply(*a_pos, *b_pos);
74
420
            ++a_pos;
75
420
            ++b_pos;
76
420
            ++c_pos;
77
420
        }
78
122
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
268
                                        PaddedPODArray<UInt8>& c) {
66
268
        size_t size = a.size();
67
268
        const A* __restrict a_pos = a.data();
68
268
        const B* __restrict b_pos = b.data();
69
268
        UInt8* __restrict c_pos = c.data();
70
268
        const A* __restrict a_end = a_pos + size;
71
72
2.08k
        while (a_pos < a_end) {
73
1.81k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.81k
            ++a_pos;
75
1.81k
            ++b_pos;
76
1.81k
            ++c_pos;
77
1.81k
        }
78
268
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
249
                                        PaddedPODArray<UInt8>& c) {
66
249
        size_t size = a.size();
67
249
        const A* __restrict a_pos = a.data();
68
249
        const B* __restrict b_pos = b.data();
69
249
        UInt8* __restrict c_pos = c.data();
70
249
        const A* __restrict a_end = a_pos + size;
71
72
11.6k
        while (a_pos < a_end) {
73
11.4k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
11.4k
            ++a_pos;
75
11.4k
            ++b_pos;
76
11.4k
            ++c_pos;
77
11.4k
        }
78
249
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_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
162
        while (a_pos < a_end) {
73
87
            *c_pos = Op::apply(*a_pos, *b_pos);
74
87
            ++a_pos;
75
87
            ++b_pos;
76
87
            ++c_pos;
77
87
        }
78
75
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
5
                                        PaddedPODArray<UInt8>& c) {
66
5
        size_t size = a.size();
67
5
        const A* __restrict a_pos = a.data();
68
5
        const B* __restrict b_pos = b.data();
69
5
        UInt8* __restrict c_pos = c.data();
70
5
        const A* __restrict a_end = a_pos + size;
71
72
10
        while (a_pos < a_end) {
73
5
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5
            ++a_pos;
75
5
            ++b_pos;
76
5
            ++c_pos;
77
5
        }
78
5
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
13
                                        PaddedPODArray<UInt8>& c) {
66
13
        size_t size = a.size();
67
13
        const A* __restrict a_pos = a.data();
68
13
        const B* __restrict b_pos = b.data();
69
13
        UInt8* __restrict c_pos = c.data();
70
13
        const A* __restrict a_end = a_pos + size;
71
72
26
        while (a_pos < a_end) {
73
13
            *c_pos = Op::apply(*a_pos, *b_pos);
74
13
            ++a_pos;
75
13
            ++b_pos;
76
13
            ++c_pos;
77
13
        }
78
13
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
95
                                        PaddedPODArray<UInt8>& c) {
66
95
        size_t size = a.size();
67
95
        const A* __restrict a_pos = a.data();
68
95
        const B* __restrict b_pos = b.data();
69
95
        UInt8* __restrict c_pos = c.data();
70
95
        const A* __restrict a_end = a_pos + size;
71
72
209
        while (a_pos < a_end) {
73
114
            *c_pos = Op::apply(*a_pos, *b_pos);
74
114
            ++a_pos;
75
114
            ++b_pos;
76
114
            ++c_pos;
77
114
        }
78
95
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
102
                                        PaddedPODArray<UInt8>& c) {
66
102
        size_t size = a.size();
67
102
        const A* __restrict a_pos = a.data();
68
102
        const B* __restrict b_pos = b.data();
69
102
        UInt8* __restrict c_pos = c.data();
70
102
        const A* __restrict a_end = a_pos + size;
71
72
225
        while (a_pos < a_end) {
73
123
            *c_pos = Op::apply(*a_pos, *b_pos);
74
123
            ++a_pos;
75
123
            ++b_pos;
76
123
            ++c_pos;
77
123
        }
78
102
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
4
                                        PaddedPODArray<UInt8>& c) {
66
4
        size_t size = a.size();
67
4
        const A* __restrict a_pos = a.data();
68
4
        const B* __restrict b_pos = b.data();
69
4
        UInt8* __restrict c_pos = c.data();
70
4
        const A* __restrict a_end = a_pos + size;
71
72
8
        while (a_pos < a_end) {
73
4
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4
            ++a_pos;
75
4
            ++b_pos;
76
4
            ++c_pos;
77
4
        }
78
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
39
                                        PaddedPODArray<UInt8>& c) {
66
39
        size_t size = a.size();
67
39
        const A* __restrict a_pos = a.data();
68
39
        const B* __restrict b_pos = b.data();
69
39
        UInt8* __restrict c_pos = c.data();
70
39
        const A* __restrict a_end = a_pos + size;
71
72
108
        while (a_pos < a_end) {
73
69
            *c_pos = Op::apply(*a_pos, *b_pos);
74
69
            ++a_pos;
75
69
            ++b_pos;
76
69
            ++c_pos;
77
69
        }
78
39
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
56
                                        PaddedPODArray<UInt8>& c) {
66
56
        size_t size = a.size();
67
56
        const A* __restrict a_pos = a.data();
68
56
        const B* __restrict b_pos = b.data();
69
56
        UInt8* __restrict c_pos = c.data();
70
56
        const A* __restrict a_end = a_pos + size;
71
72
252
        while (a_pos < a_end) {
73
196
            *c_pos = Op::apply(*a_pos, *b_pos);
74
196
            ++a_pos;
75
196
            ++b_pos;
76
196
            ++c_pos;
77
196
        }
78
56
    }
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
545
                                        PaddedPODArray<UInt8>& c) {
66
545
        size_t size = a.size();
67
545
        const A* __restrict a_pos = a.data();
68
545
        const B* __restrict b_pos = b.data();
69
545
        UInt8* __restrict c_pos = c.data();
70
545
        const A* __restrict a_end = a_pos + size;
71
72
294k
        while (a_pos < a_end) {
73
294k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
294k
            ++a_pos;
75
294k
            ++b_pos;
76
294k
            ++c_pos;
77
294k
        }
78
545
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
412
                                        PaddedPODArray<UInt8>& c) {
66
412
        size_t size = a.size();
67
412
        const A* __restrict a_pos = a.data();
68
412
        const B* __restrict b_pos = b.data();
69
412
        UInt8* __restrict c_pos = c.data();
70
412
        const A* __restrict a_end = a_pos + size;
71
72
24.6k
        while (a_pos < a_end) {
73
24.2k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
24.2k
            ++a_pos;
75
24.2k
            ++b_pos;
76
24.2k
            ++c_pos;
77
24.2k
        }
78
412
    }
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.68M
        while (a_pos < a_end) {
73
3.68M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.68M
            ++a_pos;
75
3.68M
            ++b_pos;
76
3.68M
            ++c_pos;
77
3.68M
        }
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
352
                                        PaddedPODArray<UInt8>& c) {
66
352
        size_t size = a.size();
67
352
        const A* __restrict a_pos = a.data();
68
352
        const B* __restrict b_pos = b.data();
69
352
        UInt8* __restrict c_pos = c.data();
70
352
        const A* __restrict a_end = a_pos + size;
71
72
2.50k
        while (a_pos < a_end) {
73
2.15k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.15k
            ++a_pos;
75
2.15k
            ++b_pos;
76
2.15k
            ++c_pos;
77
2.15k
        }
78
352
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
596
                                        PaddedPODArray<UInt8>& c) {
66
596
        size_t size = a.size();
67
596
        const A* __restrict a_pos = a.data();
68
596
        const B* __restrict b_pos = b.data();
69
596
        UInt8* __restrict c_pos = c.data();
70
596
        const A* __restrict a_end = a_pos + size;
71
72
4.07k
        while (a_pos < a_end) {
73
3.47k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.47k
            ++a_pos;
75
3.47k
            ++b_pos;
76
3.47k
            ++c_pos;
77
3.47k
        }
78
596
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1.75k
                                        PaddedPODArray<UInt8>& c) {
66
1.75k
        size_t size = a.size();
67
1.75k
        const A* __restrict a_pos = a.data();
68
1.75k
        const B* __restrict b_pos = b.data();
69
1.75k
        UInt8* __restrict c_pos = c.data();
70
1.75k
        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.75k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
134
                                        PaddedPODArray<UInt8>& c) {
66
134
        size_t size = a.size();
67
134
        const A* __restrict a_pos = a.data();
68
134
        const B* __restrict b_pos = b.data();
69
134
        UInt8* __restrict c_pos = c.data();
70
134
        const A* __restrict a_end = a_pos + size;
71
72
1.57k
        while (a_pos < a_end) {
73
1.44k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.44k
            ++a_pos;
75
1.44k
            ++b_pos;
76
1.44k
            ++c_pos;
77
1.44k
        }
78
134
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
21
                                        PaddedPODArray<UInt8>& c) {
66
21
        size_t size = a.size();
67
21
        const A* __restrict a_pos = a.data();
68
21
        const B* __restrict b_pos = b.data();
69
21
        UInt8* __restrict c_pos = c.data();
70
21
        const A* __restrict a_end = a_pos + size;
71
72
99
        while (a_pos < a_end) {
73
78
            *c_pos = Op::apply(*a_pos, *b_pos);
74
78
            ++a_pos;
75
78
            ++b_pos;
76
78
            ++c_pos;
77
78
        }
78
21
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
43
                                        PaddedPODArray<UInt8>& c) {
66
43
        size_t size = a.size();
67
43
        const A* __restrict a_pos = a.data();
68
43
        const B* __restrict b_pos = b.data();
69
43
        UInt8* __restrict c_pos = c.data();
70
43
        const A* __restrict a_end = a_pos + size;
71
72
138
        while (a_pos < a_end) {
73
95
            *c_pos = Op::apply(*a_pos, *b_pos);
74
95
            ++a_pos;
75
95
            ++b_pos;
76
95
            ++c_pos;
77
95
        }
78
43
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
7
                                        PaddedPODArray<UInt8>& c) {
66
7
        size_t size = a.size();
67
7
        const A* __restrict a_pos = a.data();
68
7
        const B* __restrict b_pos = b.data();
69
7
        UInt8* __restrict c_pos = c.data();
70
7
        const A* __restrict a_end = a_pos + size;
71
72
38
        while (a_pos < a_end) {
73
31
            *c_pos = Op::apply(*a_pos, *b_pos);
74
31
            ++a_pos;
75
31
            ++b_pos;
76
31
            ++c_pos;
77
31
        }
78
7
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
6
                                        PaddedPODArray<UInt8>& c) {
66
6
        size_t size = a.size();
67
6
        const A* __restrict a_pos = a.data();
68
6
        const B* __restrict b_pos = b.data();
69
6
        UInt8* __restrict c_pos = c.data();
70
6
        const A* __restrict a_end = a_pos + size;
71
72
65
        while (a_pos < a_end) {
73
59
            *c_pos = Op::apply(*a_pos, *b_pos);
74
59
            ++a_pos;
75
59
            ++b_pos;
76
59
            ++c_pos;
77
59
        }
78
6
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
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
21
        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
5
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
8
                                        PaddedPODArray<UInt8>& c) {
66
8
        size_t size = a.size();
67
8
        const A* __restrict a_pos = a.data();
68
8
        const B* __restrict b_pos = b.data();
69
8
        UInt8* __restrict c_pos = c.data();
70
8
        const A* __restrict a_end = a_pos + size;
71
72
62
        while (a_pos < a_end) {
73
54
            *c_pos = Op::apply(*a_pos, *b_pos);
74
54
            ++a_pos;
75
54
            ++b_pos;
76
54
            ++c_pos;
77
54
        }
78
8
    }
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
33
                                        PaddedPODArray<UInt8>& c) {
66
33
        size_t size = a.size();
67
33
        const A* __restrict a_pos = a.data();
68
33
        const B* __restrict b_pos = b.data();
69
33
        UInt8* __restrict c_pos = c.data();
70
33
        const A* __restrict a_end = a_pos + size;
71
72
139
        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
33
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
73
                                        PaddedPODArray<UInt8>& c) {
66
73
        size_t size = a.size();
67
73
        const A* __restrict a_pos = a.data();
68
73
        const B* __restrict b_pos = b.data();
69
73
        UInt8* __restrict c_pos = c.data();
70
73
        const A* __restrict a_end = a_pos + size;
71
72
146
        while (a_pos < a_end) {
73
73
            *c_pos = Op::apply(*a_pos, *b_pos);
74
73
            ++a_pos;
75
73
            ++b_pos;
76
73
            ++c_pos;
77
73
        }
78
73
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.59k
                                        PaddedPODArray<UInt8>& c) {
66
1.59k
        size_t size = a.size();
67
1.59k
        const A* __restrict a_pos = a.data();
68
1.59k
        const B* __restrict b_pos = b.data();
69
1.59k
        UInt8* __restrict c_pos = c.data();
70
1.59k
        const A* __restrict a_end = a_pos + size;
71
72
2.37M
        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.59k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
239
                                        PaddedPODArray<UInt8>& c) {
66
239
        size_t size = a.size();
67
239
        const A* __restrict a_pos = a.data();
68
239
        const B* __restrict b_pos = b.data();
69
239
        UInt8* __restrict c_pos = c.data();
70
239
        const A* __restrict a_end = a_pos + size;
71
72
478
        while (a_pos < a_end) {
73
239
            *c_pos = Op::apply(*a_pos, *b_pos);
74
239
            ++a_pos;
75
239
            ++b_pos;
76
239
            ++c_pos;
77
239
        }
78
239
    }
_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
775
                                        PaddedPODArray<UInt8>& c) {
66
775
        size_t size = a.size();
67
775
        const A* __restrict a_pos = a.data();
68
775
        const B* __restrict b_pos = b.data();
69
775
        UInt8* __restrict c_pos = c.data();
70
775
        const A* __restrict a_end = a_pos + size;
71
72
4.61k
        while (a_pos < a_end) {
73
3.84k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.84k
            ++a_pos;
75
3.84k
            ++b_pos;
76
3.84k
            ++c_pos;
77
3.84k
        }
78
775
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
110
                                        PaddedPODArray<UInt8>& c) {
66
110
        size_t size = a.size();
67
110
        const A* __restrict a_pos = a.data();
68
110
        const B* __restrict b_pos = b.data();
69
110
        UInt8* __restrict c_pos = c.data();
70
110
        const A* __restrict a_end = a_pos + size;
71
72
222
        while (a_pos < a_end) {
73
112
            *c_pos = Op::apply(*a_pos, *b_pos);
74
112
            ++a_pos;
75
112
            ++b_pos;
76
112
            ++c_pos;
77
112
        }
78
110
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
150
                                        PaddedPODArray<UInt8>& c) {
66
150
        size_t size = a.size();
67
150
        const A* __restrict a_pos = a.data();
68
150
        const B* __restrict b_pos = b.data();
69
150
        UInt8* __restrict c_pos = c.data();
70
150
        const A* __restrict a_end = a_pos + size;
71
72
799
        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
150
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
228
                                        PaddedPODArray<UInt8>& c) {
66
228
        size_t size = a.size();
67
228
        const A* __restrict a_pos = a.data();
68
228
        const B* __restrict b_pos = b.data();
69
228
        UInt8* __restrict c_pos = c.data();
70
228
        const A* __restrict a_end = a_pos + size;
71
72
5.69k
        while (a_pos < a_end) {
73
5.47k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.47k
            ++a_pos;
75
5.47k
            ++b_pos;
76
5.47k
            ++c_pos;
77
5.47k
        }
78
228
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
155
                                        PaddedPODArray<UInt8>& c) {
66
155
        size_t size = a.size();
67
155
        const A* __restrict a_pos = a.data();
68
155
        const B* __restrict b_pos = b.data();
69
155
        UInt8* __restrict c_pos = c.data();
70
155
        const A* __restrict a_end = a_pos + size;
71
72
411
        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
155
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
134
                                        PaddedPODArray<UInt8>& c) {
66
134
        size_t size = a.size();
67
134
        const A* __restrict a_pos = a.data();
68
134
        const B* __restrict b_pos = b.data();
69
134
        UInt8* __restrict c_pos = c.data();
70
134
        const A* __restrict a_end = a_pos + size;
71
72
287
        while (a_pos < a_end) {
73
153
            *c_pos = Op::apply(*a_pos, *b_pos);
74
153
            ++a_pos;
75
153
            ++b_pos;
76
153
            ++c_pos;
77
153
        }
78
134
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
150
                                        PaddedPODArray<UInt8>& c) {
66
150
        size_t size = a.size();
67
150
        const A* __restrict a_pos = a.data();
68
150
        const B* __restrict b_pos = b.data();
69
150
        UInt8* __restrict c_pos = c.data();
70
150
        const A* __restrict a_end = a_pos + size;
71
72
341
        while (a_pos < a_end) {
73
191
            *c_pos = Op::apply(*a_pos, *b_pos);
74
191
            ++a_pos;
75
191
            ++b_pos;
76
191
            ++c_pos;
77
191
        }
78
150
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
419
                                        PaddedPODArray<UInt8>& c) {
66
419
        size_t size = a.size();
67
419
        const A* __restrict a_pos = a.data();
68
419
        const B* __restrict b_pos = b.data();
69
419
        UInt8* __restrict c_pos = c.data();
70
419
        const A* __restrict a_end = a_pos + size;
71
72
6.65k
        while (a_pos < a_end) {
73
6.24k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.24k
            ++a_pos;
75
6.24k
            ++b_pos;
76
6.24k
            ++c_pos;
77
6.24k
        }
78
419
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
5
        while (a_pos < a_end) {
73
4
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4
            ++a_pos;
75
4
            ++b_pos;
76
4
            ++c_pos;
77
4
        }
78
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
57
                                        PaddedPODArray<UInt8>& c) {
66
57
        size_t size = a.size();
67
57
        const A* __restrict a_pos = a.data();
68
57
        const B* __restrict b_pos = b.data();
69
57
        UInt8* __restrict c_pos = c.data();
70
57
        const A* __restrict a_end = a_pos + size;
71
72
1.05k
        while (a_pos < a_end) {
73
996
            *c_pos = Op::apply(*a_pos, *b_pos);
74
996
            ++a_pos;
75
996
            ++b_pos;
76
996
            ++c_pos;
77
996
        }
78
57
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
73
                                        PaddedPODArray<UInt8>& c) {
66
73
        size_t size = a.size();
67
73
        const A* __restrict a_pos = a.data();
68
73
        const B* __restrict b_pos = b.data();
69
73
        UInt8* __restrict c_pos = c.data();
70
73
        const A* __restrict a_end = a_pos + size;
71
72
339
        while (a_pos < a_end) {
73
266
            *c_pos = Op::apply(*a_pos, *b_pos);
74
266
            ++a_pos;
75
266
            ++b_pos;
76
266
            ++c_pos;
77
266
        }
78
73
    }
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
16.1k
                                          PaddedPODArray<UInt8>& c) {
82
16.1k
        size_t size = a.size();
83
16.1k
        const A* __restrict a_pos = a.data();
84
16.1k
        UInt8* __restrict c_pos = c.data();
85
16.1k
        const A* __restrict a_end = a_pos + size;
86
87
25.2M
        while (a_pos < a_end) {
88
25.2M
            *c_pos = Op::apply(*a_pos, b);
89
25.2M
            ++a_pos;
90
25.2M
            ++c_pos;
91
25.2M
        }
92
16.1k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
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
167
        while (a_pos < a_end) {
88
143
            *c_pos = Op::apply(*a_pos, b);
89
143
            ++a_pos;
90
143
            ++c_pos;
91
143
        }
92
24
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
604
                                          PaddedPODArray<UInt8>& c) {
82
604
        size_t size = a.size();
83
604
        const A* __restrict a_pos = a.data();
84
604
        UInt8* __restrict c_pos = c.data();
85
604
        const A* __restrict a_end = a_pos + size;
86
87
204k
        while (a_pos < a_end) {
88
203k
            *c_pos = Op::apply(*a_pos, b);
89
203k
            ++a_pos;
90
203k
            ++c_pos;
91
203k
        }
92
604
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
209
                                          PaddedPODArray<UInt8>& c) {
82
209
        size_t size = a.size();
83
209
        const A* __restrict a_pos = a.data();
84
209
        UInt8* __restrict c_pos = c.data();
85
209
        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
209
    }
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.72k
                                          PaddedPODArray<UInt8>& c) {
82
2.72k
        size_t size = a.size();
83
2.72k
        const A* __restrict a_pos = a.data();
84
2.72k
        UInt8* __restrict c_pos = c.data();
85
2.72k
        const A* __restrict a_end = a_pos + size;
86
87
8.91M
        while (a_pos < a_end) {
88
8.91M
            *c_pos = Op::apply(*a_pos, b);
89
8.91M
            ++a_pos;
90
8.91M
            ++c_pos;
91
8.91M
        }
92
2.72k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
167
                                          PaddedPODArray<UInt8>& c) {
82
167
        size_t size = a.size();
83
167
        const A* __restrict a_pos = a.data();
84
167
        UInt8* __restrict c_pos = c.data();
85
167
        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
167
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.46k
                                          PaddedPODArray<UInt8>& c) {
82
1.46k
        size_t size = a.size();
83
1.46k
        const A* __restrict a_pos = a.data();
84
1.46k
        UInt8* __restrict c_pos = c.data();
85
1.46k
        const A* __restrict a_end = a_pos + size;
86
87
202k
        while (a_pos < a_end) {
88
201k
            *c_pos = Op::apply(*a_pos, b);
89
201k
            ++a_pos;
90
201k
            ++c_pos;
91
201k
        }
92
1.46k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
767
                                          PaddedPODArray<UInt8>& c) {
82
767
        size_t size = a.size();
83
767
        const A* __restrict a_pos = a.data();
84
767
        UInt8* __restrict c_pos = c.data();
85
767
        const A* __restrict a_end = a_pos + size;
86
87
366k
        while (a_pos < a_end) {
88
365k
            *c_pos = Op::apply(*a_pos, b);
89
365k
            ++a_pos;
90
365k
            ++c_pos;
91
365k
        }
92
767
    }
_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
226
                                          PaddedPODArray<UInt8>& c) {
82
226
        size_t size = a.size();
83
226
        const A* __restrict a_pos = a.data();
84
226
        UInt8* __restrict c_pos = c.data();
85
226
        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
226
    }
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
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
1.04k
        while (a_pos < a_end) {
88
1.02k
            *c_pos = Op::apply(*a_pos, b);
89
1.02k
            ++a_pos;
90
1.02k
            ++c_pos;
91
1.02k
        }
92
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
28
                                          PaddedPODArray<UInt8>& c) {
82
28
        size_t size = a.size();
83
28
        const A* __restrict a_pos = a.data();
84
28
        UInt8* __restrict c_pos = c.data();
85
28
        const A* __restrict a_end = a_pos + size;
86
87
70
        while (a_pos < a_end) {
88
42
            *c_pos = Op::apply(*a_pos, b);
89
42
            ++a_pos;
90
42
            ++c_pos;
91
42
        }
92
28
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
40
                                          PaddedPODArray<UInt8>& c) {
82
40
        size_t size = a.size();
83
40
        const A* __restrict a_pos = a.data();
84
40
        UInt8* __restrict c_pos = c.data();
85
40
        const A* __restrict a_end = a_pos + size;
86
87
282
        while (a_pos < a_end) {
88
242
            *c_pos = Op::apply(*a_pos, b);
89
242
            ++a_pos;
90
242
            ++c_pos;
91
242
        }
92
40
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
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
325
                                          PaddedPODArray<UInt8>& c) {
82
325
        size_t size = a.size();
83
325
        const A* __restrict a_pos = a.data();
84
325
        UInt8* __restrict c_pos = c.data();
85
325
        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
325
    }
_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
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
279
        while (a_pos < a_end) {
88
218
            *c_pos = Op::apply(*a_pos, b);
89
218
            ++a_pos;
90
218
            ++c_pos;
91
218
        }
92
61
    }
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
368
                                          PaddedPODArray<UInt8>& c) {
82
368
        size_t size = a.size();
83
368
        const A* __restrict a_pos = a.data();
84
368
        UInt8* __restrict c_pos = c.data();
85
368
        const A* __restrict a_end = a_pos + size;
86
87
3.99k
        while (a_pos < a_end) {
88
3.62k
            *c_pos = Op::apply(*a_pos, b);
89
3.62k
            ++a_pos;
90
3.62k
            ++c_pos;
91
3.62k
        }
92
368
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
27
                                          PaddedPODArray<UInt8>& c) {
82
27
        size_t size = a.size();
83
27
        const A* __restrict a_pos = a.data();
84
27
        UInt8* __restrict c_pos = c.data();
85
27
        const A* __restrict a_end = a_pos + size;
86
87
109
        while (a_pos < a_end) {
88
82
            *c_pos = Op::apply(*a_pos, b);
89
82
            ++a_pos;
90
82
            ++c_pos;
91
82
        }
92
27
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
391
                                          PaddedPODArray<UInt8>& c) {
82
391
        size_t size = a.size();
83
391
        const A* __restrict a_pos = a.data();
84
391
        UInt8* __restrict c_pos = c.data();
85
391
        const A* __restrict a_end = a_pos + size;
86
87
3.60k
        while (a_pos < a_end) {
88
3.21k
            *c_pos = Op::apply(*a_pos, b);
89
3.21k
            ++a_pos;
90
3.21k
            ++c_pos;
91
3.21k
        }
92
391
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
14
                                          PaddedPODArray<UInt8>& c) {
82
14
        size_t size = a.size();
83
14
        const A* __restrict a_pos = a.data();
84
14
        UInt8* __restrict c_pos = c.data();
85
14
        const A* __restrict a_end = a_pos + size;
86
87
35
        while (a_pos < a_end) {
88
21
            *c_pos = Op::apply(*a_pos, b);
89
21
            ++a_pos;
90
21
            ++c_pos;
91
21
        }
92
14
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.64k
                                          PaddedPODArray<UInt8>& c) {
82
1.64k
        size_t size = a.size();
83
1.64k
        const A* __restrict a_pos = a.data();
84
1.64k
        UInt8* __restrict c_pos = c.data();
85
1.64k
        const A* __restrict a_end = a_pos + size;
86
87
14.4k
        while (a_pos < a_end) {
88
12.7k
            *c_pos = Op::apply(*a_pos, b);
89
12.7k
            ++a_pos;
90
12.7k
            ++c_pos;
91
12.7k
        }
92
1.64k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
542
                                          PaddedPODArray<UInt8>& c) {
82
542
        size_t size = a.size();
83
542
        const A* __restrict a_pos = a.data();
84
542
        UInt8* __restrict c_pos = c.data();
85
542
        const A* __restrict a_end = a_pos + size;
86
87
3.33k
        while (a_pos < a_end) {
88
2.79k
            *c_pos = Op::apply(*a_pos, b);
89
2.79k
            ++a_pos;
90
2.79k
            ++c_pos;
91
2.79k
        }
92
542
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.06k
                                          PaddedPODArray<UInt8>& c) {
82
1.06k
        size_t size = a.size();
83
1.06k
        const A* __restrict a_pos = a.data();
84
1.06k
        UInt8* __restrict c_pos = c.data();
85
1.06k
        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.06k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
494
                                          PaddedPODArray<UInt8>& c) {
82
494
        size_t size = a.size();
83
494
        const A* __restrict a_pos = a.data();
84
494
        UInt8* __restrict c_pos = c.data();
85
494
        const A* __restrict a_end = a_pos + size;
86
87
1.46k
        while (a_pos < a_end) {
88
971
            *c_pos = Op::apply(*a_pos, b);
89
971
            ++a_pos;
90
971
            ++c_pos;
91
971
        }
92
494
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
203
                                          PaddedPODArray<UInt8>& c) {
82
203
        size_t size = a.size();
83
203
        const A* __restrict a_pos = a.data();
84
203
        UInt8* __restrict c_pos = c.data();
85
203
        const A* __restrict a_end = a_pos + size;
86
87
1.74k
        while (a_pos < a_end) {
88
1.54k
            *c_pos = Op::apply(*a_pos, b);
89
1.54k
            ++a_pos;
90
1.54k
            ++c_pos;
91
1.54k
        }
92
203
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
13
                                          PaddedPODArray<UInt8>& c) {
82
13
        size_t size = a.size();
83
13
        const A* __restrict a_pos = a.data();
84
13
        UInt8* __restrict c_pos = c.data();
85
13
        const A* __restrict a_end = a_pos + size;
86
87
85.9k
        while (a_pos < a_end) {
88
85.8k
            *c_pos = Op::apply(*a_pos, b);
89
85.8k
            ++a_pos;
90
85.8k
            ++c_pos;
91
85.8k
        }
92
13
    }
_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
200
                                          PaddedPODArray<UInt8>& c) {
82
200
        size_t size = a.size();
83
200
        const A* __restrict a_pos = a.data();
84
200
        UInt8* __restrict c_pos = c.data();
85
200
        const A* __restrict a_end = a_pos + size;
86
87
2.61k
        while (a_pos < a_end) {
88
2.41k
            *c_pos = Op::apply(*a_pos, b);
89
2.41k
            ++a_pos;
90
2.41k
            ++c_pos;
91
2.41k
        }
92
200
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_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
11
        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
1
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
493
                                          PaddedPODArray<UInt8>& c) {
82
493
        size_t size = a.size();
83
493
        const A* __restrict a_pos = a.data();
84
493
        UInt8* __restrict c_pos = c.data();
85
493
        const A* __restrict a_end = a_pos + size;
86
87
7.44k
        while (a_pos < a_end) {
88
6.95k
            *c_pos = Op::apply(*a_pos, b);
89
6.95k
            ++a_pos;
90
6.95k
            ++c_pos;
91
6.95k
        }
92
493
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
167
                                          PaddedPODArray<UInt8>& c) {
82
167
        size_t size = a.size();
83
167
        const A* __restrict a_pos = a.data();
84
167
        UInt8* __restrict c_pos = c.data();
85
167
        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
167
    }
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
13
                                          PaddedPODArray<UInt8>& c) {
82
13
        size_t size = a.size();
83
13
        const A* __restrict a_pos = a.data();
84
13
        UInt8* __restrict c_pos = c.data();
85
13
        const A* __restrict a_end = a_pos + size;
86
87
48.8k
        while (a_pos < a_end) {
88
48.8k
            *c_pos = Op::apply(*a_pos, b);
89
48.8k
            ++a_pos;
90
48.8k
            ++c_pos;
91
48.8k
        }
92
13
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
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
46.4k
        while (a_pos < a_end) {
88
46.4k
            *c_pos = Op::apply(*a_pos, b);
89
46.4k
            ++a_pos;
90
46.4k
            ++c_pos;
91
46.4k
        }
92
15
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
462
                                          PaddedPODArray<UInt8>& c) {
82
462
        size_t size = a.size();
83
462
        const A* __restrict a_pos = a.data();
84
462
        UInt8* __restrict c_pos = c.data();
85
462
        const A* __restrict a_end = a_pos + size;
86
87
1.72M
        while (a_pos < a_end) {
88
1.72M
            *c_pos = Op::apply(*a_pos, b);
89
1.72M
            ++a_pos;
90
1.72M
            ++c_pos;
91
1.72M
        }
92
462
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
121
                                          PaddedPODArray<UInt8>& c) {
82
121
        size_t size = a.size();
83
121
        const A* __restrict a_pos = a.data();
84
121
        UInt8* __restrict c_pos = c.data();
85
121
        const A* __restrict a_end = a_pos + size;
86
87
612k
        while (a_pos < a_end) {
88
612k
            *c_pos = Op::apply(*a_pos, b);
89
612k
            ++a_pos;
90
612k
            ++c_pos;
91
612k
        }
92
121
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
147
                                          PaddedPODArray<UInt8>& c) {
82
147
        size_t size = a.size();
83
147
        const A* __restrict a_pos = a.data();
84
147
        UInt8* __restrict c_pos = c.data();
85
147
        const A* __restrict a_end = a_pos + size;
86
87
559
        while (a_pos < a_end) {
88
412
            *c_pos = Op::apply(*a_pos, b);
89
412
            ++a_pos;
90
412
            ++c_pos;
91
412
        }
92
147
    }
_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
96
        while (a_pos < a_end) {
88
52
            *c_pos = Op::apply(*a_pos, b);
89
52
            ++a_pos;
90
52
            ++c_pos;
91
52
        }
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
57
                                          PaddedPODArray<UInt8>& c) {
82
57
        size_t size = a.size();
83
57
        const A* __restrict a_pos = a.data();
84
57
        UInt8* __restrict c_pos = c.data();
85
57
        const A* __restrict a_end = a_pos + size;
86
87
75.3k
        while (a_pos < a_end) {
88
75.2k
            *c_pos = Op::apply(*a_pos, b);
89
75.2k
            ++a_pos;
90
75.2k
            ++c_pos;
91
75.2k
        }
92
57
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
77
                                          PaddedPODArray<UInt8>& c) {
82
77
        size_t size = a.size();
83
77
        const A* __restrict a_pos = a.data();
84
77
        UInt8* __restrict c_pos = c.data();
85
77
        const A* __restrict a_end = a_pos + size;
86
87
87.9k
        while (a_pos < a_end) {
88
87.8k
            *c_pos = Op::apply(*a_pos, b);
89
87.8k
            ++a_pos;
90
87.8k
            ++c_pos;
91
87.8k
        }
92
77
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
70
                                          PaddedPODArray<UInt8>& c) {
82
70
        size_t size = a.size();
83
70
        const A* __restrict a_pos = a.data();
84
70
        UInt8* __restrict c_pos = c.data();
85
70
        const A* __restrict a_end = a_pos + size;
86
87
38.9k
        while (a_pos < a_end) {
88
38.8k
            *c_pos = Op::apply(*a_pos, b);
89
38.8k
            ++a_pos;
90
38.8k
            ++c_pos;
91
38.8k
        }
92
70
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
89
                                          PaddedPODArray<UInt8>& c) {
82
89
        size_t size = a.size();
83
89
        const A* __restrict a_pos = a.data();
84
89
        UInt8* __restrict c_pos = c.data();
85
89
        const A* __restrict a_end = a_pos + size;
86
87
9.78k
        while (a_pos < a_end) {
88
9.69k
            *c_pos = Op::apply(*a_pos, b);
89
9.69k
            ++a_pos;
90
9.69k
            ++c_pos;
91
9.69k
        }
92
89
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
983
                                          PaddedPODArray<UInt8>& c) {
82
983
        size_t size = a.size();
83
983
        const A* __restrict a_pos = a.data();
84
983
        UInt8* __restrict c_pos = c.data();
85
983
        const A* __restrict a_end = a_pos + size;
86
87
3.99M
        while (a_pos < a_end) {
88
3.99M
            *c_pos = Op::apply(*a_pos, b);
89
3.99M
            ++a_pos;
90
3.99M
            ++c_pos;
91
3.99M
        }
92
983
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.01k
                                          PaddedPODArray<UInt8>& c) {
82
1.01k
        size_t size = a.size();
83
1.01k
        const A* __restrict a_pos = a.data();
84
1.01k
        UInt8* __restrict c_pos = c.data();
85
1.01k
        const A* __restrict a_end = a_pos + size;
86
87
4.04M
        while (a_pos < a_end) {
88
4.04M
            *c_pos = Op::apply(*a_pos, b);
89
4.04M
            ++a_pos;
90
4.04M
            ++c_pos;
91
4.04M
        }
92
1.01k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
132
                                          PaddedPODArray<UInt8>& c) {
82
132
        size_t size = a.size();
83
132
        const A* __restrict a_pos = a.data();
84
132
        UInt8* __restrict c_pos = c.data();
85
132
        const A* __restrict a_end = a_pos + size;
86
87
5.52k
        while (a_pos < a_end) {
88
5.39k
            *c_pos = Op::apply(*a_pos, b);
89
5.39k
            ++a_pos;
90
5.39k
            ++c_pos;
91
5.39k
        }
92
132
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_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.26k
        while (a_pos < a_end) {
88
2.05k
            *c_pos = Op::apply(*a_pos, b);
89
2.05k
            ++a_pos;
90
2.05k
            ++c_pos;
91
2.05k
        }
92
208
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
16
                                          PaddedPODArray<UInt8>& c) {
82
16
        size_t size = a.size();
83
16
        const A* __restrict a_pos = a.data();
84
16
        UInt8* __restrict c_pos = c.data();
85
16
        const A* __restrict a_end = a_pos + size;
86
87
42.5k
        while (a_pos < a_end) {
88
42.5k
            *c_pos = Op::apply(*a_pos, b);
89
42.5k
            ++a_pos;
90
42.5k
            ++c_pos;
91
42.5k
        }
92
16
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
27
                                          PaddedPODArray<UInt8>& c) {
82
27
        size_t size = a.size();
83
27
        const A* __restrict a_pos = a.data();
84
27
        UInt8* __restrict c_pos = c.data();
85
27
        const A* __restrict a_end = a_pos + size;
86
87
107k
        while (a_pos < a_end) {
88
107k
            *c_pos = Op::apply(*a_pos, b);
89
107k
            ++a_pos;
90
107k
            ++c_pos;
91
107k
        }
92
27
    }
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
10
                                          PaddedPODArray<UInt8>& c) {
82
10
        size_t size = a.size();
83
10
        const A* __restrict a_pos = a.data();
84
10
        UInt8* __restrict c_pos = c.data();
85
10
        const A* __restrict a_end = a_pos + size;
86
87
110
        while (a_pos < a_end) {
88
100
            *c_pos = Op::apply(*a_pos, b);
89
100
            ++a_pos;
90
100
            ++c_pos;
91
100
        }
92
10
    }
_ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
10
                                          PaddedPODArray<UInt8>& c) {
82
10
        size_t size = a.size();
83
10
        const A* __restrict a_pos = a.data();
84
10
        UInt8* __restrict c_pos = c.data();
85
10
        const A* __restrict a_end = a_pos + size;
86
87
110
        while (a_pos < a_end) {
88
100
            *c_pos = Op::apply(*a_pos, b);
89
100
            ++a_pos;
90
100
            ++c_pos;
91
100
        }
92
10
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
4
                                          PaddedPODArray<UInt8>& c) {
82
4
        size_t size = a.size();
83
4
        const A* __restrict a_pos = a.data();
84
4
        UInt8* __restrict c_pos = c.data();
85
4
        const A* __restrict a_end = a_pos + size;
86
87
10
        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
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
90
                                          PaddedPODArray<UInt8>& c) {
82
90
        size_t size = a.size();
83
90
        const A* __restrict a_pos = a.data();
84
90
        UInt8* __restrict c_pos = c.data();
85
90
        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
90
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
101
                                          PaddedPODArray<UInt8>& c) {
82
101
        size_t size = a.size();
83
101
        const A* __restrict a_pos = a.data();
84
101
        UInt8* __restrict c_pos = c.data();
85
101
        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
101
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
93
94
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
5
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
5
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
5
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
5
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15constant_vectorEhRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE15constant_vectorES1_RKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS6_IhLm4096ES9_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15constant_vectorEjRKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15constant_vectorEoRKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15constant_vectorEfRKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
97
};
98
99
/// Generic version, implemented for columns of same type.
100
template <typename Op>
101
struct GenericComparisonImpl {
102
9
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
20
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
11
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
11
        }
106
9
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
4
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
10
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
6
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
6
        }
106
4
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
1
        }
106
1
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
1
        }
106
1
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
3
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
6
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
3
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
3
        }
106
3
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
107
108
95
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
95
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
172k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
171k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
171k
        }
113
95
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
13
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
13
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
31
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
18
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
18
        }
113
13
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
8
        }
113
8
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
8
        }
113
8
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
8
        }
113
8
    }
_ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
39
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
39
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
141k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
141k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
141k
        }
113
39
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
19
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
19
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
30.4k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
30.4k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
30.4k
        }
113
19
    }
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
427
                                                      PaddedPODArray<UInt8>& c) {
127
427
        size_t size = a_offsets.size();
128
427
        ColumnString::Offset prev_a_offset = 0;
129
427
        ColumnString::Offset prev_b_offset = 0;
130
427
        const auto* a_pos = a_data.data();
131
427
        const auto* b_pos = b_data.data();
132
133
1.12k
        for (size_t i = 0; i < size; ++i) {
134
697
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
697
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
697
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
697
                             0);
138
139
697
            prev_a_offset = a_offsets[i];
140
697
            prev_b_offset = b_offsets[i];
141
697
        }
142
427
    }
_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
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
768
        for (size_t i = 0; i < size; ++i) {
134
386
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
386
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
386
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
386
                             0);
138
139
386
            prev_a_offset = a_offsets[i];
140
386
            prev_b_offset = b_offsets[i];
141
386
        }
142
382
    }
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
825
                                                 PaddedPODArray<UInt8>& c) {
149
825
        size_t size = a_offsets.size();
150
825
        ColumnString::Offset prev_a_offset = 0;
151
825
        const auto* a_pos = a_data.data();
152
825
        const auto* b_pos = b_data.data();
153
154
1.24M
        for (size_t i = 0; i < size; ++i) {
155
1.24M
            c[i] = Op::apply(
156
1.24M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
1.24M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
1.24M
                    0);
159
160
1.24M
            prev_a_offset = a_offsets[i];
161
1.24M
        }
162
825
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
237
                                                 PaddedPODArray<UInt8>& c) {
149
237
        size_t size = a_offsets.size();
150
237
        ColumnString::Offset prev_a_offset = 0;
151
237
        const auto* a_pos = a_data.data();
152
237
        const auto* b_pos = b_data.data();
153
154
582k
        for (size_t i = 0; i < size; ++i) {
155
581k
            c[i] = Op::apply(
156
581k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
581k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
581k
                    0);
159
160
581k
            prev_a_offset = a_offsets[i];
161
581k
        }
162
237
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
207
                                                 PaddedPODArray<UInt8>& c) {
149
207
        size_t size = a_offsets.size();
150
207
        ColumnString::Offset prev_a_offset = 0;
151
207
        const auto* a_pos = a_data.data();
152
207
        const auto* b_pos = b_data.data();
153
154
72.8k
        for (size_t i = 0; i < size; ++i) {
155
72.6k
            c[i] = Op::apply(
156
72.6k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
72.6k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
72.6k
                    0);
159
160
72.6k
            prev_a_offset = a_offsets[i];
161
72.6k
        }
162
207
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
202
                                                 PaddedPODArray<UInt8>& c) {
149
202
        size_t size = a_offsets.size();
150
202
        ColumnString::Offset prev_a_offset = 0;
151
202
        const auto* a_pos = a_data.data();
152
202
        const auto* b_pos = b_data.data();
153
154
314k
        for (size_t i = 0; i < size; ++i) {
155
314k
            c[i] = Op::apply(
156
314k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
314k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
314k
                    0);
159
160
314k
            prev_a_offset = a_offsets[i];
161
314k
        }
162
202
    }
_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
277k
        for (size_t i = 0; i < size; ++i) {
155
277k
            c[i] = Op::apply(
156
277k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
277k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
277k
                    0);
159
160
277k
            prev_a_offset = a_offsets[i];
161
277k
        }
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
426
                                                      PaddedPODArray<UInt8>& c) {
181
426
        size_t size = a_offsets.size();
182
426
        ColumnString::Offset prev_a_offset = 0;
183
426
        ColumnString::Offset prev_b_offset = 0;
184
426
        const auto* a_pos = a_data.data();
185
426
        const auto* b_pos = b_data.data();
186
187
1.30k
        for (size_t i = 0; i < size; ++i) {
188
875
            auto a_size = a_offsets[i] - prev_a_offset;
189
875
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
875
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
875
                                                               b_pos + prev_b_offset, b_size);
193
194
875
            prev_a_offset = a_offsets[i];
195
875
            prev_b_offset = b_offsets[i];
196
875
        }
197
426
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
425
                                                      PaddedPODArray<UInt8>& c) {
181
425
        size_t size = a_offsets.size();
182
425
        ColumnString::Offset prev_a_offset = 0;
183
425
        ColumnString::Offset prev_b_offset = 0;
184
425
        const auto* a_pos = a_data.data();
185
425
        const auto* b_pos = b_data.data();
186
187
1.29k
        for (size_t i = 0; i < size; ++i) {
188
871
            auto a_size = a_offsets[i] - prev_a_offset;
189
871
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
871
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
871
                                                               b_pos + prev_b_offset, b_size);
193
194
871
            prev_a_offset = a_offsets[i];
195
871
            prev_b_offset = b_offsets[i];
196
871
        }
197
425
    }
_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
10.8k
                                                 PaddedPODArray<UInt8>& c) {
204
10.8k
        size_t size = a_offsets.size();
205
10.8k
        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
10.8k
        } else {
215
10.8k
            ColumnString::Offset prev_a_offset = 0;
216
10.8k
            const auto* a_pos = a_data.data();
217
10.8k
            const auto* b_pos = b_data.data();
218
1.53M
            for (size_t i = 0; i < size; ++i) {
219
1.52M
                auto a_size = a_offsets[i] - prev_a_offset;
220
1.52M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
1.52M
                                                                   b_pos, b_size);
222
1.52M
                prev_a_offset = a_offsets[i];
223
1.52M
            }
224
10.8k
        }
225
10.8k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
10.7k
                                                 PaddedPODArray<UInt8>& c) {
204
10.7k
        size_t size = a_offsets.size();
205
10.7k
        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
10.7k
        } else {
215
10.7k
            ColumnString::Offset prev_a_offset = 0;
216
10.7k
            const auto* a_pos = a_data.data();
217
10.7k
            const auto* b_pos = b_data.data();
218
1.48M
            for (size_t i = 0; i < size; ++i) {
219
1.47M
                auto a_size = a_offsets[i] - prev_a_offset;
220
1.47M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
1.47M
                                                                   b_pos, b_size);
222
1.47M
                prev_a_offset = a_offsets[i];
223
1.47M
            }
224
10.7k
        }
225
10.7k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
127
                                                 PaddedPODArray<UInt8>& c) {
204
127
        size_t size = a_offsets.size();
205
127
        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
102
        } else {
215
102
            ColumnString::Offset prev_a_offset = 0;
216
102
            const auto* a_pos = a_data.data();
217
102
            const auto* b_pos = b_data.data();
218
44.2k
            for (size_t i = 0; i < size; ++i) {
219
44.1k
                auto a_size = a_offsets[i] - prev_a_offset;
220
44.1k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
44.1k
                                                                   b_pos, b_size);
222
44.1k
                prev_a_offset = a_offsets[i];
223
44.1k
            }
224
102
        }
225
127
    }
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
282k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
265
240k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
265
1.12k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
265
4.77k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
265
16.9k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
265
2.64k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
265
16.6k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
266
267
282k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
267
240k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
267
1.12k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
267
4.77k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
267
16.9k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
267
2.64k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
267
16.6k
    FunctionComparison() = default;
268
269
659k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
269
645k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
269
658
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
269
4.05k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
269
4.11k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
269
2.21k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
269
2.65k
    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
27.6k
                            const ColumnPtr& col_right_ptr) const {
275
27.6k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
27.6k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
27.6k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
27.6k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
27.6k
        DCHECK(!(left_is_const && right_is_const));
282
283
27.6k
        if (!left_is_const && !right_is_const) {
284
11.5k
            auto col_res = ColumnUInt8::create();
285
286
11.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
11.5k
            vec_res.resize(col_left->get_data().size());
288
11.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
11.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
11.5k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
11.5k
                                                     vec_res);
292
293
11.5k
            block.replace_by_position(result, std::move(col_res));
294
16.1k
        } else if (!left_is_const && right_is_const) {
295
16.1k
            auto col_res = ColumnUInt8::create();
296
297
16.1k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
16.1k
            vec_res.resize(col_left->size());
299
16.1k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
16.1k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
16.1k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
16.1k
                                                       col_right->get_element(0), vec_res);
303
304
16.1k
            block.replace_by_position(result, std::move(col_res));
305
16.1k
        } else if (left_is_const && !right_is_const) {
306
5
            auto col_res = ColumnUInt8::create();
307
308
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
5
            vec_res.resize(col_right->size());
310
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
5
                              typename PrimitiveTypeTraits<PT>::CppType,
312
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
5
                                                       col_right->get_data(), vec_res);
314
315
5
            block.replace_by_position(result, std::move(col_res));
316
5
        }
317
27.6k
        return Status::OK();
318
27.6k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
90
                            const ColumnPtr& col_right_ptr) const {
275
90
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
90
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
90
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
90
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
90
        DCHECK(!(left_is_const && right_is_const));
282
283
90
        if (!left_is_const && !right_is_const) {
284
66
            auto col_res = ColumnUInt8::create();
285
286
66
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
66
            vec_res.resize(col_left->get_data().size());
288
66
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
66
                              typename PrimitiveTypeTraits<PT>::CppType,
290
66
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
66
                                                     vec_res);
292
293
66
            block.replace_by_position(result, std::move(col_res));
294
66
        } 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
90
        return Status::OK();
318
90
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
807
                            const ColumnPtr& col_right_ptr) const {
275
807
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
807
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
807
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
807
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
807
        DCHECK(!(left_is_const && right_is_const));
282
283
807
        if (!left_is_const && !right_is_const) {
284
203
            auto col_res = ColumnUInt8::create();
285
286
203
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
203
            vec_res.resize(col_left->get_data().size());
288
203
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
203
                              typename PrimitiveTypeTraits<PT>::CppType,
290
203
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
203
                                                     vec_res);
292
293
203
            block.replace_by_position(result, std::move(col_res));
294
604
        } else if (!left_is_const && right_is_const) {
295
604
            auto col_res = ColumnUInt8::create();
296
297
604
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
604
            vec_res.resize(col_left->size());
299
604
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
604
                              typename PrimitiveTypeTraits<PT>::CppType,
301
604
                              Op<PT>>::vector_constant(col_left->get_data(),
302
604
                                                       col_right->get_element(0), vec_res);
303
304
604
            block.replace_by_position(result, std::move(col_res));
305
604
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
807
        return Status::OK();
318
807
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
445
                            const ColumnPtr& col_right_ptr) const {
275
445
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
445
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
445
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
445
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
445
        DCHECK(!(left_is_const && right_is_const));
282
283
446
        if (!left_is_const && !right_is_const) {
284
238
            auto col_res = ColumnUInt8::create();
285
286
238
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
238
            vec_res.resize(col_left->get_data().size());
288
238
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
238
                              typename PrimitiveTypeTraits<PT>::CppType,
290
238
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
238
                                                     vec_res);
292
293
238
            block.replace_by_position(result, std::move(col_res));
294
238
        } else if (!left_is_const && right_is_const) {
295
209
            auto col_res = ColumnUInt8::create();
296
297
209
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
209
            vec_res.resize(col_left->size());
299
209
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
209
                              typename PrimitiveTypeTraits<PT>::CppType,
301
209
                              Op<PT>>::vector_constant(col_left->get_data(),
302
209
                                                       col_right->get_element(0), vec_res);
303
304
209
            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
445
        return Status::OK();
318
445
    }
_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.56k
                            const ColumnPtr& col_right_ptr) const {
275
3.56k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.56k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.56k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.56k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.56k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.56k
        if (!left_is_const && !right_is_const) {
284
842
            auto col_res = ColumnUInt8::create();
285
286
842
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
842
            vec_res.resize(col_left->get_data().size());
288
842
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
842
                              typename PrimitiveTypeTraits<PT>::CppType,
290
842
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
842
                                                     vec_res);
292
293
842
            block.replace_by_position(result, std::move(col_res));
294
2.72k
        } else if (!left_is_const && right_is_const) {
295
2.72k
            auto col_res = ColumnUInt8::create();
296
297
2.72k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2.72k
            vec_res.resize(col_left->size());
299
2.72k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2.72k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2.72k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2.72k
                                                       col_right->get_element(0), vec_res);
303
304
2.72k
            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.56k
        return Status::OK();
318
3.56k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
289
                            const ColumnPtr& col_right_ptr) const {
275
289
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
289
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
289
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
289
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
289
        DCHECK(!(left_is_const && right_is_const));
282
283
289
        if (!left_is_const && !right_is_const) {
284
122
            auto col_res = ColumnUInt8::create();
285
286
122
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
122
            vec_res.resize(col_left->get_data().size());
288
122
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
122
                              typename PrimitiveTypeTraits<PT>::CppType,
290
122
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
122
                                                     vec_res);
292
293
122
            block.replace_by_position(result, std::move(col_res));
294
167
        } else if (!left_is_const && right_is_const) {
295
167
            auto col_res = ColumnUInt8::create();
296
297
167
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
167
            vec_res.resize(col_left->size());
299
167
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
167
                              typename PrimitiveTypeTraits<PT>::CppType,
301
167
                              Op<PT>>::vector_constant(col_left->get_data(),
302
167
                                                       col_right->get_element(0), vec_res);
303
304
167
            block.replace_by_position(result, std::move(col_res));
305
167
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
289
        return Status::OK();
318
289
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.73k
                            const ColumnPtr& col_right_ptr) const {
275
1.73k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.73k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.73k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.73k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.73k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.73k
        if (!left_is_const && !right_is_const) {
284
268
            auto col_res = ColumnUInt8::create();
285
286
268
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
268
            vec_res.resize(col_left->get_data().size());
288
268
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
268
                              typename PrimitiveTypeTraits<PT>::CppType,
290
268
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
268
                                                     vec_res);
292
293
268
            block.replace_by_position(result, std::move(col_res));
294
1.46k
        } else if (!left_is_const && right_is_const) {
295
1.45k
            auto col_res = ColumnUInt8::create();
296
297
1.45k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.45k
            vec_res.resize(col_left->size());
299
1.45k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.45k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.45k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.45k
                                                       col_right->get_element(0), vec_res);
303
304
1.45k
            block.replace_by_position(result, std::move(col_res));
305
1.45k
        } else if (left_is_const && !right_is_const) {
306
5
            auto col_res = ColumnUInt8::create();
307
308
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
5
            vec_res.resize(col_right->size());
310
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
5
                              typename PrimitiveTypeTraits<PT>::CppType,
312
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
5
                                                       col_right->get_data(), vec_res);
314
315
5
            block.replace_by_position(result, std::move(col_res));
316
5
        }
317
1.73k
        return Status::OK();
318
1.73k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.01k
                            const ColumnPtr& col_right_ptr) const {
275
1.01k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.01k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.01k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.01k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.01k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.01k
        if (!left_is_const && !right_is_const) {
284
249
            auto col_res = ColumnUInt8::create();
285
286
249
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
249
            vec_res.resize(col_left->get_data().size());
288
249
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
249
                              typename PrimitiveTypeTraits<PT>::CppType,
290
249
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
249
                                                     vec_res);
292
293
249
            block.replace_by_position(result, std::move(col_res));
294
767
        } else if (!left_is_const && right_is_const) {
295
767
            auto col_res = ColumnUInt8::create();
296
297
767
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
767
            vec_res.resize(col_left->size());
299
767
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
767
                              typename PrimitiveTypeTraits<PT>::CppType,
301
767
                              Op<PT>>::vector_constant(col_left->get_data(),
302
767
                                                       col_right->get_element(0), vec_res);
303
304
767
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.01k
        return Status::OK();
318
1.01k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
99
                            const ColumnPtr& col_right_ptr) const {
275
99
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
99
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
99
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
99
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
99
        DCHECK(!(left_is_const && right_is_const));
282
283
99
        if (!left_is_const && !right_is_const) {
284
75
            auto col_res = ColumnUInt8::create();
285
286
75
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
75
            vec_res.resize(col_left->get_data().size());
288
75
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
75
                              typename PrimitiveTypeTraits<PT>::CppType,
290
75
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
75
                                                     vec_res);
292
293
75
            block.replace_by_position(result, std::move(col_res));
294
75
        } else if (!left_is_const && right_is_const) {
295
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
99
        return Status::OK();
318
99
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_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
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
15
        } 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
20
        return Status::OK();
318
20
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
19
                            const ColumnPtr& col_right_ptr) const {
275
19
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
19
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
19
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
19
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
19
        DCHECK(!(left_is_const && right_is_const));
282
283
19
        if (!left_is_const && !right_is_const) {
284
13
            auto col_res = ColumnUInt8::create();
285
286
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
13
            vec_res.resize(col_left->get_data().size());
288
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
13
                              typename PrimitiveTypeTraits<PT>::CppType,
290
13
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
13
                                                     vec_res);
292
293
13
            block.replace_by_position(result, std::move(col_res));
294
13
        } else if (!left_is_const && right_is_const) {
295
6
            auto col_res = ColumnUInt8::create();
296
297
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6
            vec_res.resize(col_left->size());
299
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6
                                                       col_right->get_element(0), vec_res);
303
304
6
            block.replace_by_position(result, std::move(col_res));
305
6
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
19
        return Status::OK();
318
19
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
95
                            const ColumnPtr& col_right_ptr) const {
275
95
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
95
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
95
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
95
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
95
        DCHECK(!(left_is_const && right_is_const));
282
283
95
        if (!left_is_const && !right_is_const) {
284
95
            auto col_res = ColumnUInt8::create();
285
286
95
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
95
            vec_res.resize(col_left->get_data().size());
288
95
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
95
                              typename PrimitiveTypeTraits<PT>::CppType,
290
95
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
95
                                                     vec_res);
292
293
95
            block.replace_by_position(result, std::move(col_res));
294
95
        } 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
95
        return Status::OK();
318
95
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
328
                            const ColumnPtr& col_right_ptr) const {
275
328
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
328
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
328
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
328
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
328
        DCHECK(!(left_is_const && right_is_const));
282
283
328
        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
226
        } else if (!left_is_const && right_is_const) {
295
226
            auto col_res = ColumnUInt8::create();
296
297
226
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
226
            vec_res.resize(col_left->size());
299
226
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
226
                              typename PrimitiveTypeTraits<PT>::CppType,
301
226
                              Op<PT>>::vector_constant(col_left->get_data(),
302
226
                                                       col_right->get_element(0), vec_res);
303
304
226
            block.replace_by_position(result, std::move(col_res));
305
226
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
328
        return Status::OK();
318
328
    }
_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
40
                            const ColumnPtr& col_right_ptr) const {
275
40
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
40
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
40
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
40
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
40
        DCHECK(!(left_is_const && right_is_const));
282
283
40
        if (!left_is_const && !right_is_const) {
284
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
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
40
        return Status::OK();
318
40
    }
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
84
                            const ColumnPtr& col_right_ptr) const {
275
84
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
84
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
84
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
84
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
84
        DCHECK(!(left_is_const && right_is_const));
282
283
84
        if (!left_is_const && !right_is_const) {
284
56
            auto col_res = ColumnUInt8::create();
285
286
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
56
            vec_res.resize(col_left->get_data().size());
288
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
56
                              typename PrimitiveTypeTraits<PT>::CppType,
290
56
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
56
                                                     vec_res);
292
293
56
            block.replace_by_position(result, std::move(col_res));
294
56
        } 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
84
        return Status::OK();
318
84
    }
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
606
                            const ColumnPtr& col_right_ptr) const {
275
606
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
606
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
606
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
606
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
606
        DCHECK(!(left_is_const && right_is_const));
282
283
606
        if (!left_is_const && !right_is_const) {
284
545
            auto col_res = ColumnUInt8::create();
285
286
545
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
545
            vec_res.resize(col_left->get_data().size());
288
545
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
545
                              typename PrimitiveTypeTraits<PT>::CppType,
290
545
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
545
                                                     vec_res);
292
293
545
            block.replace_by_position(result, std::move(col_res));
294
545
        } 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
606
        return Status::OK();
318
606
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
432
                            const ColumnPtr& col_right_ptr) const {
275
432
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
432
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
432
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
432
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
432
        DCHECK(!(left_is_const && right_is_const));
282
283
432
        if (!left_is_const && !right_is_const) {
284
412
            auto col_res = ColumnUInt8::create();
285
286
412
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
412
            vec_res.resize(col_left->get_data().size());
288
412
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
412
                              typename PrimitiveTypeTraits<PT>::CppType,
290
412
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
412
                                                     vec_res);
292
293
412
            block.replace_by_position(result, std::move(col_res));
294
412
        } 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
432
        return Status::OK();
318
432
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
48
                            const ColumnPtr& col_right_ptr) const {
275
48
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
48
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
48
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
48
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
48
        DCHECK(!(left_is_const && right_is_const));
282
283
48
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
28
        } else if (!left_is_const && right_is_const) {
295
28
            auto col_res = ColumnUInt8::create();
296
297
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
28
            vec_res.resize(col_left->size());
299
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
28
                              typename PrimitiveTypeTraits<PT>::CppType,
301
28
                              Op<PT>>::vector_constant(col_left->get_data(),
302
28
                                                       col_right->get_element(0), vec_res);
303
304
28
            block.replace_by_position(result, std::move(col_res));
305
28
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
48
        return Status::OK();
318
48
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
60
                            const ColumnPtr& col_right_ptr) const {
275
60
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
60
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
60
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
60
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
60
        DCHECK(!(left_is_const && right_is_const));
282
283
60
        if (!left_is_const && !right_is_const) {
284
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
40
        } else if (!left_is_const && right_is_const) {
295
40
            auto col_res = ColumnUInt8::create();
296
297
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
40
            vec_res.resize(col_left->size());
299
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
40
                              typename PrimitiveTypeTraits<PT>::CppType,
301
40
                              Op<PT>>::vector_constant(col_left->get_data(),
302
40
                                                       col_right->get_element(0), vec_res);
303
304
40
            block.replace_by_position(result, std::move(col_res));
305
40
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
60
        return Status::OK();
318
60
    }
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
720
                            const ColumnPtr& col_right_ptr) const {
275
720
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
720
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
720
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
720
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
720
        DCHECK(!(left_is_const && right_is_const));
282
283
720
        if (!left_is_const && !right_is_const) {
284
352
            auto col_res = ColumnUInt8::create();
285
286
352
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
352
            vec_res.resize(col_left->get_data().size());
288
352
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
352
                              typename PrimitiveTypeTraits<PT>::CppType,
290
352
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
352
                                                     vec_res);
292
293
352
            block.replace_by_position(result, std::move(col_res));
294
368
        } else if (!left_is_const && right_is_const) {
295
368
            auto col_res = ColumnUInt8::create();
296
297
368
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
368
            vec_res.resize(col_left->size());
299
368
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
368
                              typename PrimitiveTypeTraits<PT>::CppType,
301
368
                              Op<PT>>::vector_constant(col_left->get_data(),
302
368
                                                       col_right->get_element(0), vec_res);
303
304
368
            block.replace_by_position(result, std::move(col_res));
305
368
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
720
        return Status::OK();
318
720
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
987
                            const ColumnPtr& col_right_ptr) const {
275
987
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
987
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
987
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
987
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
987
        DCHECK(!(left_is_const && right_is_const));
282
283
987
        if (!left_is_const && !right_is_const) {
284
596
            auto col_res = ColumnUInt8::create();
285
286
596
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
596
            vec_res.resize(col_left->get_data().size());
288
596
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
596
                              typename PrimitiveTypeTraits<PT>::CppType,
290
596
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
596
                                                     vec_res);
292
293
596
            block.replace_by_position(result, std::move(col_res));
294
596
        } else if (!left_is_const && right_is_const) {
295
391
            auto col_res = ColumnUInt8::create();
296
297
391
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
391
            vec_res.resize(col_left->size());
299
391
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
391
                              typename PrimitiveTypeTraits<PT>::CppType,
301
391
                              Op<PT>>::vector_constant(col_left->get_data(),
302
391
                                                       col_right->get_element(0), vec_res);
303
304
391
            block.replace_by_position(result, std::move(col_res));
305
391
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
987
        return Status::OK();
318
987
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3.39k
                            const ColumnPtr& col_right_ptr) const {
275
3.39k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.39k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.39k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.39k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.39k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.39k
        if (!left_is_const && !right_is_const) {
284
1.75k
            auto col_res = ColumnUInt8::create();
285
286
1.75k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.75k
            vec_res.resize(col_left->get_data().size());
288
1.75k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.75k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.75k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.75k
                                                     vec_res);
292
293
1.75k
            block.replace_by_position(result, std::move(col_res));
294
1.75k
        } else if (!left_is_const && right_is_const) {
295
1.64k
            auto col_res = ColumnUInt8::create();
296
297
1.64k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.64k
            vec_res.resize(col_left->size());
299
1.64k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.64k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.64k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.64k
                                                       col_right->get_element(0), vec_res);
303
304
1.64k
            block.replace_by_position(result, std::move(col_res));
305
1.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.39k
        return Status::OK();
318
3.39k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.20k
                            const ColumnPtr& col_right_ptr) const {
275
1.20k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.20k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.20k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.20k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.20k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.20k
        if (!left_is_const && !right_is_const) {
284
134
            auto col_res = ColumnUInt8::create();
285
286
134
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
134
            vec_res.resize(col_left->get_data().size());
288
134
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
134
                              typename PrimitiveTypeTraits<PT>::CppType,
290
134
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
134
                                                     vec_res);
292
293
134
            block.replace_by_position(result, std::move(col_res));
294
1.06k
        } else if (!left_is_const && right_is_const) {
295
1.06k
            auto col_res = ColumnUInt8::create();
296
297
1.06k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.06k
            vec_res.resize(col_left->size());
299
1.06k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.06k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.06k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.06k
                                                       col_right->get_element(0), vec_res);
303
304
1.06k
            block.replace_by_position(result, std::move(col_res));
305
1.06k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.20k
        return Status::OK();
318
1.20k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
224
                            const ColumnPtr& col_right_ptr) const {
275
224
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
224
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
224
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
224
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
224
        DCHECK(!(left_is_const && right_is_const));
282
283
224
        if (!left_is_const && !right_is_const) {
284
21
            auto col_res = ColumnUInt8::create();
285
286
21
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
21
            vec_res.resize(col_left->get_data().size());
288
21
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
21
                              typename PrimitiveTypeTraits<PT>::CppType,
290
21
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
21
                                                     vec_res);
292
293
21
            block.replace_by_position(result, std::move(col_res));
294
203
        } else if (!left_is_const && right_is_const) {
295
203
            auto col_res = ColumnUInt8::create();
296
297
203
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
203
            vec_res.resize(col_left->size());
299
203
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
203
                              typename PrimitiveTypeTraits<PT>::CppType,
301
203
                              Op<PT>>::vector_constant(col_left->get_data(),
302
203
                                                       col_right->get_element(0), vec_res);
303
304
203
            block.replace_by_position(result, std::move(col_res));
305
203
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
224
        return Status::OK();
318
224
    }
_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
220
                            const ColumnPtr& col_right_ptr) const {
275
220
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
220
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
220
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
220
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
220
        DCHECK(!(left_is_const && right_is_const));
282
283
220
        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
200
        } else if (!left_is_const && right_is_const) {
295
200
            auto col_res = ColumnUInt8::create();
296
297
200
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
200
            vec_res.resize(col_left->size());
299
200
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
200
                              typename PrimitiveTypeTraits<PT>::CppType,
301
200
                              Op<PT>>::vector_constant(col_left->get_data(),
302
200
                                                       col_right->get_element(0), vec_res);
303
304
200
            block.replace_by_position(result, std::move(col_res));
305
200
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
220
        return Status::OK();
318
220
    }
_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
43
            auto col_res = ColumnUInt8::create();
285
286
43
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
43
            vec_res.resize(col_left->get_data().size());
288
43
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
43
                              typename PrimitiveTypeTraits<PT>::CppType,
290
43
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
43
                                                     vec_res);
292
293
43
            block.replace_by_position(result, std::move(col_res));
294
493
        } else if (!left_is_const && right_is_const) {
295
493
            auto col_res = ColumnUInt8::create();
296
297
493
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
493
            vec_res.resize(col_left->size());
299
493
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
493
                              typename PrimitiveTypeTraits<PT>::CppType,
301
493
                              Op<PT>>::vector_constant(col_left->get_data(),
302
493
                                                       col_right->get_element(0), vec_res);
303
304
493
            block.replace_by_position(result, std::move(col_res));
305
493
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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
13
                            const ColumnPtr& col_right_ptr) const {
275
13
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
13
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
13
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
13
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
13
        DCHECK(!(left_is_const && right_is_const));
282
283
13
        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
13
        } else if (!left_is_const && right_is_const) {
295
13
            auto col_res = ColumnUInt8::create();
296
297
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
13
            vec_res.resize(col_left->size());
299
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
13
                              typename PrimitiveTypeTraits<PT>::CppType,
301
13
                              Op<PT>>::vector_constant(col_left->get_data(),
302
13
                                                       col_right->get_element(0), vec_res);
303
304
13
            block.replace_by_position(result, std::move(col_res));
305
13
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
13
        return Status::OK();
318
13
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
469
                            const ColumnPtr& col_right_ptr) const {
275
469
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
469
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
469
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
469
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
469
        DCHECK(!(left_is_const && right_is_const));
282
283
469
        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
462
        } else if (!left_is_const && right_is_const) {
295
462
            auto col_res = ColumnUInt8::create();
296
297
462
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
462
            vec_res.resize(col_left->size());
299
462
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
462
                              typename PrimitiveTypeTraits<PT>::CppType,
301
462
                              Op<PT>>::vector_constant(col_left->get_data(),
302
462
                                                       col_right->get_element(0), vec_res);
303
304
462
            block.replace_by_position(result, std::move(col_res));
305
462
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
469
        return Status::OK();
318
469
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
153
                            const ColumnPtr& col_right_ptr) const {
275
153
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
153
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
153
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
153
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
153
        DCHECK(!(left_is_const && right_is_const));
282
283
153
        if (!left_is_const && !right_is_const) {
284
6
            auto col_res = ColumnUInt8::create();
285
286
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
6
            vec_res.resize(col_left->get_data().size());
288
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
6
                              typename PrimitiveTypeTraits<PT>::CppType,
290
6
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
6
                                                     vec_res);
292
293
6
            block.replace_by_position(result, std::move(col_res));
294
147
        } else if (!left_is_const && right_is_const) {
295
147
            auto col_res = ColumnUInt8::create();
296
297
147
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
147
            vec_res.resize(col_left->size());
299
147
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
147
                              typename PrimitiveTypeTraits<PT>::CppType,
301
147
                              Op<PT>>::vector_constant(col_left->get_data(),
302
147
                                                       col_right->get_element(0), vec_res);
303
304
147
            block.replace_by_position(result, std::move(col_res));
305
147
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
153
        return Status::OK();
318
153
    }
_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
57
                            const ColumnPtr& col_right_ptr) const {
275
57
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
57
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
57
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
57
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
57
        DCHECK(!(left_is_const && right_is_const));
282
283
57
        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
57
        } else if (!left_is_const && right_is_const) {
295
57
            auto col_res = ColumnUInt8::create();
296
297
57
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
57
            vec_res.resize(col_left->size());
299
57
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
57
                              typename PrimitiveTypeTraits<PT>::CppType,
301
57
                              Op<PT>>::vector_constant(col_left->get_data(),
302
57
                                                       col_right->get_element(0), vec_res);
303
304
57
            block.replace_by_position(result, std::move(col_res));
305
57
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
57
        return Status::OK();
318
57
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
70
                            const ColumnPtr& col_right_ptr) const {
275
70
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
70
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
70
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
70
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
70
        DCHECK(!(left_is_const && right_is_const));
282
283
70
        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
70
        } else if (!left_is_const && right_is_const) {
295
70
            auto col_res = ColumnUInt8::create();
296
297
70
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
70
            vec_res.resize(col_left->size());
299
70
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
70
                              typename PrimitiveTypeTraits<PT>::CppType,
301
70
                              Op<PT>>::vector_constant(col_left->get_data(),
302
70
                                                       col_right->get_element(0), vec_res);
303
304
70
            block.replace_by_position(result, std::move(col_res));
305
70
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
70
        return Status::OK();
318
70
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
988
                            const ColumnPtr& col_right_ptr) const {
275
988
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
988
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
988
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
988
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
988
        DCHECK(!(left_is_const && right_is_const));
282
283
988
        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
983
        } else if (!left_is_const && right_is_const) {
295
983
            auto col_res = ColumnUInt8::create();
296
297
983
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
983
            vec_res.resize(col_left->size());
299
983
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
983
                              typename PrimitiveTypeTraits<PT>::CppType,
301
983
                              Op<PT>>::vector_constant(col_left->get_data(),
302
983
                                                       col_right->get_element(0), vec_res);
303
304
983
            block.replace_by_position(result, std::move(col_res));
305
983
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
988
        return Status::OK();
318
988
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
140
                            const ColumnPtr& col_right_ptr) const {
275
140
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
140
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
140
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
140
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
140
        DCHECK(!(left_is_const && right_is_const));
282
283
140
        if (!left_is_const && !right_is_const) {
284
8
            auto col_res = ColumnUInt8::create();
285
286
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
8
            vec_res.resize(col_left->get_data().size());
288
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
8
                              typename PrimitiveTypeTraits<PT>::CppType,
290
8
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
8
                                                     vec_res);
292
293
8
            block.replace_by_position(result, std::move(col_res));
294
132
        } else if (!left_is_const && right_is_const) {
295
132
            auto col_res = ColumnUInt8::create();
296
297
132
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
132
            vec_res.resize(col_left->size());
299
132
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
132
                              typename PrimitiveTypeTraits<PT>::CppType,
301
132
                              Op<PT>>::vector_constant(col_left->get_data(),
302
132
                                                       col_right->get_element(0), vec_res);
303
304
132
            block.replace_by_position(result, std::move(col_res));
305
132
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
140
        return Status::OK();
318
140
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_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
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
16
        } else if (!left_is_const && right_is_const) {
295
16
            auto col_res = ColumnUInt8::create();
296
297
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
16
            vec_res.resize(col_left->size());
299
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
16
                              typename PrimitiveTypeTraits<PT>::CppType,
301
16
                              Op<PT>>::vector_constant(col_left->get_data(),
302
16
                                                       col_right->get_element(0), vec_res);
303
304
16
            block.replace_by_position(result, std::move(col_res));
305
16
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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_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
24
                            const ColumnPtr& col_right_ptr) const {
275
24
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
24
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
24
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
24
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
24
        DCHECK(!(left_is_const && right_is_const));
282
283
24
        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
4
            auto col_res = ColumnUInt8::create();
296
297
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
4
            vec_res.resize(col_left->size());
299
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
4
                              typename PrimitiveTypeTraits<PT>::CppType,
301
4
                              Op<PT>>::vector_constant(col_left->get_data(),
302
4
                                                       col_right->get_element(0), vec_res);
303
304
4
            block.replace_by_position(result, std::move(col_res));
305
4
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
24
        return Status::OK();
318
24
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_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
33
            auto col_res = ColumnUInt8::create();
285
286
33
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
33
            vec_res.resize(col_left->get_data().size());
288
33
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
33
                              typename PrimitiveTypeTraits<PT>::CppType,
290
33
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
33
                                                     vec_res);
292
293
33
            block.replace_by_position(result, std::move(col_res));
294
90
        } else if (!left_is_const && right_is_const) {
295
90
            auto col_res = ColumnUInt8::create();
296
297
90
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
90
            vec_res.resize(col_left->size());
299
90
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
90
                              typename PrimitiveTypeTraits<PT>::CppType,
301
90
                              Op<PT>>::vector_constant(col_left->get_data(),
302
90
                                                       col_right->get_element(0), vec_res);
303
304
90
            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
122
        return Status::OK();
318
122
    }
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
73
                            const ColumnPtr& col_right_ptr) const {
275
73
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
73
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
73
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
73
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
73
        DCHECK(!(left_is_const && right_is_const));
282
283
73
        if (!left_is_const && !right_is_const) {
284
73
            auto col_res = ColumnUInt8::create();
285
286
73
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
73
            vec_res.resize(col_left->get_data().size());
288
73
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
73
                              typename PrimitiveTypeTraits<PT>::CppType,
290
73
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
73
                                                     vec_res);
292
293
73
            block.replace_by_position(result, std::move(col_res));
294
73
        } 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
73
        return Status::OK();
318
73
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.92k
                            const ColumnPtr& col_right_ptr) const {
275
1.92k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.92k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.92k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.92k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.92k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.92k
        if (!left_is_const && !right_is_const) {
284
1.59k
            auto col_res = ColumnUInt8::create();
285
286
1.59k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.59k
            vec_res.resize(col_left->get_data().size());
288
1.59k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.59k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.59k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.59k
                                                     vec_res);
292
293
1.59k
            block.replace_by_position(result, std::move(col_res));
294
1.59k
        } else if (!left_is_const && right_is_const) {
295
325
            auto col_res = ColumnUInt8::create();
296
297
325
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
325
            vec_res.resize(col_left->size());
299
325
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
325
                              typename PrimitiveTypeTraits<PT>::CppType,
301
325
                              Op<PT>>::vector_constant(col_left->get_data(),
302
325
                                                       col_right->get_element(0), vec_res);
303
304
325
            block.replace_by_position(result, std::move(col_res));
305
325
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.92k
        return Status::OK();
318
1.92k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
300
                            const ColumnPtr& col_right_ptr) const {
275
300
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
300
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
300
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
300
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
300
        DCHECK(!(left_is_const && right_is_const));
282
283
300
        if (!left_is_const && !right_is_const) {
284
239
            auto col_res = ColumnUInt8::create();
285
286
239
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
239
            vec_res.resize(col_left->get_data().size());
288
239
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
239
                              typename PrimitiveTypeTraits<PT>::CppType,
290
239
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
239
                                                     vec_res);
292
293
239
            block.replace_by_position(result, std::move(col_res));
294
239
        } 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
300
        return Status::OK();
318
300
    }
_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
802
                            const ColumnPtr& col_right_ptr) const {
275
802
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
802
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
802
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
802
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
802
        DCHECK(!(left_is_const && right_is_const));
282
283
802
        if (!left_is_const && !right_is_const) {
284
775
            auto col_res = ColumnUInt8::create();
285
286
775
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
775
            vec_res.resize(col_left->get_data().size());
288
775
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
775
                              typename PrimitiveTypeTraits<PT>::CppType,
290
775
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
775
                                                     vec_res);
292
293
775
            block.replace_by_position(result, std::move(col_res));
294
775
        } 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
802
        return Status::OK();
318
802
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_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
110
            auto col_res = ColumnUInt8::create();
285
286
110
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
110
            vec_res.resize(col_left->get_data().size());
288
110
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
110
                              typename PrimitiveTypeTraits<PT>::CppType,
290
110
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
110
                                                     vec_res);
292
293
110
            block.replace_by_position(result, std::move(col_res));
294
110
        } else if (!left_is_const && right_is_const) {
295
14
            auto col_res = ColumnUInt8::create();
296
297
14
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
14
            vec_res.resize(col_left->size());
299
14
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
14
                              typename PrimitiveTypeTraits<PT>::CppType,
301
14
                              Op<PT>>::vector_constant(col_left->get_data(),
302
14
                                                       col_right->get_element(0), vec_res);
303
304
14
            block.replace_by_position(result, std::move(col_res));
305
14
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
124
        return Status::OK();
318
124
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
692
                            const ColumnPtr& col_right_ptr) const {
275
692
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
692
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
692
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
692
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
692
        DCHECK(!(left_is_const && right_is_const));
282
283
692
        if (!left_is_const && !right_is_const) {
284
150
            auto col_res = ColumnUInt8::create();
285
286
150
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
150
            vec_res.resize(col_left->get_data().size());
288
150
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
150
                              typename PrimitiveTypeTraits<PT>::CppType,
290
150
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
150
                                                     vec_res);
292
293
150
            block.replace_by_position(result, std::move(col_res));
294
542
        } else if (!left_is_const && right_is_const) {
295
542
            auto col_res = ColumnUInt8::create();
296
297
542
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
542
            vec_res.resize(col_left->size());
299
542
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
542
                              typename PrimitiveTypeTraits<PT>::CppType,
301
542
                              Op<PT>>::vector_constant(col_left->get_data(),
302
542
                                                       col_right->get_element(0), vec_res);
303
304
542
            block.replace_by_position(result, std::move(col_res));
305
542
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
692
        return Status::OK();
318
692
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
721
                            const ColumnPtr& col_right_ptr) const {
275
721
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
721
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
721
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
721
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
721
        DCHECK(!(left_is_const && right_is_const));
282
283
722
        if (!left_is_const && !right_is_const) {
284
228
            auto col_res = ColumnUInt8::create();
285
286
228
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
228
            vec_res.resize(col_left->get_data().size());
288
228
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
228
                              typename PrimitiveTypeTraits<PT>::CppType,
290
228
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
228
                                                     vec_res);
292
293
228
            block.replace_by_position(result, std::move(col_res));
294
494
        } else if (!left_is_const && right_is_const) {
295
494
            auto col_res = ColumnUInt8::create();
296
297
494
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
494
            vec_res.resize(col_left->size());
299
494
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
494
                              typename PrimitiveTypeTraits<PT>::CppType,
301
494
                              Op<PT>>::vector_constant(col_left->get_data(),
302
494
                                                       col_right->get_element(0), vec_res);
303
304
494
            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
721
        return Status::OK();
318
721
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
168
                            const ColumnPtr& col_right_ptr) const {
275
168
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
168
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
168
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
168
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
168
        DCHECK(!(left_is_const && right_is_const));
282
283
168
        if (!left_is_const && !right_is_const) {
284
155
            auto col_res = ColumnUInt8::create();
285
286
155
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
155
            vec_res.resize(col_left->get_data().size());
288
155
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
155
                              typename PrimitiveTypeTraits<PT>::CppType,
290
155
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
155
                                                     vec_res);
292
293
155
            block.replace_by_position(result, std::move(col_res));
294
155
        } else if (!left_is_const && right_is_const) {
295
13
            auto col_res = ColumnUInt8::create();
296
297
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
13
            vec_res.resize(col_left->size());
299
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
13
                              typename PrimitiveTypeTraits<PT>::CppType,
301
13
                              Op<PT>>::vector_constant(col_left->get_data(),
302
13
                                                       col_right->get_element(0), vec_res);
303
304
13
            block.replace_by_position(result, std::move(col_res));
305
13
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
168
        return Status::OK();
318
168
    }
_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
135
                            const ColumnPtr& col_right_ptr) const {
275
135
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
135
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
135
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
135
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
135
        DCHECK(!(left_is_const && right_is_const));
282
283
135
        if (!left_is_const && !right_is_const) {
284
134
            auto col_res = ColumnUInt8::create();
285
286
134
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
134
            vec_res.resize(col_left->get_data().size());
288
134
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
134
                              typename PrimitiveTypeTraits<PT>::CppType,
290
134
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
134
                                                     vec_res);
292
293
134
            block.replace_by_position(result, std::move(col_res));
294
134
        } else if (!left_is_const && right_is_const) {
295
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
135
        return Status::OK();
318
135
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
317
                            const ColumnPtr& col_right_ptr) const {
275
317
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
317
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
317
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
317
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
317
        DCHECK(!(left_is_const && right_is_const));
282
283
317
        if (!left_is_const && !right_is_const) {
284
149
            auto col_res = ColumnUInt8::create();
285
286
149
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
149
            vec_res.resize(col_left->get_data().size());
288
149
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
149
                              typename PrimitiveTypeTraits<PT>::CppType,
290
149
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
149
                                                     vec_res);
292
293
149
            block.replace_by_position(result, std::move(col_res));
294
168
        } else if (!left_is_const && right_is_const) {
295
167
            auto col_res = ColumnUInt8::create();
296
297
167
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
167
            vec_res.resize(col_left->size());
299
167
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
167
                              typename PrimitiveTypeTraits<PT>::CppType,
301
167
                              Op<PT>>::vector_constant(col_left->get_data(),
302
167
                                                       col_right->get_element(0), vec_res);
303
304
167
            block.replace_by_position(result, std::move(col_res));
305
167
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
317
        return Status::OK();
318
317
    }
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
15
                            const ColumnPtr& col_right_ptr) const {
275
15
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
15
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
15
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
15
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
15
        DCHECK(!(left_is_const && right_is_const));
282
283
15
        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
15
        } 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
15
        return Status::OK();
318
15
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
537
                            const ColumnPtr& col_right_ptr) const {
275
537
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
537
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
537
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
537
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
537
        DCHECK(!(left_is_const && right_is_const));
282
283
537
        if (!left_is_const && !right_is_const) {
284
416
            auto col_res = ColumnUInt8::create();
285
286
416
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
416
            vec_res.resize(col_left->get_data().size());
288
416
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
416
                              typename PrimitiveTypeTraits<PT>::CppType,
290
416
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
416
                                                     vec_res);
292
293
416
            block.replace_by_position(result, std::move(col_res));
294
416
        } else if (!left_is_const && right_is_const) {
295
121
            auto col_res = ColumnUInt8::create();
296
297
121
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
121
            vec_res.resize(col_left->size());
299
121
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
121
                              typename PrimitiveTypeTraits<PT>::CppType,
301
121
                              Op<PT>>::vector_constant(col_left->get_data(),
302
121
                                                       col_right->get_element(0), vec_res);
303
304
121
            block.replace_by_position(result, std::move(col_res));
305
121
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
537
        return Status::OK();
318
537
    }
_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
78
                            const ColumnPtr& col_right_ptr) const {
275
78
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
78
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
78
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
78
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
78
        DCHECK(!(left_is_const && right_is_const));
282
283
78
        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
77
        } else if (!left_is_const && right_is_const) {
295
77
            auto col_res = ColumnUInt8::create();
296
297
77
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
77
            vec_res.resize(col_left->size());
299
77
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
77
                              typename PrimitiveTypeTraits<PT>::CppType,
301
77
                              Op<PT>>::vector_constant(col_left->get_data(),
302
77
                                                       col_right->get_element(0), vec_res);
303
304
77
            block.replace_by_position(result, std::move(col_res));
305
77
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
78
        return Status::OK();
318
78
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
89
                            const ColumnPtr& col_right_ptr) const {
275
89
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
89
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
89
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
89
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
89
        DCHECK(!(left_is_const && right_is_const));
282
283
89
        if (!left_is_const && !right_is_const) {
284
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
89
        } else if (!left_is_const && right_is_const) {
295
89
            auto col_res = ColumnUInt8::create();
296
297
89
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
89
            vec_res.resize(col_left->size());
299
89
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
89
                              typename PrimitiveTypeTraits<PT>::CppType,
301
89
                              Op<PT>>::vector_constant(col_left->get_data(),
302
89
                                                       col_right->get_element(0), vec_res);
303
304
89
            block.replace_by_position(result, std::move(col_res));
305
89
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
89
        return Status::OK();
318
89
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.06k
                            const ColumnPtr& col_right_ptr) const {
275
1.06k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.06k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.06k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.06k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.06k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.06k
        if (!left_is_const && !right_is_const) {
284
57
            auto col_res = ColumnUInt8::create();
285
286
57
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
57
            vec_res.resize(col_left->get_data().size());
288
57
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
57
                              typename PrimitiveTypeTraits<PT>::CppType,
290
57
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
57
                                                     vec_res);
292
293
57
            block.replace_by_position(result, std::move(col_res));
294
1.01k
        } else if (!left_is_const && right_is_const) {
295
1.01k
            auto col_res = ColumnUInt8::create();
296
297
1.01k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.01k
            vec_res.resize(col_left->size());
299
1.01k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.01k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.01k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.01k
                                                       col_right->get_element(0), vec_res);
303
304
1.01k
            block.replace_by_position(result, std::move(col_res));
305
1.01k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.06k
        return Status::OK();
318
1.06k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
281
                            const ColumnPtr& col_right_ptr) const {
275
281
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
281
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
281
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
281
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
281
        DCHECK(!(left_is_const && right_is_const));
282
283
281
        if (!left_is_const && !right_is_const) {
284
73
            auto col_res = ColumnUInt8::create();
285
286
73
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
73
            vec_res.resize(col_left->get_data().size());
288
73
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
73
                              typename PrimitiveTypeTraits<PT>::CppType,
290
73
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
73
                                                     vec_res);
292
293
73
            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
281
        return Status::OK();
318
281
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
27
                            const ColumnPtr& col_right_ptr) const {
275
27
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
27
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
27
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
27
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
27
        DCHECK(!(left_is_const && right_is_const));
282
283
27
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
27
        } else if (!left_is_const && right_is_const) {
295
27
            auto col_res = ColumnUInt8::create();
296
297
27
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
27
            vec_res.resize(col_left->size());
299
27
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
27
                              typename PrimitiveTypeTraits<PT>::CppType,
301
27
                              Op<PT>>::vector_constant(col_left->get_data(),
302
27
                                                       col_right->get_element(0), vec_res);
303
304
27
            block.replace_by_position(result, std::move(col_res));
305
27
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
27
        return Status::OK();
318
27
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
10
                            const ColumnPtr& col_right_ptr) const {
275
10
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
10
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
10
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
10
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
10
        DCHECK(!(left_is_const && right_is_const));
282
283
10
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
10
        } else if (!left_is_const && right_is_const) {
295
10
            auto col_res = ColumnUInt8::create();
296
297
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10
            vec_res.resize(col_left->size());
299
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10
                                                       col_right->get_element(0), vec_res);
303
304
10
            block.replace_by_position(result, std::move(col_res));
305
10
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
10
        return Status::OK();
318
10
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
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
120
                            const ColumnPtr& col_right_ptr) const {
275
120
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
120
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
120
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
120
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
120
        DCHECK(!(left_is_const && right_is_const));
282
283
121
        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
101
        } else if (!left_is_const && right_is_const) {
295
101
            auto col_res = ColumnUInt8::create();
296
297
101
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
101
            vec_res.resize(col_left->size());
299
101
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
101
                              typename PrimitiveTypeTraits<PT>::CppType,
301
101
                              Op<PT>>::vector_constant(col_left->get_data(),
302
101
                                                       col_right->get_element(0), vec_res);
303
304
101
            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
120
        return Status::OK();
318
120
    }
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.27k
                           const ColumnWithTypeAndName& col_right) const {
322
3.27k
        auto call = [&](const auto& type) -> bool {
323
3.27k
            using DispatchType = std::decay_t<decltype(type)>;
324
3.27k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
3.27k
                    block, result, col_left, col_right);
326
3.27k
            return true;
327
3.27k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
154
        auto call = [&](const auto& type) -> bool {
323
154
            using DispatchType = std::decay_t<decltype(type)>;
324
154
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
154
                    block, result, col_left, col_right);
326
154
            return true;
327
154
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
156
        auto call = [&](const auto& type) -> bool {
323
156
            using DispatchType = std::decay_t<decltype(type)>;
324
156
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
156
                    block, result, col_left, col_right);
326
156
            return true;
327
156
        };
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
896
        auto call = [&](const auto& type) -> bool {
323
896
            using DispatchType = std::decay_t<decltype(type)>;
324
896
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
896
                    block, result, col_left, col_right);
326
896
            return true;
327
896
        };
_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
8
        auto call = [&](const auto& type) -> bool {
323
8
            using DispatchType = std::decay_t<decltype(type)>;
324
8
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
8
                    block, result, col_left, col_right);
326
8
            return true;
327
8
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
65
        auto call = [&](const auto& type) -> bool {
323
65
            using DispatchType = std::decay_t<decltype(type)>;
324
65
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
65
                    block, result, col_left, col_right);
326
65
            return true;
327
65
        };
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
982
        auto call = [&](const auto& type) -> bool {
323
982
            using DispatchType = std::decay_t<decltype(type)>;
324
982
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
982
                    block, result, col_left, col_right);
326
982
            return true;
327
982
        };
_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
4
        auto call = [&](const auto& type) -> bool {
323
4
            using DispatchType = std::decay_t<decltype(type)>;
324
4
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
4
                    block, result, col_left, col_right);
326
4
            return true;
327
4
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
33
        auto call = [&](const auto& type) -> bool {
323
33
            using DispatchType = std::decay_t<decltype(type)>;
324
33
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
33
                    block, result, col_left, col_right);
326
33
            return true;
327
33
        };
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
31
        auto call = [&](const auto& type) -> bool {
323
31
            using DispatchType = std::decay_t<decltype(type)>;
324
31
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
31
                    block, result, col_left, col_right);
326
31
            return true;
327
31
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
21
        auto call = [&](const auto& type) -> bool {
323
21
            using DispatchType = std::decay_t<decltype(type)>;
324
21
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
21
                    block, result, col_left, col_right);
326
21
            return true;
327
21
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
210
        auto call = [&](const auto& type) -> bool {
323
210
            using DispatchType = std::decay_t<decltype(type)>;
324
210
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
210
                    block, result, col_left, col_right);
326
210
            return true;
327
210
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
213
        auto call = [&](const auto& type) -> bool {
323
213
            using DispatchType = std::decay_t<decltype(type)>;
324
213
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
213
                    block, result, col_left, col_right);
326
213
            return true;
327
213
        };
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
265
        auto call = [&](const auto& type) -> bool {
323
265
            using DispatchType = std::decay_t<decltype(type)>;
324
265
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
265
                    block, result, col_left, col_right);
326
265
            return true;
327
265
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
1
        auto call = [&](const auto& type) -> bool {
323
1
            using DispatchType = std::decay_t<decltype(type)>;
324
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1
                    block, result, col_left, col_right);
326
1
            return true;
327
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
7
        auto call = [&](const auto& type) -> bool {
323
7
            using DispatchType = std::decay_t<decltype(type)>;
324
7
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
7
                    block, result, col_left, col_right);
326
7
            return true;
327
7
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
36
        auto call = [&](const auto& type) -> bool {
323
36
            using DispatchType = std::decay_t<decltype(type)>;
324
36
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
36
                    block, result, col_left, col_right);
326
36
            return true;
327
36
        };
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
23
        auto call = [&](const auto& type) -> bool {
323
23
            using DispatchType = std::decay_t<decltype(type)>;
324
23
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
23
                    block, result, col_left, col_right);
326
23
            return true;
327
23
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
16
        auto call = [&](const auto& type) -> bool {
323
16
            using DispatchType = std::decay_t<decltype(type)>;
324
16
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
16
                    block, result, col_left, col_right);
326
16
            return true;
327
16
        };
328
329
3.27k
        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.27k
        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.27k
        return Status::OK();
340
3.27k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.23k
                           const ColumnWithTypeAndName& col_right) const {
322
1.23k
        auto call = [&](const auto& type) -> bool {
323
1.23k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.23k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.23k
                    block, result, col_left, col_right);
326
1.23k
            return true;
327
1.23k
        };
328
329
1.23k
        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.23k
        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.23k
        return Status::OK();
340
1.23k
    }
_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
1.05k
                           const ColumnWithTypeAndName& col_right) const {
322
1.05k
        auto call = [&](const auto& type) -> bool {
323
1.05k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.05k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.05k
                    block, result, col_left, col_right);
326
1.05k
            return true;
327
1.05k
        };
328
329
1.05k
        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.05k
        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.05k
        return Status::OK();
340
1.05k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
89
                           const ColumnWithTypeAndName& col_right) const {
322
89
        auto call = [&](const auto& type) -> bool {
323
89
            using DispatchType = std::decay_t<decltype(type)>;
324
89
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
89
                    block, result, col_left, col_right);
326
89
            return true;
327
89
        };
328
329
89
        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
89
        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
89
        return Status::OK();
340
89
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
689
                           const ColumnWithTypeAndName& col_right) const {
322
689
        auto call = [&](const auto& type) -> bool {
323
689
            using DispatchType = std::decay_t<decltype(type)>;
324
689
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
689
                    block, result, col_left, col_right);
326
689
            return true;
327
689
        };
328
329
689
        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
689
        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
689
        return Status::OK();
340
689
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
82
                           const ColumnWithTypeAndName& col_right) const {
322
82
        auto call = [&](const auto& type) -> bool {
323
82
            using DispatchType = std::decay_t<decltype(type)>;
324
82
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
82
                    block, result, col_left, col_right);
326
82
            return true;
327
82
        };
328
329
82
        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
82
        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
82
        return Status::OK();
340
82
    }
341
342
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
343
12.5k
                          const IColumn* c1) const {
344
12.5k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
12.5k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
12.5k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
12.5k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
12.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
12.5k
        DCHECK(!(c0_const && c1_const));
353
12.5k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
12.5k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
12.5k
        ColumnString::Offset c0_const_size = 0;
356
12.5k
        ColumnString::Offset c1_const_size = 0;
357
358
12.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
12.5k
        if (c1_const) {
372
11.7k
            const ColumnString* c1_const_string =
373
11.7k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
11.7k
            if (c1_const_string) {
376
11.7k
                c1_const_chars = &c1_const_string->get_chars();
377
11.7k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
11.7k
        }
383
384
12.5k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
12.5k
        auto c_res = ColumnUInt8::create();
387
12.5k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
12.5k
        vec_res.resize(c0->size());
389
390
12.5k
        if (c0_string && c1_string) {
391
853
            StringImpl::string_vector_string_vector(
392
853
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
853
                    c1_string->get_offsets(), vec_res);
394
11.7k
        } else if (c0_string && c1_const) {
395
11.7k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
11.7k
                                               *c1_const_chars, c1_const_size, vec_res);
397
18.4E
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
18.4E
        } else {
402
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
18.4E
                                        c0->get_name(), c1->get_name(), name);
404
18.4E
        }
405
12.5k
        block.replace_by_position(result, std::move(c_res));
406
12.5k
        return Status::OK();
407
12.5k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
11.1k
                          const IColumn* c1) const {
344
11.1k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
11.1k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
11.1k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
11.1k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
11.1k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
11.1k
        DCHECK(!(c0_const && c1_const));
353
11.1k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
11.1k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
11.1k
        ColumnString::Offset c0_const_size = 0;
356
11.1k
        ColumnString::Offset c1_const_size = 0;
357
358
11.1k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
11.1k
        if (c1_const) {
372
10.7k
            const ColumnString* c1_const_string =
373
10.7k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
10.7k
            if (c1_const_string) {
376
10.7k
                c1_const_chars = &c1_const_string->get_chars();
377
10.7k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
10.7k
        }
383
384
11.1k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
11.1k
        auto c_res = ColumnUInt8::create();
387
11.1k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
11.1k
        vec_res.resize(c0->size());
389
390
11.1k
        if (c0_string && c1_string) {
391
425
            StringImpl::string_vector_string_vector(
392
425
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
425
                    c1_string->get_offsets(), vec_res);
394
10.7k
        } else if (c0_string && c1_const) {
395
10.7k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
10.7k
                                               *c1_const_chars, c1_const_size, vec_res);
397
18.4E
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
18.4E
        } else {
402
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
18.4E
                                        c0->get_name(), c1->get_name(), name);
404
18.4E
        }
405
11.1k
        block.replace_by_position(result, std::move(c_res));
406
11.1k
        return Status::OK();
407
11.1k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
128
                          const IColumn* c1) const {
344
128
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
128
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
128
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
128
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
128
        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
128
        DCHECK(!(c0_const && c1_const));
353
128
        const ColumnString::Chars* c0_const_chars = nullptr;
354
128
        const ColumnString::Chars* c1_const_chars = nullptr;
355
128
        ColumnString::Offset c0_const_size = 0;
356
128
        ColumnString::Offset c1_const_size = 0;
357
358
128
        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
128
        if (c1_const) {
372
127
            const ColumnString* c1_const_string =
373
127
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
127
            if (c1_const_string) {
376
127
                c1_const_chars = &c1_const_string->get_chars();
377
127
                c1_const_size = c1_const_string->get_offsets()[0];
378
127
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
127
        }
383
384
128
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
128
        auto c_res = ColumnUInt8::create();
387
128
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
128
        vec_res.resize(c0->size());
389
390
128
        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
127
        } else if (c0_string && c1_const) {
395
127
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
127
                                               *c1_const_chars, c1_const_size, vec_res);
397
127
        } 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
128
        block.replace_by_position(result, std::move(c_res));
406
128
        return Status::OK();
407
128
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
239
                          const IColumn* c1) const {
344
239
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
239
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
239
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
239
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
239
        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
239
        DCHECK(!(c0_const && c1_const));
353
239
        const ColumnString::Chars* c0_const_chars = nullptr;
354
239
        const ColumnString::Chars* c1_const_chars = nullptr;
355
239
        ColumnString::Offset c0_const_size = 0;
356
239
        ColumnString::Offset c1_const_size = 0;
357
358
239
        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
239
        if (c1_const) {
372
237
            const ColumnString* c1_const_string =
373
237
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
237
            if (c1_const_string) {
376
237
                c1_const_chars = &c1_const_string->get_chars();
377
237
                c1_const_size = c1_const_string->get_offsets()[0];
378
237
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
237
        }
383
384
239
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
239
        auto c_res = ColumnUInt8::create();
387
239
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
239
        vec_res.resize(c0->size());
389
390
239
        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
237
        } else if (c0_string && c1_const) {
395
237
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
237
                                               *c1_const_chars, c1_const_size, vec_res);
397
237
        } 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
239
        block.replace_by_position(result, std::move(c_res));
406
239
        return Status::OK();
407
239
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
244
                          const IColumn* c1) const {
344
244
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
244
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
244
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
244
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
245
        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
244
        DCHECK(!(c0_const && c1_const));
353
244
        const ColumnString::Chars* c0_const_chars = nullptr;
354
244
        const ColumnString::Chars* c1_const_chars = nullptr;
355
244
        ColumnString::Offset c0_const_size = 0;
356
244
        ColumnString::Offset c1_const_size = 0;
357
358
244
        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
244
        if (c1_const) {
372
202
            const ColumnString* c1_const_string =
373
202
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
202
            if (c1_const_string) {
376
202
                c1_const_chars = &c1_const_string->get_chars();
377
202
                c1_const_size = c1_const_string->get_offsets()[0];
378
202
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
202
        }
383
384
244
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
244
        auto c_res = ColumnUInt8::create();
387
244
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
244
        vec_res.resize(c0->size());
389
390
245
        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
202
        } else if (c0_string && c1_const) {
395
202
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
202
                                               *c1_const_chars, c1_const_size, vec_res);
397
18.4E
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
18.4E
        } else {
402
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
18.4E
                                        c0->get_name(), c1->get_name(), name);
404
18.4E
        }
405
245
        block.replace_by_position(result, std::move(c_res));
406
245
        return Status::OK();
407
244
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
589
                          const IColumn* c1) const {
344
589
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
589
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
589
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
589
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
589
        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
589
        DCHECK(!(c0_const && c1_const));
353
589
        const ColumnString::Chars* c0_const_chars = nullptr;
354
589
        const ColumnString::Chars* c1_const_chars = nullptr;
355
589
        ColumnString::Offset c0_const_size = 0;
356
589
        ColumnString::Offset c1_const_size = 0;
357
358
589
        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
589
        if (c1_const) {
372
207
            const ColumnString* c1_const_string =
373
207
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
207
            if (c1_const_string) {
376
207
                c1_const_chars = &c1_const_string->get_chars();
377
207
                c1_const_size = c1_const_string->get_offsets()[0];
378
207
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
207
        }
383
384
589
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
589
        auto c_res = ColumnUInt8::create();
387
589
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
589
        vec_res.resize(c0->size());
389
390
589
        if (c0_string && c1_string) {
391
382
            StringImpl::string_vector_string_vector(
392
382
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
382
                    c1_string->get_offsets(), vec_res);
394
382
        } else if (c0_string && c1_const) {
395
207
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
207
                                               *c1_const_chars, c1_const_size, vec_res);
397
207
        } 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
589
        block.replace_by_position(result, std::move(c_res));
406
589
        return Status::OK();
407
589
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
178
                          const IColumn* c1) const {
344
178
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
178
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
178
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
178
        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
178
        DCHECK(!(c0_const && c1_const));
353
178
        const ColumnString::Chars* c0_const_chars = nullptr;
354
178
        const ColumnString::Chars* c1_const_chars = nullptr;
355
178
        ColumnString::Offset c0_const_size = 0;
356
178
        ColumnString::Offset c1_const_size = 0;
357
358
178
        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
178
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
178
        auto c_res = ColumnUInt8::create();
387
178
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
178
        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
18.4E
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
18.4E
        } else {
402
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
18.4E
                                        c0->get_name(), c1->get_name(), name);
404
18.4E
        }
405
179
        block.replace_by_position(result, std::move(c_res));
406
179
        return Status::OK();
407
178
    }
408
409
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
410
104
                                         const IColumn* c1) const {
411
104
        bool c0_const = is_column_const(*c0);
412
104
        bool c1_const = is_column_const(*c1);
413
414
104
        DCHECK(!(c0_const && c1_const));
415
416
104
        auto c_res = ColumnUInt8::create();
417
104
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
104
        vec_res.resize(c0->size());
419
420
104
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
104
        } else if (c1_const) {
423
95
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
95
        } else {
425
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
9
        }
427
428
104
        block.replace_by_position(result, std::move(c_res));
429
104
    }
_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
20
                                         const IColumn* c1) const {
411
20
        bool c0_const = is_column_const(*c0);
412
20
        bool c1_const = is_column_const(*c1);
413
414
20
        DCHECK(!(c0_const && c1_const));
415
416
20
        auto c_res = ColumnUInt8::create();
417
20
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
20
        vec_res.resize(c0->size());
419
420
20
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
20
        } else if (c1_const) {
423
19
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
19
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
20
        block.replace_by_position(result, std::move(c_res));
429
20
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
11
                                         const IColumn* c1) const {
411
11
        bool c0_const = is_column_const(*c0);
412
11
        bool c1_const = is_column_const(*c1);
413
414
11
        DCHECK(!(c0_const && c1_const));
415
416
11
        auto c_res = ColumnUInt8::create();
417
11
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
11
        vec_res.resize(c0->size());
419
420
11
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
11
        } else if (c1_const) {
423
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
8
        } else {
425
3
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
3
        }
427
428
11
        block.replace_by_position(result, std::move(c_res));
429
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
39
                                         const IColumn* c1) const {
411
39
        bool c0_const = is_column_const(*c0);
412
39
        bool c1_const = is_column_const(*c1);
413
414
39
        DCHECK(!(c0_const && c1_const));
415
416
39
        auto c_res = ColumnUInt8::create();
417
39
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
39
        vec_res.resize(c0->size());
419
420
39
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
39
        } else if (c1_const) {
423
39
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
39
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
39
        block.replace_by_position(result, std::move(c_res));
429
39
    }
430
431
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
432
104
                           const ColumnWithTypeAndName& c1) const {
433
104
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
104
        return Status::OK();
435
104
    }
_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
20
                           const ColumnWithTypeAndName& c1) const {
433
20
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
20
        return Status::OK();
435
20
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
11
                           const ColumnWithTypeAndName& c1) const {
433
11
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
11
        return Status::OK();
435
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
39
                           const ColumnWithTypeAndName& c1) const {
433
39
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
39
        return Status::OK();
435
39
    }
436
437
public:
438
220
    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
36
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
438
38
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
81
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
438
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
1
    String get_name() const override { return name; }
439
440
282k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
240k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
1.12k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
440
4.76k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
16.9k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
440
2.63k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
16.6k
    size_t get_number_of_arguments() const override { return 2; }
441
442
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
443
282k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
282k
        return std::make_shared<DataTypeUInt8>();
445
282k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
240k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
240k
        return std::make_shared<DataTypeUInt8>();
445
240k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
1.12k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
1.12k
        return std::make_shared<DataTypeUInt8>();
445
1.12k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
4.76k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
4.76k
        return std::make_shared<DataTypeUInt8>();
445
4.76k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
16.9k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
16.9k
        return std::make_shared<DataTypeUInt8>();
445
16.9k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
2.63k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
2.63k
        return std::make_shared<DataTypeUInt8>();
445
2.63k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
16.6k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
16.6k
        return std::make_shared<DataTypeUInt8>();
445
16.6k
    }
446
447
    Status evaluate_inverted_index(
448
            const ColumnsWithTypeAndName& arguments,
449
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
450
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
451
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
452
1.75k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
1.75k
        DCHECK(arguments.size() == 1);
454
1.75k
        DCHECK(data_type_with_names.size() == 1);
455
1.75k
        DCHECK(iterators.size() == 1);
456
1.75k
        auto* iter = iterators[0];
457
1.75k
        auto data_type_with_name = data_type_with_names[0];
458
1.75k
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
1.75k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
434
            return Status::OK();
463
434
        }
464
1.32k
        segment_v2::InvertedIndexQueryType query_type;
465
1.32k
        std::string_view name_view(name);
466
1.32k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
861
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
861
        } else if (name_view == NameLess::name) {
469
113
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
350
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
252
        } else if (name_view == NameGreater::name) {
473
113
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
139
        } else if (name_view == NameGreaterOrEquals::name) {
475
138
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
138
        } else {
477
1
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
1
        }
479
480
1.32k
        if (segment_v2::is_range_query(query_type) &&
481
1.32k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
171
            return Status::OK();
484
171
        }
485
1.15k
        Field param_value;
486
1.15k
        arguments[0].column->get(0, param_value);
487
1.15k
        if (param_value.is_null()) {
488
1
            return Status::OK();
489
1
        }
490
1.15k
        auto param_type = arguments[0].type->get_primitive_type();
491
1.15k
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
1.15k
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
1.15k
                param_type, &param_value, query_param));
494
495
1.15k
        segment_v2::InvertedIndexParam param;
496
1.15k
        param.column_name = data_type_with_name.first;
497
1.15k
        param.column_type = data_type_with_name.second;
498
1.15k
        param.query_value = query_param->get_value();
499
1.15k
        param.query_type = query_type;
500
1.15k
        param.num_rows = num_rows;
501
1.15k
        param.roaring = std::make_shared<roaring::Roaring>();
502
1.15k
        param.analyzer_ctx = analyzer_ctx;
503
1.15k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
993
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
998
        if (iter->has_null()) {
506
998
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
998
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
998
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
998
        }
510
993
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
993
        bitmap_result = result;
512
993
        bitmap_result.mask_out_null();
513
514
993
        if (name_view == NameNotEquals::name) {
515
61
            roaring::Roaring full_result;
516
61
            full_result.addRange(0, num_rows);
517
61
            bitmap_result.op_not(&full_result);
518
61
        }
519
520
993
        return Status::OK();
521
993
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
870
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
870
        DCHECK(arguments.size() == 1);
454
870
        DCHECK(data_type_with_names.size() == 1);
455
870
        DCHECK(iterators.size() == 1);
456
870
        auto* iter = iterators[0];
457
870
        auto data_type_with_name = data_type_with_names[0];
458
870
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
870
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
76
            return Status::OK();
463
76
        }
464
794
        segment_v2::InvertedIndexQueryType query_type;
465
794
        std::string_view name_view(name);
466
794
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
791
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
791
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
3
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
3
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
3
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
3
        } else {
477
3
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
3
        }
479
480
791
        if (segment_v2::is_range_query(query_type) &&
481
791
            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
791
        Field param_value;
486
791
        arguments[0].column->get(0, param_value);
487
791
        if (param_value.is_null()) {
488
1
            return Status::OK();
489
1
        }
490
790
        auto param_type = arguments[0].type->get_primitive_type();
491
790
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
790
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
790
                param_type, &param_value, query_param));
494
495
790
        segment_v2::InvertedIndexParam param;
496
790
        param.column_name = data_type_with_name.first;
497
790
        param.column_type = data_type_with_name.second;
498
790
        param.query_value = query_param->get_value();
499
790
        param.query_type = query_type;
500
790
        param.num_rows = num_rows;
501
790
        param.roaring = std::make_shared<roaring::Roaring>();
502
790
        param.analyzer_ctx = analyzer_ctx;
503
790
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
742
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
747
        if (iter->has_null()) {
506
747
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
747
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
747
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
747
        }
510
742
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
742
        bitmap_result = result;
512
742
        bitmap_result.mask_out_null();
513
514
742
        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
742
        return Status::OK();
521
742
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
78
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
78
        DCHECK(arguments.size() == 1);
454
78
        DCHECK(data_type_with_names.size() == 1);
455
78
        DCHECK(iterators.size() == 1);
456
78
        auto* iter = iterators[0];
457
78
        auto data_type_with_name = data_type_with_names[0];
458
78
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
78
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
8
            return Status::OK();
463
8
        }
464
70
        segment_v2::InvertedIndexQueryType query_type;
465
70
        std::string_view name_view(name);
466
70
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
70
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
70
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
0
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
0
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
0
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
70
        if (segment_v2::is_range_query(query_type) &&
481
70
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
0
            return Status::OK();
484
0
        }
485
70
        Field param_value;
486
70
        arguments[0].column->get(0, param_value);
487
70
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
70
        auto param_type = arguments[0].type->get_primitive_type();
491
70
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
70
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
70
                param_type, &param_value, query_param));
494
495
70
        segment_v2::InvertedIndexParam param;
496
70
        param.column_name = data_type_with_name.first;
497
70
        param.column_type = data_type_with_name.second;
498
70
        param.query_value = query_param->get_value();
499
70
        param.query_type = query_type;
500
70
        param.num_rows = num_rows;
501
70
        param.roaring = std::make_shared<roaring::Roaring>();
502
70
        param.analyzer_ctx = analyzer_ctx;
503
70
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
63
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
63
        if (iter->has_null()) {
506
63
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
63
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
63
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
63
        }
510
63
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
63
        bitmap_result = result;
512
63
        bitmap_result.mask_out_null();
513
514
63
        if (name_view == NameNotEquals::name) {
515
61
            roaring::Roaring full_result;
516
61
            full_result.addRange(0, num_rows);
517
61
            bitmap_result.op_not(&full_result);
518
61
        }
519
520
63
        return Status::OK();
521
63
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
174
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
174
        DCHECK(arguments.size() == 1);
454
174
        DCHECK(data_type_with_names.size() == 1);
455
174
        DCHECK(iterators.size() == 1);
456
174
        auto* iter = iterators[0];
457
174
        auto data_type_with_name = data_type_with_names[0];
458
174
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
174
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
62
            return Status::OK();
463
62
        }
464
112
        segment_v2::InvertedIndexQueryType query_type;
465
112
        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
112
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
112
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
113
        } else if (name_view == NameGreater::name) {
473
113
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
113
        if (segment_v2::is_range_query(query_type) &&
481
113
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
28
            return Status::OK();
484
28
        }
485
85
        Field param_value;
486
85
        arguments[0].column->get(0, param_value);
487
85
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
85
        auto param_type = arguments[0].type->get_primitive_type();
491
85
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
85
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
85
                param_type, &param_value, query_param));
494
495
85
        segment_v2::InvertedIndexParam param;
496
85
        param.column_name = data_type_with_name.first;
497
85
        param.column_type = data_type_with_name.second;
498
85
        param.query_value = query_param->get_value();
499
85
        param.query_type = query_type;
500
85
        param.num_rows = num_rows;
501
85
        param.roaring = std::make_shared<roaring::Roaring>();
502
85
        param.analyzer_ctx = analyzer_ctx;
503
85
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
66
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
66
        if (iter->has_null()) {
506
66
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
66
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
66
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
66
        }
510
66
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
66
        bitmap_result = result;
512
66
        bitmap_result.mask_out_null();
513
514
66
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
66
        return Status::OK();
521
66
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
252
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
252
        DCHECK(arguments.size() == 1);
454
252
        DCHECK(data_type_with_names.size() == 1);
455
252
        DCHECK(iterators.size() == 1);
456
252
        auto* iter = iterators[0];
457
252
        auto data_type_with_name = data_type_with_names[0];
458
252
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
252
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
114
            return Status::OK();
463
114
        }
464
138
        segment_v2::InvertedIndexQueryType query_type;
465
138
        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
138
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
138
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
138
        } 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
138
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
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
37
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
37
        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
37
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
37
        bitmap_result = result;
512
37
        bitmap_result.mask_out_null();
513
514
37
        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
37
        return Status::OK();
521
37
    }
_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
61
            return Status::OK();
463
61
        }
464
112
        segment_v2::InvertedIndexQueryType query_type;
465
112
        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
113
            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
113
        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
87
        Field param_value;
486
87
        arguments[0].column->get(0, param_value);
487
87
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
87
        auto param_type = arguments[0].type->get_primitive_type();
491
87
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
87
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
87
                param_type, &param_value, query_param));
494
495
87
        segment_v2::InvertedIndexParam param;
496
87
        param.column_name = data_type_with_name.first;
497
87
        param.column_type = data_type_with_name.second;
498
87
        param.query_value = query_param->get_value();
499
87
        param.query_type = query_type;
500
87
        param.num_rows = num_rows;
501
87
        param.roaring = std::make_shared<roaring::Roaring>();
502
87
        param.analyzer_ctx = analyzer_ctx;
503
87
        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
67
        if (iter->has_null()) {
506
67
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
67
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
67
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
67
        }
510
66
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
66
        bitmap_result = result;
512
66
        bitmap_result.mask_out_null();
513
514
66
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
66
        return Status::OK();
521
66
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
211
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
211
        DCHECK(arguments.size() == 1);
454
211
        DCHECK(data_type_with_names.size() == 1);
455
211
        DCHECK(iterators.size() == 1);
456
211
        auto* iter = iterators[0];
457
211
        auto data_type_with_name = data_type_with_names[0];
458
211
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
211
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
113
            return Status::OK();
463
113
        }
464
98
        segment_v2::InvertedIndexQueryType query_type;
465
98
        std::string_view name_view(name);
466
98
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
98
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
98
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
98
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
0
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
98
        if (segment_v2::is_range_query(query_type) &&
481
98
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
58
            return Status::OK();
484
58
        }
485
40
        Field param_value;
486
40
        arguments[0].column->get(0, param_value);
487
40
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
40
        auto param_type = arguments[0].type->get_primitive_type();
491
40
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
40
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
40
                param_type, &param_value, query_param));
494
495
40
        segment_v2::InvertedIndexParam param;
496
40
        param.column_name = data_type_with_name.first;
497
40
        param.column_type = data_type_with_name.second;
498
40
        param.query_value = query_param->get_value();
499
40
        param.query_type = query_type;
500
40
        param.num_rows = num_rows;
501
40
        param.roaring = std::make_shared<roaring::Roaring>();
502
40
        param.analyzer_ctx = analyzer_ctx;
503
40
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
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
43.6k
                        uint32_t result, size_t input_rows_count) const override {
525
43.6k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
43.6k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
43.6k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
43.6k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
43.6k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
43.6k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
43.6k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
43.6k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
43.6k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
43.6k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
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
71.3k
        auto can_compare = [](PrimitiveType t) -> bool {
563
71.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
71.3k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
29.4k
        auto can_compare = [](PrimitiveType t) -> bool {
563
29.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
29.4k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
2.79k
        auto can_compare = [](PrimitiveType t) -> bool {
563
2.79k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
2.79k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
17.8k
        auto can_compare = [](PrimitiveType t) -> bool {
563
17.8k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
17.8k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
4.50k
        auto can_compare = [](PrimitiveType t) -> bool {
563
4.50k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
4.50k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
11.8k
        auto can_compare = [](PrimitiveType t) -> bool {
563
11.8k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
11.8k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
4.92k
        auto can_compare = [](PrimitiveType t) -> bool {
563
4.92k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
4.92k
        };
565
566
43.6k
        if (can_compare(left_type->get_primitive_type()) &&
567
43.6k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
27.7k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
27.7k
        }
575
576
43.6k
        auto compare_type = left_type->get_primitive_type();
577
43.6k
        switch (compare_type) {
578
191
        case TYPE_BOOLEAN:
579
191
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
4.75k
        case TYPE_DATEV2:
581
4.75k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
945
        case TYPE_DATETIMEV2:
583
945
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
16
        case TYPE_TIMESTAMPTZ:
585
16
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
5.30k
        case TYPE_TINYINT:
587
5.30k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
1.55k
        case TYPE_SMALLINT:
589
1.55k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
8.48k
        case TYPE_INT:
591
8.48k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
3.79k
        case TYPE_BIGINT:
593
3.79k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
534
        case TYPE_LARGEINT:
595
534
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
59
        case TYPE_IPV4:
597
59
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
37
        case TYPE_IPV6:
599
37
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
542
        case TYPE_FLOAT:
601
542
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
1.48k
        case TYPE_DOUBLE:
603
1.48k
            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
383
        case TYPE_DECIMAL32:
609
947
        case TYPE_DECIMAL64:
610
3.17k
        case TYPE_DECIMAL128I:
611
3.27k
        case TYPE_DECIMAL256:
612
3.27k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
3.27k
                                   col_with_type_and_name_right);
614
712
        case TYPE_CHAR:
615
6.39k
        case TYPE_VARCHAR:
616
12.5k
        case TYPE_STRING:
617
12.5k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
104
        default:
619
104
            return execute_generic(block, result, col_with_type_and_name_left,
620
104
                                   col_with_type_and_name_right);
621
43.6k
        }
622
0
        return Status::OK();
623
43.6k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
20.9k
                        uint32_t result, size_t input_rows_count) const override {
525
20.9k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
20.9k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
20.9k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
20.9k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
20.9k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
20.9k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
20.9k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
20.9k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
20.9k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
20.9k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
20.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
20.9k
        };
565
566
20.9k
        if (can_compare(left_type->get_primitive_type()) &&
567
20.9k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
8.50k
            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.50k
        }
575
576
20.9k
        auto compare_type = left_type->get_primitive_type();
577
20.9k
        switch (compare_type) {
578
90
        case TYPE_BOOLEAN:
579
90
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
807
        case TYPE_DATEV2:
581
807
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
446
        case TYPE_DATETIMEV2:
583
446
            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.56k
        case TYPE_TINYINT:
587
3.56k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
289
        case TYPE_SMALLINT:
589
289
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
1.73k
        case TYPE_INT:
591
1.73k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
1.01k
        case TYPE_BIGINT:
593
1.01k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
99
        case TYPE_LARGEINT:
595
99
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
20
        case TYPE_IPV4:
597
20
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
19
        case TYPE_IPV6:
599
19
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
95
        case TYPE_FLOAT:
601
95
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
328
        case TYPE_DOUBLE:
603
328
            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
154
        case TYPE_DECIMAL32:
609
310
        case TYPE_DECIMAL64:
610
1.20k
        case TYPE_DECIMAL128I:
611
1.23k
        case TYPE_DECIMAL256:
612
1.23k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
1.23k
                                   col_with_type_and_name_right);
614
457
        case TYPE_CHAR:
615
5.66k
        case TYPE_VARCHAR:
616
11.1k
        case TYPE_STRING:
617
11.1k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
17
        default:
619
17
            return execute_generic(block, result, col_with_type_and_name_left,
620
17
                                   col_with_type_and_name_right);
621
20.9k
        }
622
0
        return Status::OK();
623
20.9k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
1.52k
                        uint32_t result, size_t input_rows_count) const override {
525
1.52k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
1.52k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
1.52k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
1.52k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
1.52k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
1.52k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
1.52k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
1.52k
        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.52k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
1.52k
            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.52k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
1.52k
        };
565
566
1.52k
        if (can_compare(left_type->get_primitive_type()) &&
567
1.52k
            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.27k
            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.27k
        }
575
576
1.52k
        auto compare_type = left_type->get_primitive_type();
577
1.52k
        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
84
        case TYPE_TINYINT:
587
84
            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
606
        case TYPE_INT:
591
606
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
432
        case TYPE_BIGINT:
593
432
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
0
        case TYPE_LARGEINT:
595
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
0
        case TYPE_IPV4:
597
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
0
        case TYPE_IPV6:
599
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
48
        case TYPE_FLOAT:
601
48
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
60
        case TYPE_DOUBLE:
603
60
            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
32
        case TYPE_VARCHAR:
616
128
        case TYPE_STRING:
617
128
            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.52k
        }
622
0
        return Status::OK();
623
1.52k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
9.57k
                        uint32_t result, size_t input_rows_count) const override {
525
9.57k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
9.57k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
9.57k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
9.57k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
9.57k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
9.57k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
9.57k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
9.57k
        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.57k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
9.57k
            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.57k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
9.57k
        };
565
566
9.57k
        if (can_compare(left_type->get_primitive_type()) &&
567
9.57k
            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.57k
        auto compare_type = left_type->get_primitive_type();
577
9.57k
        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
720
        case TYPE_TINYINT:
587
720
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
987
        case TYPE_SMALLINT:
589
987
            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.20k
        case TYPE_BIGINT:
593
1.20k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
224
        case TYPE_LARGEINT:
595
224
            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
220
        case TYPE_FLOAT:
601
220
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
535
        case TYPE_DOUBLE:
603
535
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
8
        case TYPE_DECIMAL32:
609
73
        case TYPE_DECIMAL64:
610
1.05k
        case TYPE_DECIMAL128I:
611
1.05k
        case TYPE_DECIMAL256:
612
1.05k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
1.05k
                                   col_with_type_and_name_right);
614
21
        case TYPE_CHAR:
615
83
        case TYPE_VARCHAR:
616
239
        case TYPE_STRING:
617
239
            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.57k
        }
622
0
        return Status::OK();
623
9.57k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
2.42k
                        uint32_t result, size_t input_rows_count) const override {
525
2.42k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
2.42k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
2.42k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
2.42k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
2.42k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
2.42k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
2.42k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
2.42k
        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.42k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
2.42k
            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.42k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
2.42k
        };
565
566
2.42k
        if (can_compare(left_type->get_primitive_type()) &&
567
2.42k
            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.08k
            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.08k
        }
575
576
2.42k
        auto compare_type = left_type->get_primitive_type();
577
2.42k
        switch (compare_type) {
578
13
        case TYPE_BOOLEAN:
579
13
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
469
        case TYPE_DATEV2:
581
469
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
153
        case TYPE_DATETIMEV2:
583
153
            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
57
        case TYPE_TINYINT:
587
57
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
70
        case TYPE_SMALLINT:
589
70
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
988
        case TYPE_INT:
591
988
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
140
        case TYPE_BIGINT:
593
140
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
16
        case TYPE_LARGEINT:
595
16
            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
24
        case TYPE_FLOAT:
601
24
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
123
        case TYPE_DOUBLE:
603
123
            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
4
        case TYPE_DECIMAL32:
609
37
        case TYPE_DECIMAL64:
610
68
        case TYPE_DECIMAL128I:
611
89
        case TYPE_DECIMAL256:
612
89
            return execute_decimal(block, result, col_with_type_and_name_left,
613
89
                                   col_with_type_and_name_right);
614
31
        case TYPE_CHAR:
615
166
        case TYPE_VARCHAR:
616
245
        case TYPE_STRING:
617
245
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
20
        default:
619
20
            return execute_generic(block, result, col_with_type_and_name_left,
620
20
                                   col_with_type_and_name_right);
621
2.42k
        }
622
0
        return Status::OK();
623
2.42k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
6.58k
                        uint32_t result, size_t input_rows_count) const override {
525
6.58k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
6.58k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
6.58k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
6.58k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
6.58k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
6.58k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
6.58k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
6.58k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
6.58k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
6.58k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
6.58k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
6.58k
        };
565
566
6.58k
        if (can_compare(left_type->get_primitive_type()) &&
567
6.58k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
5.28k
            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.28k
        }
575
576
6.58k
        auto compare_type = left_type->get_primitive_type();
577
6.58k
        switch (compare_type) {
578
73
        case TYPE_BOOLEAN:
579
73
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.92k
        case TYPE_DATEV2:
581
1.92k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
300
        case TYPE_DATETIMEV2:
583
300
            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
802
        case TYPE_TINYINT:
587
802
            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
692
        case TYPE_INT:
591
692
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
722
        case TYPE_BIGINT:
593
722
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
168
        case TYPE_LARGEINT:
595
168
            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
135
        case TYPE_FLOAT:
601
135
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
317
        case TYPE_DOUBLE:
603
317
            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
210
        case TYPE_DECIMAL32:
609
423
        case TYPE_DECIMAL64:
610
688
        case TYPE_DECIMAL128I:
611
689
        case TYPE_DECIMAL256:
612
689
            return execute_decimal(block, result, col_with_type_and_name_left,
613
689
                                   col_with_type_and_name_right);
614
179
        case TYPE_CHAR:
615
349
        case TYPE_VARCHAR:
616
589
        case TYPE_STRING:
617
589
            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.58k
        }
622
0
        return Status::OK();
623
6.58k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
2.59k
                        uint32_t result, size_t input_rows_count) const override {
525
2.59k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
2.59k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
2.59k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
2.59k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
2.59k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
2.59k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
2.59k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
2.59k
        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.59k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
2.59k
            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.59k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
2.59k
        };
565
566
2.59k
        if (can_compare(left_type->get_primitive_type()) &&
567
2.59k
            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.33k
            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.33k
        }
575
576
2.59k
        auto compare_type = left_type->get_primitive_type();
577
2.59k
        switch (compare_type) {
578
15
        case TYPE_BOOLEAN:
579
15
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
538
        case TYPE_DATEV2:
581
538
            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
78
        case TYPE_TINYINT:
587
78
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
89
        case TYPE_SMALLINT:
589
89
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
1.06k
        case TYPE_INT:
591
1.06k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
281
        case TYPE_BIGINT:
593
281
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
27
        case TYPE_LARGEINT:
595
27
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
10
        case TYPE_IPV4:
597
10
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
0
        case TYPE_IPV6:
599
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
20
        case TYPE_FLOAT:
601
20
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
121
        case TYPE_DOUBLE:
603
121
            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
7
        case TYPE_DECIMAL32:
609
43
        case TYPE_DECIMAL64:
610
66
        case TYPE_DECIMAL128I:
611
82
        case TYPE_DECIMAL256:
612
82
            return execute_decimal(block, result, col_with_type_and_name_left,
613
82
                                   col_with_type_and_name_right);
614
23
        case TYPE_CHAR:
615
109
        case TYPE_VARCHAR:
616
179
        case TYPE_STRING:
617
179
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
39
        default:
619
39
            return execute_generic(block, result, col_with_type_and_name_left,
620
39
                                   col_with_type_and_name_right);
621
2.59k
        }
622
0
        return Status::OK();
623
2.59k
    }
624
};
625
626
#include "common/compile_check_end.h"
627
} // namespace doris