Coverage Report

Created: 2026-04-08 14:27

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
14.5k
                                        PaddedPODArray<UInt8>& c) {
66
14.5k
        size_t size = a.size();
67
14.5k
        const A* __restrict a_pos = a.data();
68
14.5k
        const B* __restrict b_pos = b.data();
69
14.5k
        UInt8* __restrict c_pos = c.data();
70
14.5k
        const A* __restrict a_end = a_pos + size;
71
72
18.8M
        while (a_pos < a_end) {
73
18.8M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
18.8M
            ++a_pos;
75
18.8M
            ++b_pos;
76
18.8M
            ++c_pos;
77
18.8M
        }
78
14.5k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
61
                                        PaddedPODArray<UInt8>& c) {
66
61
        size_t size = a.size();
67
61
        const A* __restrict a_pos = a.data();
68
61
        const B* __restrict b_pos = b.data();
69
61
        UInt8* __restrict c_pos = c.data();
70
61
        const A* __restrict a_end = a_pos + size;
71
72
122
        while (a_pos < a_end) {
73
61
            *c_pos = Op::apply(*a_pos, *b_pos);
74
61
            ++a_pos;
75
61
            ++b_pos;
76
61
            ++c_pos;
77
61
        }
78
61
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
207
                                        PaddedPODArray<UInt8>& c) {
66
207
        size_t size = a.size();
67
207
        const A* __restrict a_pos = a.data();
68
207
        const B* __restrict b_pos = b.data();
69
207
        UInt8* __restrict c_pos = c.data();
70
207
        const A* __restrict a_end = a_pos + size;
71
72
420
        while (a_pos < a_end) {
73
213
            *c_pos = Op::apply(*a_pos, *b_pos);
74
213
            ++a_pos;
75
213
            ++b_pos;
76
213
            ++c_pos;
77
213
        }
78
207
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
231
                                        PaddedPODArray<UInt8>& c) {
66
231
        size_t size = a.size();
67
231
        const A* __restrict a_pos = a.data();
68
231
        const B* __restrict b_pos = b.data();
69
231
        UInt8* __restrict c_pos = c.data();
70
231
        const A* __restrict a_end = a_pos + size;
71
72
482
        while (a_pos < a_end) {
73
251
            *c_pos = Op::apply(*a_pos, *b_pos);
74
251
            ++a_pos;
75
251
            ++b_pos;
76
251
            ++c_pos;
77
251
        }
78
231
    }
_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
886
                                        PaddedPODArray<UInt8>& c) {
66
886
        size_t size = a.size();
67
886
        const A* __restrict a_pos = a.data();
68
886
        const B* __restrict b_pos = b.data();
69
886
        UInt8* __restrict c_pos = c.data();
70
886
        const A* __restrict a_end = a_pos + size;
71
72
5.27k
        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
886
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
125
                                        PaddedPODArray<UInt8>& c) {
66
125
        size_t size = a.size();
67
125
        const A* __restrict a_pos = a.data();
68
125
        const B* __restrict b_pos = b.data();
69
125
        UInt8* __restrict c_pos = c.data();
70
125
        const A* __restrict a_end = a_pos + size;
71
72
550
        while (a_pos < a_end) {
73
425
            *c_pos = Op::apply(*a_pos, *b_pos);
74
425
            ++a_pos;
75
425
            ++b_pos;
76
425
            ++c_pos;
77
425
        }
78
125
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
877
                                        PaddedPODArray<UInt8>& c) {
66
877
        size_t size = a.size();
67
877
        const A* __restrict a_pos = a.data();
68
877
        const B* __restrict b_pos = b.data();
69
877
        UInt8* __restrict c_pos = c.data();
70
877
        const A* __restrict a_end = a_pos + size;
71
72
132k
        while (a_pos < a_end) {
73
131k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
131k
            ++a_pos;
75
131k
            ++b_pos;
76
131k
            ++c_pos;
77
131k
        }
78
877
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
446
                                        PaddedPODArray<UInt8>& c) {
66
446
        size_t size = a.size();
67
446
        const A* __restrict a_pos = a.data();
68
446
        const B* __restrict b_pos = b.data();
69
446
        UInt8* __restrict c_pos = c.data();
70
446
        const A* __restrict a_end = a_pos + size;
71
72
11.9k
        while (a_pos < a_end) {
73
11.5k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
11.5k
            ++a_pos;
75
11.5k
            ++b_pos;
76
11.5k
            ++c_pos;
77
11.5k
        }
78
446
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
85
                                        PaddedPODArray<UInt8>& c) {
66
85
        size_t size = a.size();
67
85
        const A* __restrict a_pos = a.data();
68
85
        const B* __restrict b_pos = b.data();
69
85
        UInt8* __restrict c_pos = c.data();
70
85
        const A* __restrict a_end = a_pos + size;
71
72
182
        while (a_pos < a_end) {
73
97
            *c_pos = Op::apply(*a_pos, *b_pos);
74
97
            ++a_pos;
75
97
            ++b_pos;
76
97
            ++c_pos;
77
97
        }
78
85
    }
_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
92
                                        PaddedPODArray<UInt8>& c) {
66
92
        size_t size = a.size();
67
92
        const A* __restrict a_pos = a.data();
68
92
        const B* __restrict b_pos = b.data();
69
92
        UInt8* __restrict c_pos = c.data();
70
92
        const A* __restrict a_end = a_pos + size;
71
72
203
        while (a_pos < a_end) {
73
111
            *c_pos = Op::apply(*a_pos, *b_pos);
74
111
            ++a_pos;
75
111
            ++b_pos;
76
111
            ++c_pos;
77
111
        }
78
92
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
94
                                        PaddedPODArray<UInt8>& c) {
66
94
        size_t size = a.size();
67
94
        const A* __restrict a_pos = a.data();
68
94
        const B* __restrict b_pos = b.data();
69
94
        UInt8* __restrict c_pos = c.data();
70
94
        const A* __restrict a_end = a_pos + size;
71
72
209
        while (a_pos < a_end) {
73
115
            *c_pos = Op::apply(*a_pos, *b_pos);
74
115
            ++a_pos;
75
115
            ++b_pos;
76
115
            ++c_pos;
77
115
        }
78
94
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
4
                                        PaddedPODArray<UInt8>& c) {
66
4
        size_t size = a.size();
67
4
        const A* __restrict a_pos = a.data();
68
4
        const B* __restrict b_pos = b.data();
69
4
        UInt8* __restrict c_pos = c.data();
70
4
        const A* __restrict a_end = a_pos + size;
71
72
8
        while (a_pos < a_end) {
73
4
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4
            ++a_pos;
75
4
            ++b_pos;
76
4
            ++c_pos;
77
4
        }
78
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
39
                                        PaddedPODArray<UInt8>& c) {
66
39
        size_t size = a.size();
67
39
        const A* __restrict a_pos = a.data();
68
39
        const B* __restrict b_pos = b.data();
69
39
        UInt8* __restrict c_pos = c.data();
70
39
        const A* __restrict a_end = a_pos + size;
71
72
108
        while (a_pos < a_end) {
73
69
            *c_pos = Op::apply(*a_pos, *b_pos);
74
69
            ++a_pos;
75
69
            ++b_pos;
76
69
            ++c_pos;
77
69
        }
78
39
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
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
1.04k
                                        PaddedPODArray<UInt8>& c) {
66
1.04k
        size_t size = a.size();
67
1.04k
        const A* __restrict a_pos = a.data();
68
1.04k
        const B* __restrict b_pos = b.data();
69
1.04k
        UInt8* __restrict c_pos = c.data();
70
1.04k
        const A* __restrict a_end = a_pos + size;
71
72
1.67M
        while (a_pos < a_end) {
73
1.67M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.67M
            ++a_pos;
75
1.67M
            ++b_pos;
76
1.67M
            ++c_pos;
77
1.67M
        }
78
1.04k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
508
                                        PaddedPODArray<UInt8>& c) {
66
508
        size_t size = a.size();
67
508
        const A* __restrict a_pos = a.data();
68
508
        const B* __restrict b_pos = b.data();
69
508
        UInt8* __restrict c_pos = c.data();
70
508
        const A* __restrict a_end = a_pos + size;
71
72
31.2k
        while (a_pos < a_end) {
73
30.7k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
30.7k
            ++a_pos;
75
30.7k
            ++b_pos;
76
30.7k
            ++c_pos;
77
30.7k
        }
78
508
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.01k
                                        PaddedPODArray<UInt8>& c) {
66
1.01k
        size_t size = a.size();
67
1.01k
        const A* __restrict a_pos = a.data();
68
1.01k
        const B* __restrict b_pos = b.data();
69
1.01k
        UInt8* __restrict c_pos = c.data();
70
1.01k
        const A* __restrict a_end = a_pos + size;
71
72
6.00M
        while (a_pos < a_end) {
73
6.00M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.00M
            ++a_pos;
75
6.00M
            ++b_pos;
76
6.00M
            ++c_pos;
77
6.00M
        }
78
1.01k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
389
                                        PaddedPODArray<UInt8>& c) {
66
389
        size_t size = a.size();
67
389
        const A* __restrict a_pos = a.data();
68
389
        const B* __restrict b_pos = b.data();
69
389
        UInt8* __restrict c_pos = c.data();
70
389
        const A* __restrict a_end = a_pos + size;
71
72
2.58k
        while (a_pos < a_end) {
73
2.19k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.19k
            ++a_pos;
75
2.19k
            ++b_pos;
76
2.19k
            ++c_pos;
77
2.19k
        }
78
389
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
636
                                        PaddedPODArray<UInt8>& c) {
66
636
        size_t size = a.size();
67
636
        const A* __restrict a_pos = a.data();
68
636
        const B* __restrict b_pos = b.data();
69
636
        UInt8* __restrict c_pos = c.data();
70
636
        const A* __restrict a_end = a_pos + size;
71
72
4.16k
        while (a_pos < a_end) {
73
3.52k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.52k
            ++a_pos;
75
3.52k
            ++b_pos;
76
3.52k
            ++c_pos;
77
3.52k
        }
78
636
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
2.94k
                                        PaddedPODArray<UInt8>& c) {
66
2.94k
        size_t size = a.size();
67
2.94k
        const A* __restrict a_pos = a.data();
68
2.94k
        const B* __restrict b_pos = b.data();
69
2.94k
        UInt8* __restrict c_pos = c.data();
70
2.94k
        const A* __restrict a_end = a_pos + size;
71
72
9.75M
        while (a_pos < a_end) {
73
9.74M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9.74M
            ++a_pos;
75
9.74M
            ++b_pos;
76
9.74M
            ++c_pos;
77
9.74M
        }
78
2.94k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
187
                                        PaddedPODArray<UInt8>& c) {
66
187
        size_t size = a.size();
67
187
        const A* __restrict a_pos = a.data();
68
187
        const B* __restrict b_pos = b.data();
69
187
        UInt8* __restrict c_pos = c.data();
70
187
        const A* __restrict a_end = a_pos + size;
71
72
1.67k
        while (a_pos < a_end) {
73
1.48k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.48k
            ++a_pos;
75
1.48k
            ++b_pos;
76
1.48k
            ++c_pos;
77
1.48k
        }
78
187
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
96
        while (a_pos < a_end) {
73
76
            *c_pos = Op::apply(*a_pos, *b_pos);
74
76
            ++a_pos;
75
76
            ++b_pos;
76
76
            ++c_pos;
77
76
        }
78
20
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
52
                                        PaddedPODArray<UInt8>& c) {
66
52
        size_t size = a.size();
67
52
        const A* __restrict a_pos = a.data();
68
52
        const B* __restrict b_pos = b.data();
69
52
        UInt8* __restrict c_pos = c.data();
70
52
        const A* __restrict a_end = a_pos + size;
71
72
147
        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
52
    }
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
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
66
        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
7
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
7
        while (a_pos < a_end) {
73
4
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4
            ++a_pos;
75
4
            ++b_pos;
76
4
            ++c_pos;
77
4
        }
78
3
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
9
                                        PaddedPODArray<UInt8>& c) {
66
9
        size_t size = a.size();
67
9
        const A* __restrict a_pos = a.data();
68
9
        const B* __restrict b_pos = b.data();
69
9
        UInt8* __restrict c_pos = c.data();
70
9
        const A* __restrict a_end = a_pos + size;
71
72
65
        while (a_pos < a_end) {
73
56
            *c_pos = Op::apply(*a_pos, *b_pos);
74
56
            ++a_pos;
75
56
            ++b_pos;
76
56
            ++c_pos;
77
56
        }
78
9
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
50
                                        PaddedPODArray<UInt8>& c) {
66
50
        size_t size = a.size();
67
50
        const A* __restrict a_pos = a.data();
68
50
        const B* __restrict b_pos = b.data();
69
50
        UInt8* __restrict c_pos = c.data();
70
50
        const A* __restrict a_end = a_pos + size;
71
72
156
        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
50
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
67
                                        PaddedPODArray<UInt8>& c) {
66
67
        size_t size = a.size();
67
67
        const A* __restrict a_pos = a.data();
68
67
        const B* __restrict b_pos = b.data();
69
67
        UInt8* __restrict c_pos = c.data();
70
67
        const A* __restrict a_end = a_pos + size;
71
72
134
        while (a_pos < a_end) {
73
67
            *c_pos = Op::apply(*a_pos, *b_pos);
74
67
            ++a_pos;
75
67
            ++b_pos;
76
67
            ++c_pos;
77
67
        }
78
67
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.68k
                                        PaddedPODArray<UInt8>& c) {
66
1.68k
        size_t size = a.size();
67
1.68k
        const A* __restrict a_pos = a.data();
68
1.68k
        const B* __restrict b_pos = b.data();
69
1.68k
        UInt8* __restrict c_pos = c.data();
70
1.68k
        const A* __restrict a_end = a_pos + size;
71
72
1.22M
        while (a_pos < a_end) {
73
1.22M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.22M
            ++a_pos;
75
1.22M
            ++b_pos;
76
1.22M
            ++c_pos;
77
1.22M
        }
78
1.68k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
220
                                        PaddedPODArray<UInt8>& c) {
66
220
        size_t size = a.size();
67
220
        const A* __restrict a_pos = a.data();
68
220
        const B* __restrict b_pos = b.data();
69
220
        UInt8* __restrict c_pos = c.data();
70
220
        const A* __restrict a_end = a_pos + size;
71
72
440
        while (a_pos < a_end) {
73
220
            *c_pos = Op::apply(*a_pos, *b_pos);
74
220
            ++a_pos;
75
220
            ++b_pos;
76
220
            ++c_pos;
77
220
        }
78
220
    }
_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
825
                                        PaddedPODArray<UInt8>& c) {
66
825
        size_t size = a.size();
67
825
        const A* __restrict a_pos = a.data();
68
825
        const B* __restrict b_pos = b.data();
69
825
        UInt8* __restrict c_pos = c.data();
70
825
        const A* __restrict a_end = a_pos + size;
71
72
4.71k
        while (a_pos < a_end) {
73
3.88k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.88k
            ++a_pos;
75
3.88k
            ++b_pos;
76
3.88k
            ++c_pos;
77
3.88k
        }
78
825
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
118
                                        PaddedPODArray<UInt8>& c) {
66
118
        size_t size = a.size();
67
118
        const A* __restrict a_pos = a.data();
68
118
        const B* __restrict b_pos = b.data();
69
118
        UInt8* __restrict c_pos = c.data();
70
118
        const A* __restrict a_end = a_pos + size;
71
72
237
        while (a_pos < a_end) {
73
119
            *c_pos = Op::apply(*a_pos, *b_pos);
74
119
            ++a_pos;
75
119
            ++b_pos;
76
119
            ++c_pos;
77
119
        }
78
118
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
173
                                        PaddedPODArray<UInt8>& c) {
66
173
        size_t size = a.size();
67
173
        const A* __restrict a_pos = a.data();
68
173
        const B* __restrict b_pos = b.data();
69
173
        UInt8* __restrict c_pos = c.data();
70
173
        const A* __restrict a_end = a_pos + size;
71
72
832
        while (a_pos < a_end) {
73
659
            *c_pos = Op::apply(*a_pos, *b_pos);
74
659
            ++a_pos;
75
659
            ++b_pos;
76
659
            ++c_pos;
77
659
        }
78
173
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
276
                                        PaddedPODArray<UInt8>& c) {
66
276
        size_t size = a.size();
67
276
        const A* __restrict a_pos = a.data();
68
276
        const B* __restrict b_pos = b.data();
69
276
        UInt8* __restrict c_pos = c.data();
70
276
        const A* __restrict a_end = a_pos + size;
71
72
5.65k
        while (a_pos < a_end) {
73
5.38k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.38k
            ++a_pos;
75
5.38k
            ++b_pos;
76
5.38k
            ++c_pos;
77
5.38k
        }
78
276
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
165
                                        PaddedPODArray<UInt8>& c) {
66
165
        size_t size = a.size();
67
165
        const A* __restrict a_pos = a.data();
68
165
        const B* __restrict b_pos = b.data();
69
165
        UInt8* __restrict c_pos = c.data();
70
165
        const A* __restrict a_end = a_pos + size;
71
72
429
        while (a_pos < a_end) {
73
264
            *c_pos = Op::apply(*a_pos, *b_pos);
74
264
            ++a_pos;
75
264
            ++b_pos;
76
264
            ++c_pos;
77
264
        }
78
165
    }
_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
146
                                        PaddedPODArray<UInt8>& c) {
66
146
        size_t size = a.size();
67
146
        const A* __restrict a_pos = a.data();
68
146
        const B* __restrict b_pos = b.data();
69
146
        UInt8* __restrict c_pos = c.data();
70
146
        const A* __restrict a_end = a_pos + size;
71
72
333
        while (a_pos < a_end) {
73
187
            *c_pos = Op::apply(*a_pos, *b_pos);
74
187
            ++a_pos;
75
187
            ++b_pos;
76
187
            ++c_pos;
77
187
        }
78
146
    }
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
421
                                        PaddedPODArray<UInt8>& c) {
66
421
        size_t size = a.size();
67
421
        const A* __restrict a_pos = a.data();
68
421
        const B* __restrict b_pos = b.data();
69
421
        UInt8* __restrict c_pos = c.data();
70
421
        const A* __restrict a_end = a_pos + size;
71
72
6.61k
        while (a_pos < a_end) {
73
6.19k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.19k
            ++a_pos;
75
6.19k
            ++b_pos;
76
6.19k
            ++c_pos;
77
6.19k
        }
78
421
    }
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
46
                                        PaddedPODArray<UInt8>& c) {
66
46
        size_t size = a.size();
67
46
        const A* __restrict a_pos = a.data();
68
46
        const B* __restrict b_pos = b.data();
69
46
        UInt8* __restrict c_pos = c.data();
70
46
        const A* __restrict a_end = a_pos + size;
71
72
983
        while (a_pos < a_end) {
73
937
            *c_pos = Op::apply(*a_pos, *b_pos);
74
937
            ++a_pos;
75
937
            ++b_pos;
76
937
            ++c_pos;
77
937
        }
78
46
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
32
                                        PaddedPODArray<UInt8>& c) {
66
32
        size_t size = a.size();
67
32
        const A* __restrict a_pos = a.data();
68
32
        const B* __restrict b_pos = b.data();
69
32
        UInt8* __restrict c_pos = c.data();
70
32
        const A* __restrict a_end = a_pos + size;
71
72
216
        while (a_pos < a_end) {
73
184
            *c_pos = Op::apply(*a_pos, *b_pos);
74
184
            ++a_pos;
75
184
            ++b_pos;
76
184
            ++c_pos;
77
184
        }
78
32
    }
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
94.4k
                                          PaddedPODArray<UInt8>& c) {
82
94.4k
        size_t size = a.size();
83
94.4k
        const A* __restrict a_pos = a.data();
84
94.4k
        UInt8* __restrict c_pos = c.data();
85
94.4k
        const A* __restrict a_end = a_pos + size;
86
87
199M
        while (a_pos < a_end) {
88
199M
            *c_pos = Op::apply(*a_pos, b);
89
199M
            ++a_pos;
90
199M
            ++c_pos;
91
199M
        }
92
94.4k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
1.52k
                                          PaddedPODArray<UInt8>& c) {
82
1.52k
        size_t size = a.size();
83
1.52k
        const A* __restrict a_pos = a.data();
84
1.52k
        UInt8* __restrict c_pos = c.data();
85
1.52k
        const A* __restrict a_end = a_pos + size;
86
87
5.00k
        while (a_pos < a_end) {
88
3.47k
            *c_pos = Op::apply(*a_pos, b);
89
3.47k
            ++a_pos;
90
3.47k
            ++c_pos;
91
3.47k
        }
92
1.52k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_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
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
1.06k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
399
                                          PaddedPODArray<UInt8>& c) {
82
399
        size_t size = a.size();
83
399
        const A* __restrict a_pos = a.data();
84
399
        UInt8* __restrict c_pos = c.data();
85
399
        const A* __restrict a_end = a_pos + size;
86
87
101k
        while (a_pos < a_end) {
88
100k
            *c_pos = Op::apply(*a_pos, b);
89
100k
            ++a_pos;
90
100k
            ++c_pos;
91
100k
        }
92
399
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
3.11k
                                          PaddedPODArray<UInt8>& c) {
82
3.11k
        size_t size = a.size();
83
3.11k
        const A* __restrict a_pos = a.data();
84
3.11k
        UInt8* __restrict c_pos = c.data();
85
3.11k
        const A* __restrict a_end = a_pos + size;
86
87
9.11M
        while (a_pos < a_end) {
88
9.11M
            *c_pos = Op::apply(*a_pos, b);
89
9.11M
            ++a_pos;
90
9.11M
            ++c_pos;
91
9.11M
        }
92
3.11k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
481
                                          PaddedPODArray<UInt8>& c) {
82
481
        size_t size = a.size();
83
481
        const A* __restrict a_pos = a.data();
84
481
        UInt8* __restrict c_pos = c.data();
85
481
        const A* __restrict a_end = a_pos + size;
86
87
126k
        while (a_pos < a_end) {
88
126k
            *c_pos = Op::apply(*a_pos, b);
89
126k
            ++a_pos;
90
126k
            ++c_pos;
91
126k
        }
92
481
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
6.81k
                                          PaddedPODArray<UInt8>& c) {
82
6.81k
        size_t size = a.size();
83
6.81k
        const A* __restrict a_pos = a.data();
84
6.81k
        UInt8* __restrict c_pos = c.data();
85
6.81k
        const A* __restrict a_end = a_pos + size;
86
87
2.37M
        while (a_pos < a_end) {
88
2.36M
            *c_pos = Op::apply(*a_pos, b);
89
2.36M
            ++a_pos;
90
2.36M
            ++c_pos;
91
2.36M
        }
92
6.81k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
10.2k
                                          PaddedPODArray<UInt8>& c) {
82
10.2k
        size_t size = a.size();
83
10.2k
        const A* __restrict a_pos = a.data();
84
10.2k
        UInt8* __restrict c_pos = c.data();
85
10.2k
        const A* __restrict a_end = a_pos + size;
86
87
3.08M
        while (a_pos < a_end) {
88
3.07M
            *c_pos = Op::apply(*a_pos, b);
89
3.07M
            ++a_pos;
90
3.07M
            ++c_pos;
91
3.07M
        }
92
10.2k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
46
                                          PaddedPODArray<UInt8>& c) {
82
46
        size_t size = a.size();
83
46
        const A* __restrict a_pos = a.data();
84
46
        UInt8* __restrict c_pos = c.data();
85
46
        const A* __restrict a_end = a_pos + size;
86
87
101k
        while (a_pos < a_end) {
88
101k
            *c_pos = Op::apply(*a_pos, b);
89
101k
            ++a_pos;
90
101k
            ++c_pos;
91
101k
        }
92
46
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
15
                                          PaddedPODArray<UInt8>& c) {
82
15
        size_t size = a.size();
83
15
        const A* __restrict a_pos = a.data();
84
15
        UInt8* __restrict c_pos = c.data();
85
15
        const A* __restrict a_end = a_pos + size;
86
87
129
        while (a_pos < a_end) {
88
114
            *c_pos = Op::apply(*a_pos, b);
89
114
            ++a_pos;
90
114
            ++c_pos;
91
114
        }
92
15
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
6
                                          PaddedPODArray<UInt8>& c) {
82
6
        size_t size = a.size();
83
6
        const A* __restrict a_pos = a.data();
84
6
        UInt8* __restrict c_pos = c.data();
85
6
        const A* __restrict a_end = a_pos + size;
86
87
12
        while (a_pos < a_end) {
88
6
            *c_pos = Op::apply(*a_pos, b);
89
6
            ++a_pos;
90
6
            ++c_pos;
91
6
        }
92
6
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
4
                                          PaddedPODArray<UInt8>& c) {
82
4
        size_t size = a.size();
83
4
        const A* __restrict a_pos = a.data();
84
4
        UInt8* __restrict c_pos = c.data();
85
4
        const A* __restrict a_end = a_pos + size;
86
87
26
        while (a_pos < a_end) {
88
22
            *c_pos = Op::apply(*a_pos, b);
89
22
            ++a_pos;
90
22
            ++c_pos;
91
22
        }
92
4
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
195
                                          PaddedPODArray<UInt8>& c) {
82
195
        size_t size = a.size();
83
195
        const A* __restrict a_pos = a.data();
84
195
        UInt8* __restrict c_pos = c.data();
85
195
        const A* __restrict a_end = a_pos + size;
86
87
701k
        while (a_pos < a_end) {
88
701k
            *c_pos = Op::apply(*a_pos, b);
89
701k
            ++a_pos;
90
701k
            ++c_pos;
91
701k
        }
92
195
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
14
                                          PaddedPODArray<UInt8>& c) {
82
14
        size_t size = a.size();
83
14
        const A* __restrict a_pos = a.data();
84
14
        UInt8* __restrict c_pos = c.data();
85
14
        const A* __restrict a_end = a_pos + size;
86
87
29
        while (a_pos < a_end) {
88
15
            *c_pos = Op::apply(*a_pos, b);
89
15
            ++a_pos;
90
15
            ++c_pos;
91
15
        }
92
14
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
2
                                          PaddedPODArray<UInt8>& c) {
82
2
        size_t size = a.size();
83
2
        const A* __restrict a_pos = a.data();
84
2
        UInt8* __restrict c_pos = c.data();
85
2
        const A* __restrict a_end = a_pos + size;
86
87
4
        while (a_pos < a_end) {
88
2
            *c_pos = Op::apply(*a_pos, b);
89
2
            ++a_pos;
90
2
            ++c_pos;
91
2
        }
92
2
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_11NotEqualsOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
36
                                          PaddedPODArray<UInt8>& c) {
82
36
        size_t size = a.size();
83
36
        const A* __restrict a_pos = a.data();
84
36
        UInt8* __restrict c_pos = c.data();
85
36
        const A* __restrict a_end = a_pos + size;
86
87
1.23k
        while (a_pos < a_end) {
88
1.19k
            *c_pos = Op::apply(*a_pos, b);
89
1.19k
            ++a_pos;
90
1.19k
            ++c_pos;
91
1.19k
        }
92
36
    }
_ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
4
                                          PaddedPODArray<UInt8>& c) {
82
4
        size_t size = a.size();
83
4
        const A* __restrict a_pos = a.data();
84
4
        UInt8* __restrict c_pos = c.data();
85
4
        const A* __restrict a_end = a_pos + size;
86
87
780
        while (a_pos < a_end) {
88
776
            *c_pos = Op::apply(*a_pos, b);
89
776
            ++a_pos;
90
776
            ++c_pos;
91
776
        }
92
4
    }
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
932
                                          PaddedPODArray<UInt8>& c) {
82
932
        size_t size = a.size();
83
932
        const A* __restrict a_pos = a.data();
84
932
        UInt8* __restrict c_pos = c.data();
85
932
        const A* __restrict a_end = a_pos + size;
86
87
658k
        while (a_pos < a_end) {
88
657k
            *c_pos = Op::apply(*a_pos, b);
89
657k
            ++a_pos;
90
657k
            ++c_pos;
91
657k
        }
92
932
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.04k
                                          PaddedPODArray<UInt8>& c) {
82
1.04k
        size_t size = a.size();
83
1.04k
        const A* __restrict a_pos = a.data();
84
1.04k
        UInt8* __restrict c_pos = c.data();
85
1.04k
        const A* __restrict a_end = a_pos + size;
86
87
268k
        while (a_pos < a_end) {
88
267k
            *c_pos = Op::apply(*a_pos, b);
89
267k
            ++a_pos;
90
267k
            ++c_pos;
91
267k
        }
92
1.04k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
28
                                          PaddedPODArray<UInt8>& c) {
82
28
        size_t size = a.size();
83
28
        const A* __restrict a_pos = a.data();
84
28
        UInt8* __restrict c_pos = c.data();
85
28
        const A* __restrict a_end = a_pos + size;
86
87
70
        while (a_pos < a_end) {
88
42
            *c_pos = Op::apply(*a_pos, b);
89
42
            ++a_pos;
90
42
            ++c_pos;
91
42
        }
92
28
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
40
                                          PaddedPODArray<UInt8>& c) {
82
40
        size_t size = a.size();
83
40
        const A* __restrict a_pos = a.data();
84
40
        UInt8* __restrict c_pos = c.data();
85
40
        const A* __restrict a_end = a_pos + size;
86
87
282
        while (a_pos < a_end) {
88
242
            *c_pos = Op::apply(*a_pos, b);
89
242
            ++a_pos;
90
242
            ++c_pos;
91
242
        }
92
40
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
130
                                          PaddedPODArray<UInt8>& c) {
82
130
        size_t size = a.size();
83
130
        const A* __restrict a_pos = a.data();
84
130
        UInt8* __restrict c_pos = c.data();
85
130
        const A* __restrict a_end = a_pos + size;
86
87
1.15k
        while (a_pos < a_end) {
88
1.02k
            *c_pos = Op::apply(*a_pos, b);
89
1.02k
            ++a_pos;
90
1.02k
            ++c_pos;
91
1.02k
        }
92
130
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
454
                                          PaddedPODArray<UInt8>& c) {
82
454
        size_t size = a.size();
83
454
        const A* __restrict a_pos = a.data();
84
454
        UInt8* __restrict c_pos = c.data();
85
454
        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
454
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
92
                                          PaddedPODArray<UInt8>& c) {
82
92
        size_t size = a.size();
83
92
        const A* __restrict a_pos = a.data();
84
92
        UInt8* __restrict c_pos = c.data();
85
92
        const A* __restrict a_end = a_pos + size;
86
87
206
        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
92
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
329
                                          PaddedPODArray<UInt8>& c) {
82
329
        size_t size = a.size();
83
329
        const A* __restrict a_pos = a.data();
84
329
        UInt8* __restrict c_pos = c.data();
85
329
        const A* __restrict a_end = a_pos + size;
86
87
45.4k
        while (a_pos < a_end) {
88
45.1k
            *c_pos = Op::apply(*a_pos, b);
89
45.1k
            ++a_pos;
90
45.1k
            ++c_pos;
91
45.1k
        }
92
329
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
81
1
                                          PaddedPODArray<UInt8>& c) {
82
1
        size_t size = a.size();
83
1
        const A* __restrict a_pos = a.data();
84
1
        UInt8* __restrict c_pos = c.data();
85
1
        const A* __restrict a_end = a_pos + size;
86
87
8
        while (a_pos < a_end) {
88
7
            *c_pos = Op::apply(*a_pos, b);
89
7
            ++a_pos;
90
7
            ++c_pos;
91
7
        }
92
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
384
                                          PaddedPODArray<UInt8>& c) {
82
384
        size_t size = a.size();
83
384
        const A* __restrict a_pos = a.data();
84
384
        UInt8* __restrict c_pos = c.data();
85
384
        const A* __restrict a_end = a_pos + size;
86
87
4.03k
        while (a_pos < a_end) {
88
3.64k
            *c_pos = Op::apply(*a_pos, b);
89
3.64k
            ++a_pos;
90
3.64k
            ++c_pos;
91
3.64k
        }
92
384
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
45
                                          PaddedPODArray<UInt8>& c) {
82
45
        size_t size = a.size();
83
45
        const A* __restrict a_pos = a.data();
84
45
        UInt8* __restrict c_pos = c.data();
85
45
        const A* __restrict a_end = a_pos + size;
86
87
2.33k
        while (a_pos < a_end) {
88
2.28k
            *c_pos = Op::apply(*a_pos, b);
89
2.28k
            ++a_pos;
90
2.28k
            ++c_pos;
91
2.28k
        }
92
45
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
439
                                          PaddedPODArray<UInt8>& c) {
82
439
        size_t size = a.size();
83
439
        const A* __restrict a_pos = a.data();
84
439
        UInt8* __restrict c_pos = c.data();
85
439
        const A* __restrict a_end = a_pos + size;
86
87
7.84k
        while (a_pos < a_end) {
88
7.40k
            *c_pos = Op::apply(*a_pos, b);
89
7.40k
            ++a_pos;
90
7.40k
            ++c_pos;
91
7.40k
        }
92
439
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
138
                                          PaddedPODArray<UInt8>& c) {
82
138
        size_t size = a.size();
83
138
        const A* __restrict a_pos = a.data();
84
138
        UInt8* __restrict c_pos = c.data();
85
138
        const A* __restrict a_end = a_pos + size;
86
87
12.5k
        while (a_pos < a_end) {
88
12.4k
            *c_pos = Op::apply(*a_pos, b);
89
12.4k
            ++a_pos;
90
12.4k
            ++c_pos;
91
12.4k
        }
92
138
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
7.07k
                                          PaddedPODArray<UInt8>& c) {
82
7.07k
        size_t size = a.size();
83
7.07k
        const A* __restrict a_pos = a.data();
84
7.07k
        UInt8* __restrict c_pos = c.data();
85
7.07k
        const A* __restrict a_end = a_pos + size;
86
87
1.53M
        while (a_pos < a_end) {
88
1.52M
            *c_pos = Op::apply(*a_pos, b);
89
1.52M
            ++a_pos;
90
1.52M
            ++c_pos;
91
1.52M
        }
92
7.07k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.85k
                                          PaddedPODArray<UInt8>& c) {
82
1.85k
        size_t size = a.size();
83
1.85k
        const A* __restrict a_pos = a.data();
84
1.85k
        UInt8* __restrict c_pos = c.data();
85
1.85k
        const A* __restrict a_end = a_pos + size;
86
87
4.51M
        while (a_pos < a_end) {
88
4.51M
            *c_pos = Op::apply(*a_pos, b);
89
4.51M
            ++a_pos;
90
4.51M
            ++c_pos;
91
4.51M
        }
92
1.85k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
13.2k
                                          PaddedPODArray<UInt8>& c) {
82
13.2k
        size_t size = a.size();
83
13.2k
        const A* __restrict a_pos = a.data();
84
13.2k
        UInt8* __restrict c_pos = c.data();
85
13.2k
        const A* __restrict a_end = a_pos + size;
86
87
198k
        while (a_pos < a_end) {
88
185k
            *c_pos = Op::apply(*a_pos, b);
89
185k
            ++a_pos;
90
185k
            ++c_pos;
91
185k
        }
92
13.2k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.43k
                                          PaddedPODArray<UInt8>& c) {
82
1.43k
        size_t size = a.size();
83
1.43k
        const A* __restrict a_pos = a.data();
84
1.43k
        UInt8* __restrict c_pos = c.data();
85
1.43k
        const A* __restrict a_end = a_pos + size;
86
87
3.96k
        while (a_pos < a_end) {
88
2.53k
            *c_pos = Op::apply(*a_pos, b);
89
2.53k
            ++a_pos;
90
2.53k
            ++c_pos;
91
2.53k
        }
92
1.43k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
203
                                          PaddedPODArray<UInt8>& c) {
82
203
        size_t size = a.size();
83
203
        const A* __restrict a_pos = a.data();
84
203
        UInt8* __restrict c_pos = c.data();
85
203
        const A* __restrict a_end = a_pos + size;
86
87
1.74k
        while (a_pos < a_end) {
88
1.54k
            *c_pos = Op::apply(*a_pos, b);
89
1.54k
            ++a_pos;
90
1.54k
            ++c_pos;
91
1.54k
        }
92
203
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
17
                                          PaddedPODArray<UInt8>& c) {
82
17
        size_t size = a.size();
83
17
        const A* __restrict a_pos = a.data();
84
17
        UInt8* __restrict c_pos = c.data();
85
17
        const A* __restrict a_end = a_pos + size;
86
87
100k
        while (a_pos < a_end) {
88
100k
            *c_pos = Op::apply(*a_pos, b);
89
100k
            ++a_pos;
90
100k
            ++c_pos;
91
100k
        }
92
17
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1
                                          PaddedPODArray<UInt8>& c) {
82
1
        size_t size = a.size();
83
1
        const A* __restrict a_pos = a.data();
84
1
        UInt8* __restrict c_pos = c.data();
85
1
        const A* __restrict a_end = a_pos + size;
86
87
9
        while (a_pos < a_end) {
88
8
            *c_pos = Op::apply(*a_pos, b);
89
8
            ++a_pos;
90
8
            ++c_pos;
91
8
        }
92
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
208
                                          PaddedPODArray<UInt8>& c) {
82
208
        size_t size = a.size();
83
208
        const A* __restrict a_pos = a.data();
84
208
        UInt8* __restrict c_pos = c.data();
85
208
        const A* __restrict a_end = a_pos + size;
86
87
3.76k
        while (a_pos < a_end) {
88
3.55k
            *c_pos = Op::apply(*a_pos, b);
89
3.55k
            ++a_pos;
90
3.55k
            ++c_pos;
91
3.55k
        }
92
208
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
26
                                          PaddedPODArray<UInt8>& c) {
82
26
        size_t size = a.size();
83
26
        const A* __restrict a_pos = a.data();
84
26
        UInt8* __restrict c_pos = c.data();
85
26
        const A* __restrict a_end = a_pos + size;
86
87
64
        while (a_pos < a_end) {
88
38
            *c_pos = Op::apply(*a_pos, b);
89
38
            ++a_pos;
90
38
            ++c_pos;
91
38
        }
92
26
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
2.40k
                                          PaddedPODArray<UInt8>& c) {
82
2.40k
        size_t size = a.size();
83
2.40k
        const A* __restrict a_pos = a.data();
84
2.40k
        UInt8* __restrict c_pos = c.data();
85
2.40k
        const A* __restrict a_end = a_pos + size;
86
87
346k
        while (a_pos < a_end) {
88
344k
            *c_pos = Op::apply(*a_pos, b);
89
344k
            ++a_pos;
90
344k
            ++c_pos;
91
344k
        }
92
2.40k
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
189
                                          PaddedPODArray<UInt8>& c) {
82
189
        size_t size = a.size();
83
189
        const A* __restrict a_pos = a.data();
84
189
        UInt8* __restrict c_pos = c.data();
85
189
        const A* __restrict a_end = a_pos + size;
86
87
641k
        while (a_pos < a_end) {
88
641k
            *c_pos = Op::apply(*a_pos, b);
89
641k
            ++a_pos;
90
641k
            ++c_pos;
91
641k
        }
92
189
    }
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
190
                                          PaddedPODArray<UInt8>& c) {
82
190
        size_t size = a.size();
83
190
        const A* __restrict a_pos = a.data();
84
190
        UInt8* __restrict c_pos = c.data();
85
190
        const A* __restrict a_end = a_pos + size;
86
87
140k
        while (a_pos < a_end) {
88
140k
            *c_pos = Op::apply(*a_pos, b);
89
140k
            ++a_pos;
90
140k
            ++c_pos;
91
140k
        }
92
190
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
184
                                          PaddedPODArray<UInt8>& c) {
82
184
        size_t size = a.size();
83
184
        const A* __restrict a_pos = a.data();
84
184
        UInt8* __restrict c_pos = c.data();
85
184
        const A* __restrict a_end = a_pos + size;
86
87
110k
        while (a_pos < a_end) {
88
110k
            *c_pos = Op::apply(*a_pos, b);
89
110k
            ++a_pos;
90
110k
            ++c_pos;
91
110k
        }
92
184
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
1.53k
                                          PaddedPODArray<UInt8>& c) {
82
1.53k
        size_t size = a.size();
83
1.53k
        const A* __restrict a_pos = a.data();
84
1.53k
        UInt8* __restrict c_pos = c.data();
85
1.53k
        const A* __restrict a_end = a_pos + size;
86
87
4.94M
        while (a_pos < a_end) {
88
4.94M
            *c_pos = Op::apply(*a_pos, b);
89
4.94M
            ++a_pos;
90
4.94M
            ++c_pos;
91
4.94M
        }
92
1.53k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
9.99k
                                          PaddedPODArray<UInt8>& c) {
82
9.99k
        size_t size = a.size();
83
9.99k
        const A* __restrict a_pos = a.data();
84
9.99k
        UInt8* __restrict c_pos = c.data();
85
9.99k
        const A* __restrict a_end = a_pos + size;
86
87
75.3M
        while (a_pos < a_end) {
88
75.3M
            *c_pos = Op::apply(*a_pos, b);
89
75.3M
            ++a_pos;
90
75.3M
            ++c_pos;
91
75.3M
        }
92
9.99k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
707
                                          PaddedPODArray<UInt8>& c) {
82
707
        size_t size = a.size();
83
707
        const A* __restrict a_pos = a.data();
84
707
        UInt8* __restrict c_pos = c.data();
85
707
        const A* __restrict a_end = a_pos + size;
86
87
1.98k
        while (a_pos < a_end) {
88
1.28k
            *c_pos = Op::apply(*a_pos, b);
89
1.28k
            ++a_pos;
90
1.28k
            ++c_pos;
91
1.28k
        }
92
707
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
376
                                          PaddedPODArray<UInt8>& c) {
82
376
        size_t size = a.size();
83
376
        const A* __restrict a_pos = a.data();
84
376
        UInt8* __restrict c_pos = c.data();
85
376
        const A* __restrict a_end = a_pos + size;
86
87
836
        while (a_pos < a_end) {
88
460
            *c_pos = Op::apply(*a_pos, b);
89
460
            ++a_pos;
90
460
            ++c_pos;
91
460
        }
92
376
    }
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
72
                                          PaddedPODArray<UInt8>& c) {
82
72
        size_t size = a.size();
83
72
        const A* __restrict a_pos = a.data();
84
72
        UInt8* __restrict c_pos = c.data();
85
72
        const A* __restrict a_end = a_pos + size;
86
87
130k
        while (a_pos < a_end) {
88
130k
            *c_pos = Op::apply(*a_pos, b);
89
130k
            ++a_pos;
90
130k
            ++c_pos;
91
130k
        }
92
72
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
99
                                          PaddedPODArray<UInt8>& c) {
82
99
        size_t size = a.size();
83
99
        const A* __restrict a_pos = a.data();
84
99
        UInt8* __restrict c_pos = c.data();
85
99
        const A* __restrict a_end = a_pos + size;
86
87
130k
        while (a_pos < a_end) {
88
130k
            *c_pos = Op::apply(*a_pos, b);
89
130k
            ++a_pos;
90
130k
            ++c_pos;
91
130k
        }
92
99
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
91
                                          PaddedPODArray<UInt8>& c) {
82
91
        size_t size = a.size();
83
91
        const A* __restrict a_pos = a.data();
84
91
        UInt8* __restrict c_pos = c.data();
85
91
        const A* __restrict a_end = a_pos + size;
86
87
170k
        while (a_pos < a_end) {
88
170k
            *c_pos = Op::apply(*a_pos, b);
89
170k
            ++a_pos;
90
170k
            ++c_pos;
91
170k
        }
92
91
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_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
80.9k
        while (a_pos < a_end) {
88
80.8k
            *c_pos = Op::apply(*a_pos, b);
89
80.8k
            ++a_pos;
90
80.8k
            ++c_pos;
91
80.8k
        }
92
121
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
12.3k
                                          PaddedPODArray<UInt8>& c) {
82
12.3k
        size_t size = a.size();
83
12.3k
        const A* __restrict a_pos = a.data();
84
12.3k
        UInt8* __restrict c_pos = c.data();
85
12.3k
        const A* __restrict a_end = a_pos + size;
86
87
45.8M
        while (a_pos < a_end) {
88
45.8M
            *c_pos = Op::apply(*a_pos, b);
89
45.8M
            ++a_pos;
90
45.8M
            ++c_pos;
91
45.8M
        }
92
12.3k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
12.3k
                                          PaddedPODArray<UInt8>& c) {
82
12.3k
        size_t size = a.size();
83
12.3k
        const A* __restrict a_pos = a.data();
84
12.3k
        UInt8* __restrict c_pos = c.data();
85
12.3k
        const A* __restrict a_end = a_pos + size;
86
87
45.7M
        while (a_pos < a_end) {
88
45.7M
            *c_pos = Op::apply(*a_pos, b);
89
45.7M
            ++a_pos;
90
45.7M
            ++c_pos;
91
45.7M
        }
92
12.3k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
477
                                          PaddedPODArray<UInt8>& c) {
82
477
        size_t size = a.size();
83
477
        const A* __restrict a_pos = a.data();
84
477
        UInt8* __restrict c_pos = c.data();
85
477
        const A* __restrict a_end = a_pos + size;
86
87
19.3k
        while (a_pos < a_end) {
88
18.8k
            *c_pos = Op::apply(*a_pos, b);
89
18.8k
            ++a_pos;
90
18.8k
            ++c_pos;
91
18.8k
        }
92
477
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
622
                                          PaddedPODArray<UInt8>& c) {
82
622
        size_t size = a.size();
83
622
        const A* __restrict a_pos = a.data();
84
622
        UInt8* __restrict c_pos = c.data();
85
622
        const A* __restrict a_end = a_pos + size;
86
87
6.79k
        while (a_pos < a_end) {
88
6.16k
            *c_pos = Op::apply(*a_pos, b);
89
6.16k
            ++a_pos;
90
6.16k
            ++c_pos;
91
6.16k
        }
92
622
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
51
                                          PaddedPODArray<UInt8>& c) {
82
51
        size_t size = a.size();
83
51
        const A* __restrict a_pos = a.data();
84
51
        UInt8* __restrict c_pos = c.data();
85
51
        const A* __restrict a_end = a_pos + size;
86
87
104k
        while (a_pos < a_end) {
88
104k
            *c_pos = Op::apply(*a_pos, b);
89
104k
            ++a_pos;
90
104k
            ++c_pos;
91
104k
        }
92
51
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
45
                                          PaddedPODArray<UInt8>& c) {
82
45
        size_t size = a.size();
83
45
        const A* __restrict a_pos = a.data();
84
45
        UInt8* __restrict c_pos = c.data();
85
45
        const A* __restrict a_end = a_pos + size;
86
87
80.5k
        while (a_pos < a_end) {
88
80.4k
            *c_pos = Op::apply(*a_pos, b);
89
80.4k
            ++a_pos;
90
80.4k
            ++c_pos;
91
80.4k
        }
92
45
    }
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
10
                                          PaddedPODArray<UInt8>& c) {
82
10
        size_t size = a.size();
83
10
        const A* __restrict a_pos = a.data();
84
10
        UInt8* __restrict c_pos = c.data();
85
10
        const A* __restrict a_end = a_pos + size;
86
87
110
        while (a_pos < a_end) {
88
100
            *c_pos = Op::apply(*a_pos, b);
89
100
            ++a_pos;
90
100
            ++c_pos;
91
100
        }
92
10
    }
_ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
10
                                          PaddedPODArray<UInt8>& c) {
82
10
        size_t size = a.size();
83
10
        const A* __restrict a_pos = a.data();
84
10
        UInt8* __restrict c_pos = c.data();
85
10
        const A* __restrict a_end = a_pos + size;
86
87
110
        while (a_pos < a_end) {
88
100
            *c_pos = Op::apply(*a_pos, b);
89
100
            ++a_pos;
90
100
            ++c_pos;
91
100
        }
92
10
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
148
                                          PaddedPODArray<UInt8>& c) {
82
148
        size_t size = a.size();
83
148
        const A* __restrict a_pos = a.data();
84
148
        UInt8* __restrict c_pos = c.data();
85
148
        const A* __restrict a_end = a_pos + size;
86
87
298
        while (a_pos < a_end) {
88
150
            *c_pos = Op::apply(*a_pos, b);
89
150
            ++a_pos;
90
150
            ++c_pos;
91
150
        }
92
148
    }
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
144
                                          PaddedPODArray<UInt8>& c) {
82
144
        size_t size = a.size();
83
144
        const A* __restrict a_pos = a.data();
84
144
        UInt8* __restrict c_pos = c.data();
85
144
        const A* __restrict a_end = a_pos + size;
86
87
288
        while (a_pos < a_end) {
88
144
            *c_pos = Op::apply(*a_pos, b);
89
144
            ++a_pos;
90
144
            ++c_pos;
91
144
        }
92
144
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
112
                                          PaddedPODArray<UInt8>& c) {
82
112
        size_t size = a.size();
83
112
        const A* __restrict a_pos = a.data();
84
112
        UInt8* __restrict c_pos = c.data();
85
112
        const A* __restrict a_end = a_pos + size;
86
87
681k
        while (a_pos < a_end) {
88
681k
            *c_pos = Op::apply(*a_pos, b);
89
681k
            ++a_pos;
90
681k
            ++c_pos;
91
681k
        }
92
112
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
113
                                          PaddedPODArray<UInt8>& c) {
82
113
        size_t size = a.size();
83
113
        const A* __restrict a_pos = a.data();
84
113
        UInt8* __restrict c_pos = c.data();
85
113
        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
113
    }
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
117
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
117
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
362k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
362k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
362k
        }
113
117
    }
_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
31
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
31
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
132k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
132k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
132k
        }
113
31
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
49
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
49
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
230k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
230k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
230k
        }
113
49
    }
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
446
                                                      PaddedPODArray<UInt8>& c) {
127
446
        size_t size = a_offsets.size();
128
446
        ColumnString::Offset prev_a_offset = 0;
129
446
        ColumnString::Offset prev_b_offset = 0;
130
446
        const auto* a_pos = a_data.data();
131
446
        const auto* b_pos = b_data.data();
132
133
1.18k
        for (size_t i = 0; i < size; ++i) {
134
743
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
743
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
743
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
743
                             0);
138
139
743
            prev_a_offset = a_offsets[i];
140
743
            prev_b_offset = b_offsets[i];
141
743
        }
142
446
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
2
                                                      PaddedPODArray<UInt8>& c) {
127
2
        size_t size = a_offsets.size();
128
2
        ColumnString::Offset prev_a_offset = 0;
129
2
        ColumnString::Offset prev_b_offset = 0;
130
2
        const auto* a_pos = a_data.data();
131
2
        const auto* b_pos = b_data.data();
132
133
49
        for (size_t i = 0; i < size; ++i) {
134
47
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
47
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
47
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
47
                             0);
138
139
47
            prev_a_offset = a_offsets[i];
140
47
            prev_b_offset = b_offsets[i];
141
47
        }
142
2
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
46
                                                      PaddedPODArray<UInt8>& c) {
127
46
        size_t size = a_offsets.size();
128
46
        ColumnString::Offset prev_a_offset = 0;
129
46
        ColumnString::Offset prev_b_offset = 0;
130
46
        const auto* a_pos = a_data.data();
131
46
        const auto* b_pos = b_data.data();
132
133
340
        for (size_t i = 0; i < size; ++i) {
134
294
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
294
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
294
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
294
                             0);
138
139
294
            prev_a_offset = a_offsets[i];
140
294
            prev_b_offset = b_offsets[i];
141
294
        }
142
46
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
398
                                                      PaddedPODArray<UInt8>& c) {
127
398
        size_t size = a_offsets.size();
128
398
        ColumnString::Offset prev_a_offset = 0;
129
398
        ColumnString::Offset prev_b_offset = 0;
130
398
        const auto* a_pos = a_data.data();
131
398
        const auto* b_pos = b_data.data();
132
133
800
        for (size_t i = 0; i < size; ++i) {
134
402
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
402
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
402
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
402
                             0);
138
139
402
            prev_a_offset = a_offsets[i];
140
402
            prev_b_offset = b_offsets[i];
141
402
        }
142
398
    }
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
2.04k
                                                 PaddedPODArray<UInt8>& c) {
149
2.04k
        size_t size = a_offsets.size();
150
2.04k
        ColumnString::Offset prev_a_offset = 0;
151
2.04k
        const auto* a_pos = a_data.data();
152
2.04k
        const auto* b_pos = b_data.data();
153
154
1.79M
        for (size_t i = 0; i < size; ++i) {
155
1.78M
            c[i] = Op::apply(
156
1.78M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
1.78M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
1.78M
                    0);
159
160
1.78M
            prev_a_offset = a_offsets[i];
161
1.78M
        }
162
2.04k
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
210
                                                 PaddedPODArray<UInt8>& c) {
149
210
        size_t size = a_offsets.size();
150
210
        ColumnString::Offset prev_a_offset = 0;
151
210
        const auto* a_pos = a_data.data();
152
210
        const auto* b_pos = b_data.data();
153
154
601k
        for (size_t i = 0; i < size; ++i) {
155
601k
            c[i] = Op::apply(
156
601k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
601k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
601k
                    0);
159
160
601k
            prev_a_offset = a_offsets[i];
161
601k
        }
162
210
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
323
                                                 PaddedPODArray<UInt8>& c) {
149
323
        size_t size = a_offsets.size();
150
323
        ColumnString::Offset prev_a_offset = 0;
151
323
        const auto* a_pos = a_data.data();
152
323
        const auto* b_pos = b_data.data();
153
154
150k
        for (size_t i = 0; i < size; ++i) {
155
150k
            c[i] = Op::apply(
156
150k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
150k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
150k
                    0);
159
160
150k
            prev_a_offset = a_offsets[i];
161
150k
        }
162
323
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
631
                                                 PaddedPODArray<UInt8>& c) {
149
631
        size_t size = a_offsets.size();
150
631
        ColumnString::Offset prev_a_offset = 0;
151
631
        const auto* a_pos = a_data.data();
152
631
        const auto* b_pos = b_data.data();
153
154
552k
        for (size_t i = 0; i < size; ++i) {
155
551k
            c[i] = Op::apply(
156
551k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
551k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
551k
                    0);
159
160
551k
            prev_a_offset = a_offsets[i];
161
551k
        }
162
631
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
879
                                                 PaddedPODArray<UInt8>& c) {
149
879
        size_t size = a_offsets.size();
150
879
        ColumnString::Offset prev_a_offset = 0;
151
879
        const auto* a_pos = a_data.data();
152
879
        const auto* b_pos = b_data.data();
153
154
486k
        for (size_t i = 0; i < size; ++i) {
155
485k
            c[i] = Op::apply(
156
485k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
485k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
485k
                    0);
159
160
485k
            prev_a_offset = a_offsets[i];
161
485k
        }
162
879
    }
163
164
    static void constant_string_vector(const ColumnString::Chars& a_data,
165
                                       ColumnString::Offset a_size,
166
                                       const ColumnString::Chars& b_data,
167
                                       const ColumnString::Offsets& b_offsets,
168
0
                                       PaddedPODArray<UInt8>& c) {
169
0
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
170
0
                                                                               a_data, a_size, c);
171
0
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
172
};
173
174
template <bool positive>
175
struct StringEqualsImpl {
176
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
177
                                                      const ColumnString::Offsets& a_offsets,
178
                                                      const ColumnString::Chars& b_data,
179
                                                      const ColumnString::Offsets& b_offsets,
180
455
                                                      PaddedPODArray<UInt8>& c) {
181
455
        size_t size = a_offsets.size();
182
455
        ColumnString::Offset prev_a_offset = 0;
183
455
        ColumnString::Offset prev_b_offset = 0;
184
455
        const auto* a_pos = a_data.data();
185
455
        const auto* b_pos = b_data.data();
186
187
1.38k
        for (size_t i = 0; i < size; ++i) {
188
926
            auto a_size = a_offsets[i] - prev_a_offset;
189
926
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
926
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
926
                                                               b_pos + prev_b_offset, b_size);
193
194
926
            prev_a_offset = a_offsets[i];
195
926
            prev_b_offset = b_offsets[i];
196
926
        }
197
455
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
454
                                                      PaddedPODArray<UInt8>& c) {
181
454
        size_t size = a_offsets.size();
182
454
        ColumnString::Offset prev_a_offset = 0;
183
454
        ColumnString::Offset prev_b_offset = 0;
184
454
        const auto* a_pos = a_data.data();
185
454
        const auto* b_pos = b_data.data();
186
187
1.37k
        for (size_t i = 0; i < size; ++i) {
188
922
            auto a_size = a_offsets[i] - prev_a_offset;
189
922
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
922
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
922
                                                               b_pos + prev_b_offset, b_size);
193
194
922
            prev_a_offset = a_offsets[i];
195
922
            prev_b_offset = b_offsets[i];
196
922
        }
197
454
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
1
                                                      PaddedPODArray<UInt8>& c) {
181
1
        size_t size = a_offsets.size();
182
1
        ColumnString::Offset prev_a_offset = 0;
183
1
        ColumnString::Offset prev_b_offset = 0;
184
1
        const auto* a_pos = a_data.data();
185
1
        const auto* b_pos = b_data.data();
186
187
5
        for (size_t i = 0; i < size; ++i) {
188
4
            auto a_size = a_offsets[i] - prev_a_offset;
189
4
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
4
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
4
                                                               b_pos + prev_b_offset, b_size);
193
194
4
            prev_a_offset = a_offsets[i];
195
4
            prev_b_offset = b_offsets[i];
196
4
        }
197
1
    }
198
199
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
200
                                                 const ColumnString::Offsets& a_offsets,
201
                                                 const ColumnString::Chars& b_data,
202
                                                 ColumnString::Offset b_size,
203
21.5k
                                                 PaddedPODArray<UInt8>& c) {
204
21.5k
        size_t size = a_offsets.size();
205
21.5k
        if (b_size == 0) {
206
37
            auto* __restrict data = c.data();
207
37
            auto* __restrict offsets = a_offsets.data();
208
209
37
            ColumnString::Offset prev_a_offset = 0;
210
1.18k
            for (size_t i = 0; i < size; ++i) {
211
1.14k
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
1.14k
                prev_a_offset = offsets[i];
213
1.14k
            }
214
21.4k
        } else {
215
21.4k
            ColumnString::Offset prev_a_offset = 0;
216
21.4k
            const auto* a_pos = a_data.data();
217
21.4k
            const auto* b_pos = b_data.data();
218
8.68M
            for (size_t i = 0; i < size; ++i) {
219
8.66M
                auto a_size = a_offsets[i] - prev_a_offset;
220
8.66M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
8.66M
                                                                   b_pos, b_size);
222
8.66M
                prev_a_offset = a_offsets[i];
223
8.66M
            }
224
21.4k
        }
225
21.5k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
20.2k
                                                 PaddedPODArray<UInt8>& c) {
204
20.2k
        size_t size = a_offsets.size();
205
20.2k
        if (b_size == 0) {
206
12
            auto* __restrict data = c.data();
207
12
            auto* __restrict offsets = a_offsets.data();
208
209
12
            ColumnString::Offset prev_a_offset = 0;
210
76
            for (size_t i = 0; i < size; ++i) {
211
64
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
64
                prev_a_offset = offsets[i];
213
64
            }
214
20.1k
        } else {
215
20.1k
            ColumnString::Offset prev_a_offset = 0;
216
20.1k
            const auto* a_pos = a_data.data();
217
20.1k
            const auto* b_pos = b_data.data();
218
7.73M
            for (size_t i = 0; i < size; ++i) {
219
7.71M
                auto a_size = a_offsets[i] - prev_a_offset;
220
7.71M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
7.71M
                                                                   b_pos, b_size);
222
7.71M
                prev_a_offset = a_offsets[i];
223
7.71M
            }
224
20.1k
        }
225
20.2k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
1.31k
                                                 PaddedPODArray<UInt8>& c) {
204
1.31k
        size_t size = a_offsets.size();
205
1.31k
        if (b_size == 0) {
206
25
            auto* __restrict data = c.data();
207
25
            auto* __restrict offsets = a_offsets.data();
208
209
25
            ColumnString::Offset prev_a_offset = 0;
210
1.10k
            for (size_t i = 0; i < size; ++i) {
211
1.07k
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
1.07k
                prev_a_offset = offsets[i];
213
1.07k
            }
214
1.28k
        } else {
215
1.28k
            ColumnString::Offset prev_a_offset = 0;
216
1.28k
            const auto* a_pos = a_data.data();
217
1.28k
            const auto* b_pos = b_data.data();
218
954k
            for (size_t i = 0; i < size; ++i) {
219
952k
                auto a_size = a_offsets[i] - prev_a_offset;
220
952k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
952k
                                                                   b_pos, b_size);
222
952k
                prev_a_offset = a_offsets[i];
223
952k
            }
224
1.28k
        }
225
1.31k
    }
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
462k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
265
423k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
265
1.29k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
265
6.25k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
265
14.1k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
265
3.10k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
265
14.6k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
266
267
462k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
267
423k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
267
1.29k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
267
6.25k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
267
14.1k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
267
3.10k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
267
14.6k
    FunctionComparison() = default;
268
269
1.22M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
269
1.17M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
269
1.14k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
269
6.65k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
269
19.6k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
269
3.23k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
269
17.9k
    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
109k
                            const ColumnPtr& col_right_ptr) const {
275
109k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
109k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
109k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
109k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
109k
        DCHECK(!(left_is_const && right_is_const));
282
283
109k
        if (!left_is_const && !right_is_const) {
284
14.5k
            auto col_res = ColumnUInt8::create();
285
286
14.5k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
14.5k
            vec_res.resize(col_left->get_data().size());
288
14.5k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
14.5k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
14.5k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
14.5k
                                                     vec_res);
292
293
14.5k
            block.replace_by_position(result, std::move(col_res));
294
94.4k
        } else if (!left_is_const && right_is_const) {
295
94.4k
            auto col_res = ColumnUInt8::create();
296
297
94.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
94.4k
            vec_res.resize(col_left->size());
299
94.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
94.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
94.4k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
94.4k
                                                       col_right->get_element(0), vec_res);
303
304
94.4k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
5
            auto col_res = ColumnUInt8::create();
307
308
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
5
            vec_res.resize(col_right->size());
310
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
5
                              typename PrimitiveTypeTraits<PT>::CppType,
312
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
5
                                                       col_right->get_data(), vec_res);
314
315
5
            block.replace_by_position(result, std::move(col_res));
316
5
        }
317
109k
        return Status::OK();
318
109k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.58k
                            const ColumnPtr& col_right_ptr) const {
275
1.58k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.58k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.58k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.58k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.58k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.58k
        if (!left_is_const && !right_is_const) {
284
61
            auto col_res = ColumnUInt8::create();
285
286
61
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
61
            vec_res.resize(col_left->get_data().size());
288
61
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
61
                              typename PrimitiveTypeTraits<PT>::CppType,
290
61
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
61
                                                     vec_res);
292
293
61
            block.replace_by_position(result, std::move(col_res));
294
1.52k
        } else if (!left_is_const && right_is_const) {
295
1.52k
            auto col_res = ColumnUInt8::create();
296
297
1.52k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.52k
            vec_res.resize(col_left->size());
299
1.52k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.52k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.52k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.52k
                                                       col_right->get_element(0), vec_res);
303
304
1.52k
            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.58k
        return Status::OK();
318
1.58k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.27k
                            const ColumnPtr& col_right_ptr) const {
275
1.27k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.27k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.27k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.27k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.27k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.27k
        if (!left_is_const && !right_is_const) {
284
207
            auto col_res = ColumnUInt8::create();
285
286
207
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
207
            vec_res.resize(col_left->get_data().size());
288
207
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
207
                              typename PrimitiveTypeTraits<PT>::CppType,
290
207
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
207
                                                     vec_res);
292
293
207
            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.27k
        return Status::OK();
318
1.27k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
630
                            const ColumnPtr& col_right_ptr) const {
275
630
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
630
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
630
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
630
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
630
        DCHECK(!(left_is_const && right_is_const));
282
283
630
        if (!left_is_const && !right_is_const) {
284
231
            auto col_res = ColumnUInt8::create();
285
286
231
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
231
            vec_res.resize(col_left->get_data().size());
288
231
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
231
                              typename PrimitiveTypeTraits<PT>::CppType,
290
231
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
231
                                                     vec_res);
292
293
231
            block.replace_by_position(result, std::move(col_res));
294
399
        } else if (!left_is_const && right_is_const) {
295
399
            auto col_res = ColumnUInt8::create();
296
297
399
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
399
            vec_res.resize(col_left->size());
299
399
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
399
                              typename PrimitiveTypeTraits<PT>::CppType,
301
399
                              Op<PT>>::vector_constant(col_left->get_data(),
302
399
                                                       col_right->get_element(0), vec_res);
303
304
399
            block.replace_by_position(result, std::move(col_res));
305
399
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
630
        return Status::OK();
318
630
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3.99k
                            const ColumnPtr& col_right_ptr) const {
275
3.99k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.99k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.99k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.99k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.99k
        DCHECK(!(left_is_const && right_is_const));
282
283
4.00k
        if (!left_is_const && !right_is_const) {
284
885
            auto col_res = ColumnUInt8::create();
285
286
885
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
885
            vec_res.resize(col_left->get_data().size());
288
885
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
885
                              typename PrimitiveTypeTraits<PT>::CppType,
290
885
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
885
                                                     vec_res);
292
293
885
            block.replace_by_position(result, std::move(col_res));
294
3.11k
        } else if (!left_is_const && right_is_const) {
295
3.11k
            auto col_res = ColumnUInt8::create();
296
297
3.11k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
3.11k
            vec_res.resize(col_left->size());
299
3.11k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
3.11k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
3.11k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
3.11k
                                                       col_right->get_element(0), vec_res);
303
304
3.11k
            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.99k
        return Status::OK();
318
3.99k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_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
125
            auto col_res = ColumnUInt8::create();
285
286
125
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
125
            vec_res.resize(col_left->get_data().size());
288
125
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
125
                              typename PrimitiveTypeTraits<PT>::CppType,
290
125
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
125
                                                     vec_res);
292
293
125
            block.replace_by_position(result, std::move(col_res));
294
481
        } else if (!left_is_const && right_is_const) {
295
481
            auto col_res = ColumnUInt8::create();
296
297
481
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
481
            vec_res.resize(col_left->size());
299
481
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
481
                              typename PrimitiveTypeTraits<PT>::CppType,
301
481
                              Op<PT>>::vector_constant(col_left->get_data(),
302
481
                                                       col_right->get_element(0), vec_res);
303
304
481
            block.replace_by_position(result, std::move(col_res));
305
481
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
606
        return Status::OK();
318
606
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
7.69k
                            const ColumnPtr& col_right_ptr) const {
275
7.69k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
7.69k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
7.69k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
7.69k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
7.69k
        DCHECK(!(left_is_const && right_is_const));
282
283
7.69k
        if (!left_is_const && !right_is_const) {
284
877
            auto col_res = ColumnUInt8::create();
285
286
877
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
877
            vec_res.resize(col_left->get_data().size());
288
877
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
877
                              typename PrimitiveTypeTraits<PT>::CppType,
290
877
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
877
                                                     vec_res);
292
293
877
            block.replace_by_position(result, std::move(col_res));
294
6.81k
        } else if (!left_is_const && right_is_const) {
295
6.81k
            auto col_res = ColumnUInt8::create();
296
297
6.81k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6.81k
            vec_res.resize(col_left->size());
299
6.81k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6.81k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6.81k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6.81k
                                                       col_right->get_element(0), vec_res);
303
304
6.81k
            block.replace_by_position(result, std::move(col_res));
305
6.81k
        } else if (left_is_const && !right_is_const) {
306
5
            auto col_res = ColumnUInt8::create();
307
308
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
5
            vec_res.resize(col_right->size());
310
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
5
                              typename PrimitiveTypeTraits<PT>::CppType,
312
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
5
                                                       col_right->get_data(), vec_res);
314
315
5
            block.replace_by_position(result, std::move(col_res));
316
5
        }
317
7.69k
        return Status::OK();
318
7.69k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
10.6k
                            const ColumnPtr& col_right_ptr) const {
275
10.6k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
10.6k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
10.6k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
10.6k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
10.6k
        DCHECK(!(left_is_const && right_is_const));
282
283
10.6k
        if (!left_is_const && !right_is_const) {
284
446
            auto col_res = ColumnUInt8::create();
285
286
446
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
446
            vec_res.resize(col_left->get_data().size());
288
446
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
446
                              typename PrimitiveTypeTraits<PT>::CppType,
290
446
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
446
                                                     vec_res);
292
293
446
            block.replace_by_position(result, std::move(col_res));
294
10.2k
        } else if (!left_is_const && right_is_const) {
295
10.2k
            auto col_res = ColumnUInt8::create();
296
297
10.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10.2k
            vec_res.resize(col_left->size());
299
10.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10.2k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10.2k
                                                       col_right->get_element(0), vec_res);
303
304
10.2k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
10.6k
        return Status::OK();
318
10.6k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
131
                            const ColumnPtr& col_right_ptr) const {
275
131
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
131
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
131
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
131
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
131
        DCHECK(!(left_is_const && right_is_const));
282
283
131
        if (!left_is_const && !right_is_const) {
284
85
            auto col_res = ColumnUInt8::create();
285
286
85
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
85
            vec_res.resize(col_left->get_data().size());
288
85
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
85
                              typename PrimitiveTypeTraits<PT>::CppType,
290
85
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
85
                                                     vec_res);
292
293
85
            block.replace_by_position(result, std::move(col_res));
294
85
        } else if (!left_is_const && right_is_const) {
295
46
            auto col_res = ColumnUInt8::create();
296
297
46
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
46
            vec_res.resize(col_left->size());
299
46
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
46
                              typename PrimitiveTypeTraits<PT>::CppType,
301
46
                              Op<PT>>::vector_constant(col_left->get_data(),
302
46
                                                       col_right->get_element(0), vec_res);
303
304
46
            block.replace_by_position(result, std::move(col_res));
305
46
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
131
        return Status::OK();
318
131
    }
_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
96
                            const ColumnPtr& col_right_ptr) const {
275
96
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
96
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
96
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
96
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
96
        DCHECK(!(left_is_const && right_is_const));
282
283
96
        if (!left_is_const && !right_is_const) {
284
92
            auto col_res = ColumnUInt8::create();
285
286
92
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
92
            vec_res.resize(col_left->get_data().size());
288
92
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
92
                              typename PrimitiveTypeTraits<PT>::CppType,
290
92
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
92
                                                     vec_res);
292
293
92
            block.replace_by_position(result, std::move(col_res));
294
92
        } else if (!left_is_const && right_is_const) {
295
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
96
        return Status::OK();
318
96
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_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
94
            auto col_res = ColumnUInt8::create();
285
286
94
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
94
            vec_res.resize(col_left->get_data().size());
288
94
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
94
                              typename PrimitiveTypeTraits<PT>::CppType,
290
94
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
94
                                                     vec_res);
292
293
94
            block.replace_by_position(result, std::move(col_res));
294
195
        } else if (!left_is_const && right_is_const) {
295
195
            auto col_res = ColumnUInt8::create();
296
297
195
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
195
            vec_res.resize(col_left->size());
299
195
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
195
                              typename PrimitiveTypeTraits<PT>::CppType,
301
195
                              Op<PT>>::vector_constant(col_left->get_data(),
302
195
                                                       col_right->get_element(0), vec_res);
303
304
195
            block.replace_by_position(result, std::move(col_res));
305
195
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4
                            const ColumnPtr& col_right_ptr) const {
275
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4
        DCHECK(!(left_is_const && right_is_const));
282
283
4
        if (!left_is_const && !right_is_const) {
284
4
            auto col_res = ColumnUInt8::create();
285
286
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
4
            vec_res.resize(col_left->get_data().size());
288
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
4
                              typename PrimitiveTypeTraits<PT>::CppType,
290
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
4
                                                     vec_res);
292
293
4
            block.replace_by_position(result, std::move(col_res));
294
4
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
4
        return Status::OK();
318
4
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
53
                            const ColumnPtr& col_right_ptr) const {
275
53
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
53
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
53
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
53
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
53
        DCHECK(!(left_is_const && right_is_const));
282
283
53
        if (!left_is_const && !right_is_const) {
284
39
            auto col_res = ColumnUInt8::create();
285
286
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
39
            vec_res.resize(col_left->get_data().size());
288
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
39
                              typename PrimitiveTypeTraits<PT>::CppType,
290
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
39
                                                     vec_res);
292
293
39
            block.replace_by_position(result, std::move(col_res));
294
39
        } else if (!left_is_const && right_is_const) {
295
14
            auto col_res = ColumnUInt8::create();
296
297
14
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
14
            vec_res.resize(col_left->size());
299
14
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
14
                              typename PrimitiveTypeTraits<PT>::CppType,
301
14
                              Op<PT>>::vector_constant(col_left->get_data(),
302
14
                                                       col_right->get_element(0), vec_res);
303
304
14
            block.replace_by_position(result, std::move(col_res));
305
14
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
53
        return Status::OK();
318
53
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
2
        } else if (!left_is_const && right_is_const) {
295
2
            auto col_res = ColumnUInt8::create();
296
297
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2
            vec_res.resize(col_left->size());
299
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2
                                                       col_right->get_element(0), vec_res);
303
304
2
            block.replace_by_position(result, std::move(col_res));
305
2
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
2
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
92
                            const ColumnPtr& col_right_ptr) const {
275
92
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
92
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
92
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
92
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
92
        DCHECK(!(left_is_const && right_is_const));
282
283
92
        if (!left_is_const && !right_is_const) {
284
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
36
            auto col_res = ColumnUInt8::create();
296
297
36
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
36
            vec_res.resize(col_left->size());
299
36
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
36
                              typename PrimitiveTypeTraits<PT>::CppType,
301
36
                              Op<PT>>::vector_constant(col_left->get_data(),
302
36
                                                       col_right->get_element(0), vec_res);
303
304
36
            block.replace_by_position(result, std::move(col_res));
305
36
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
92
        return Status::OK();
318
92
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4
                            const ColumnPtr& col_right_ptr) const {
275
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4
        DCHECK(!(left_is_const && right_is_const));
282
283
4
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
4
        } else if (!left_is_const && right_is_const) {
295
4
            auto col_res = ColumnUInt8::create();
296
297
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
4
            vec_res.resize(col_left->size());
299
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
4
                              typename PrimitiveTypeTraits<PT>::CppType,
301
4
                              Op<PT>>::vector_constant(col_left->get_data(),
302
4
                                                       col_right->get_element(0), vec_res);
303
304
4
            block.replace_by_position(result, std::move(col_res));
305
4
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
4
        return Status::OK();
318
4
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.97k
                            const ColumnPtr& col_right_ptr) const {
275
1.97k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.97k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.97k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.97k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.97k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.97k
        if (!left_is_const && !right_is_const) {
284
1.04k
            auto col_res = ColumnUInt8::create();
285
286
1.04k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.04k
            vec_res.resize(col_left->get_data().size());
288
1.04k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.04k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.04k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.04k
                                                     vec_res);
292
293
1.04k
            block.replace_by_position(result, std::move(col_res));
294
1.04k
        } else if (!left_is_const && right_is_const) {
295
932
            auto col_res = ColumnUInt8::create();
296
297
932
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
932
            vec_res.resize(col_left->size());
299
932
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
932
                              typename PrimitiveTypeTraits<PT>::CppType,
301
932
                              Op<PT>>::vector_constant(col_left->get_data(),
302
932
                                                       col_right->get_element(0), vec_res);
303
304
932
            block.replace_by_position(result, std::move(col_res));
305
932
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.97k
        return Status::OK();
318
1.97k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.55k
                            const ColumnPtr& col_right_ptr) const {
275
1.55k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.55k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.55k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.55k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.55k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.55k
        if (!left_is_const && !right_is_const) {
284
508
            auto col_res = ColumnUInt8::create();
285
286
508
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
508
            vec_res.resize(col_left->get_data().size());
288
508
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
508
                              typename PrimitiveTypeTraits<PT>::CppType,
290
508
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
508
                                                     vec_res);
292
293
508
            block.replace_by_position(result, std::move(col_res));
294
1.04k
        } else if (!left_is_const && right_is_const) {
295
1.04k
            auto col_res = ColumnUInt8::create();
296
297
1.04k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.04k
            vec_res.resize(col_left->size());
299
1.04k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.04k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.04k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.04k
                                                       col_right->get_element(0), vec_res);
303
304
1.04k
            block.replace_by_position(result, std::move(col_res));
305
1.04k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.55k
        return Status::OK();
318
1.55k
    }
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
47
                            const ColumnPtr& col_right_ptr) const {
275
47
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
47
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
47
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
47
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
47
        DCHECK(!(left_is_const && right_is_const));
282
283
48
        if (!left_is_const && !right_is_const) {
284
19
            auto col_res = ColumnUInt8::create();
285
286
19
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
19
            vec_res.resize(col_left->get_data().size());
288
19
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
19
                              typename PrimitiveTypeTraits<PT>::CppType,
290
19
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
19
                                                     vec_res);
292
293
19
            block.replace_by_position(result, std::move(col_res));
294
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
47
        return Status::OK();
318
47
    }
_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
1.13k
                            const ColumnPtr& col_right_ptr) const {
275
1.13k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.13k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.13k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.13k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.13k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.14k
        if (!left_is_const && !right_is_const) {
284
1.01k
            auto col_res = ColumnUInt8::create();
285
286
1.01k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.01k
            vec_res.resize(col_left->get_data().size());
288
1.01k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.01k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.01k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.01k
                                                     vec_res);
292
293
1.01k
            block.replace_by_position(result, std::move(col_res));
294
1.01k
        } else if (!left_is_const && right_is_const) {
295
130
            auto col_res = ColumnUInt8::create();
296
297
130
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
130
            vec_res.resize(col_left->size());
299
130
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
130
                              typename PrimitiveTypeTraits<PT>::CppType,
301
130
                              Op<PT>>::vector_constant(col_left->get_data(),
302
130
                                                       col_right->get_element(0), vec_res);
303
304
130
            block.replace_by_position(result, std::move(col_res));
305
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.13k
        return Status::OK();
318
1.13k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
92
                            const ColumnPtr& col_right_ptr) const {
275
92
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
92
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
92
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
92
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
92
        DCHECK(!(left_is_const && right_is_const));
282
283
92
        if (!left_is_const && !right_is_const) {
284
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
92
        } else if (!left_is_const && right_is_const) {
295
92
            auto col_res = ColumnUInt8::create();
296
297
92
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
92
            vec_res.resize(col_left->size());
299
92
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
92
                              typename PrimitiveTypeTraits<PT>::CppType,
301
92
                              Op<PT>>::vector_constant(col_left->get_data(),
302
92
                                                       col_right->get_element(0), vec_res);
303
304
92
            block.replace_by_position(result, std::move(col_res));
305
92
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
92
        return Status::OK();
318
92
    }
_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
773
                            const ColumnPtr& col_right_ptr) const {
275
773
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
773
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
773
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
773
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
773
        DCHECK(!(left_is_const && right_is_const));
282
283
773
        if (!left_is_const && !right_is_const) {
284
389
            auto col_res = ColumnUInt8::create();
285
286
389
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
389
            vec_res.resize(col_left->get_data().size());
288
389
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
389
                              typename PrimitiveTypeTraits<PT>::CppType,
290
389
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
389
                                                     vec_res);
292
293
389
            block.replace_by_position(result, std::move(col_res));
294
389
        } else if (!left_is_const && right_is_const) {
295
384
            auto col_res = ColumnUInt8::create();
296
297
384
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
384
            vec_res.resize(col_left->size());
299
384
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
384
                              typename PrimitiveTypeTraits<PT>::CppType,
301
384
                              Op<PT>>::vector_constant(col_left->get_data(),
302
384
                                                       col_right->get_element(0), vec_res);
303
304
384
            block.replace_by_position(result, std::move(col_res));
305
384
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
773
        return Status::OK();
318
773
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.07k
                            const ColumnPtr& col_right_ptr) const {
275
1.07k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.07k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.07k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.07k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.07k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.07k
        if (!left_is_const && !right_is_const) {
284
636
            auto col_res = ColumnUInt8::create();
285
286
636
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
636
            vec_res.resize(col_left->get_data().size());
288
636
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
636
                              typename PrimitiveTypeTraits<PT>::CppType,
290
636
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
636
                                                     vec_res);
292
293
636
            block.replace_by_position(result, std::move(col_res));
294
636
        } else if (!left_is_const && right_is_const) {
295
439
            auto col_res = ColumnUInt8::create();
296
297
439
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
439
            vec_res.resize(col_left->size());
299
439
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
439
                              typename PrimitiveTypeTraits<PT>::CppType,
301
439
                              Op<PT>>::vector_constant(col_left->get_data(),
302
439
                                                       col_right->get_element(0), vec_res);
303
304
439
            block.replace_by_position(result, std::move(col_res));
305
439
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.07k
        return Status::OK();
318
1.07k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
10.0k
                            const ColumnPtr& col_right_ptr) const {
275
10.0k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
10.0k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
10.0k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
10.0k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
10.0k
        DCHECK(!(left_is_const && right_is_const));
282
283
10.0k
        if (!left_is_const && !right_is_const) {
284
2.94k
            auto col_res = ColumnUInt8::create();
285
286
2.94k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
2.94k
            vec_res.resize(col_left->get_data().size());
288
2.94k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
2.94k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
2.94k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
2.94k
                                                     vec_res);
292
293
2.94k
            block.replace_by_position(result, std::move(col_res));
294
7.07k
        } else if (!left_is_const && right_is_const) {
295
7.07k
            auto col_res = ColumnUInt8::create();
296
297
7.07k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
7.07k
            vec_res.resize(col_left->size());
299
7.07k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
7.07k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
7.07k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
7.07k
                                                       col_right->get_element(0), vec_res);
303
304
7.07k
            block.replace_by_position(result, std::move(col_res));
305
7.07k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
10.0k
        return Status::OK();
318
10.0k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
13.4k
                            const ColumnPtr& col_right_ptr) const {
275
13.4k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
13.4k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
13.4k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
13.4k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
13.4k
        DCHECK(!(left_is_const && right_is_const));
282
283
13.4k
        if (!left_is_const && !right_is_const) {
284
187
            auto col_res = ColumnUInt8::create();
285
286
187
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
187
            vec_res.resize(col_left->get_data().size());
288
187
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
187
                              typename PrimitiveTypeTraits<PT>::CppType,
290
187
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
187
                                                     vec_res);
292
293
187
            block.replace_by_position(result, std::move(col_res));
294
13.2k
        } else if (!left_is_const && right_is_const) {
295
13.2k
            auto col_res = ColumnUInt8::create();
296
297
13.2k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
13.2k
            vec_res.resize(col_left->size());
299
13.2k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
13.2k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
13.2k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
13.2k
                                                       col_right->get_element(0), vec_res);
303
304
13.2k
            block.replace_by_position(result, std::move(col_res));
305
13.2k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
13.4k
        return Status::OK();
318
13.4k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
223
                            const ColumnPtr& col_right_ptr) const {
275
223
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
223
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
223
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
223
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
223
        DCHECK(!(left_is_const && right_is_const));
282
283
223
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
203
        } else if (!left_is_const && right_is_const) {
295
203
            auto col_res = ColumnUInt8::create();
296
297
203
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
203
            vec_res.resize(col_left->size());
299
203
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
203
                              typename PrimitiveTypeTraits<PT>::CppType,
301
203
                              Op<PT>>::vector_constant(col_left->get_data(),
302
203
                                                       col_right->get_element(0), vec_res);
303
304
203
            block.replace_by_position(result, std::move(col_res));
305
203
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
223
        return Status::OK();
318
223
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
1
            auto col_res = ColumnUInt8::create();
296
297
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1
            vec_res.resize(col_left->size());
299
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1
                                                       col_right->get_element(0), vec_res);
303
304
1
            block.replace_by_position(result, std::move(col_res));
305
1
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1
                            const ColumnPtr& col_right_ptr) const {
275
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1
        DCHECK(!(left_is_const && right_is_const));
282
283
1
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1
        return Status::OK();
318
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
228
                            const ColumnPtr& col_right_ptr) const {
275
228
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
228
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
228
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
228
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
228
        DCHECK(!(left_is_const && right_is_const));
282
283
228
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
208
        } else if (!left_is_const && right_is_const) {
295
208
            auto col_res = ColumnUInt8::create();
296
297
208
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
208
            vec_res.resize(col_left->size());
299
208
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
208
                              typename PrimitiveTypeTraits<PT>::CppType,
301
208
                              Op<PT>>::vector_constant(col_left->get_data(),
302
208
                                                       col_right->get_element(0), vec_res);
303
304
208
            block.replace_by_position(result, std::move(col_res));
305
208
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
228
        return Status::OK();
318
228
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.45k
                            const ColumnPtr& col_right_ptr) const {
275
2.45k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.45k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.45k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.45k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.45k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.45k
        if (!left_is_const && !right_is_const) {
284
52
            auto col_res = ColumnUInt8::create();
285
286
52
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
52
            vec_res.resize(col_left->get_data().size());
288
52
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
52
                              typename PrimitiveTypeTraits<PT>::CppType,
290
52
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
52
                                                     vec_res);
292
293
52
            block.replace_by_position(result, std::move(col_res));
294
2.40k
        } else if (!left_is_const && right_is_const) {
295
2.40k
            auto col_res = ColumnUInt8::create();
296
297
2.40k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2.40k
            vec_res.resize(col_left->size());
299
2.40k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2.40k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2.40k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2.40k
                                                       col_right->get_element(0), vec_res);
303
304
2.40k
            block.replace_by_position(result, std::move(col_res));
305
2.40k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2.45k
        return Status::OK();
318
2.45k
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
190
                            const ColumnPtr& col_right_ptr) const {
275
190
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
190
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
190
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
190
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
190
        DCHECK(!(left_is_const && right_is_const));
282
283
190
        if (!left_is_const && !right_is_const) {
284
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
190
        } else if (!left_is_const && right_is_const) {
295
190
            auto col_res = ColumnUInt8::create();
296
297
190
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
190
            vec_res.resize(col_left->size());
299
190
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
190
                              typename PrimitiveTypeTraits<PT>::CppType,
301
190
                              Op<PT>>::vector_constant(col_left->get_data(),
302
190
                                                       col_right->get_element(0), vec_res);
303
304
190
            block.replace_by_position(result, std::move(col_res));
305
190
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
190
        return Status::OK();
318
190
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.53k
                            const ColumnPtr& col_right_ptr) const {
275
1.53k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.53k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.53k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.53k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.53k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.53k
        if (!left_is_const && !right_is_const) {
284
7
            auto col_res = ColumnUInt8::create();
285
286
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
7
            vec_res.resize(col_left->get_data().size());
288
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
7
                              typename PrimitiveTypeTraits<PT>::CppType,
290
7
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
7
                                                     vec_res);
292
293
7
            block.replace_by_position(result, std::move(col_res));
294
1.52k
        } else if (!left_is_const && right_is_const) {
295
1.52k
            auto col_res = ColumnUInt8::create();
296
297
1.52k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.52k
            vec_res.resize(col_left->size());
299
1.52k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.52k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.52k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.52k
                                                       col_right->get_element(0), vec_res);
303
304
1.52k
            block.replace_by_position(result, std::move(col_res));
305
1.52k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.53k
        return Status::OK();
318
1.53k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
714
                            const ColumnPtr& col_right_ptr) const {
275
714
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
714
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
714
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
714
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
714
        DCHECK(!(left_is_const && right_is_const));
282
283
714
        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
707
        } else if (!left_is_const && right_is_const) {
295
707
            auto col_res = ColumnUInt8::create();
296
297
707
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
707
            vec_res.resize(col_left->size());
299
707
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
707
                              typename PrimitiveTypeTraits<PT>::CppType,
301
707
                              Op<PT>>::vector_constant(col_left->get_data(),
302
707
                                                       col_right->get_element(0), vec_res);
303
304
707
            block.replace_by_position(result, std::move(col_res));
305
707
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
714
        return Status::OK();
318
714
    }
_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
72
                            const ColumnPtr& col_right_ptr) const {
275
72
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
72
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
72
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
72
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
72
        DCHECK(!(left_is_const && right_is_const));
282
283
72
        if (!left_is_const && !right_is_const) {
284
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
72
        } else if (!left_is_const && right_is_const) {
295
72
            auto col_res = ColumnUInt8::create();
296
297
72
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
72
            vec_res.resize(col_left->size());
299
72
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
72
                              typename PrimitiveTypeTraits<PT>::CppType,
301
72
                              Op<PT>>::vector_constant(col_left->get_data(),
302
72
                                                       col_right->get_element(0), vec_res);
303
304
72
            block.replace_by_position(result, std::move(col_res));
305
72
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
72
        return Status::OK();
318
72
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
91
                            const ColumnPtr& col_right_ptr) const {
275
91
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
91
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
91
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
91
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
91
        DCHECK(!(left_is_const && right_is_const));
282
283
91
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
91
        } else if (!left_is_const && right_is_const) {
295
91
            auto col_res = ColumnUInt8::create();
296
297
91
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
91
            vec_res.resize(col_left->size());
299
91
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
91
                              typename PrimitiveTypeTraits<PT>::CppType,
301
91
                              Op<PT>>::vector_constant(col_left->get_data(),
302
91
                                                       col_right->get_element(0), vec_res);
303
304
91
            block.replace_by_position(result, std::move(col_res));
305
91
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
91
        return Status::OK();
318
91
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
12.3k
                            const ColumnPtr& col_right_ptr) const {
275
12.3k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
12.3k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
12.3k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
12.3k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
12.3k
        DCHECK(!(left_is_const && right_is_const));
282
283
12.3k
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
12.3k
        } else if (!left_is_const && right_is_const) {
295
12.3k
            auto col_res = ColumnUInt8::create();
296
297
12.3k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
12.3k
            vec_res.resize(col_left->size());
299
12.3k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
12.3k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
12.3k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
12.3k
                                                       col_right->get_element(0), vec_res);
303
304
12.3k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
12.3k
        return Status::OK();
318
12.3k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
486
                            const ColumnPtr& col_right_ptr) const {
275
486
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
486
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
486
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
486
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
486
        DCHECK(!(left_is_const && right_is_const));
282
283
486
        if (!left_is_const && !right_is_const) {
284
9
            auto col_res = ColumnUInt8::create();
285
286
9
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
9
            vec_res.resize(col_left->get_data().size());
288
9
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
9
                              typename PrimitiveTypeTraits<PT>::CppType,
290
9
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
9
                                                     vec_res);
292
293
9
            block.replace_by_position(result, std::move(col_res));
294
477
        } else if (!left_is_const && right_is_const) {
295
477
            auto col_res = ColumnUInt8::create();
296
297
477
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
477
            vec_res.resize(col_left->size());
299
477
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
477
                              typename PrimitiveTypeTraits<PT>::CppType,
301
477
                              Op<PT>>::vector_constant(col_left->get_data(),
302
477
                                                       col_right->get_element(0), vec_res);
303
304
477
            block.replace_by_position(result, std::move(col_res));
305
477
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
486
        return Status::OK();
318
486
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
51
                            const ColumnPtr& col_right_ptr) const {
275
51
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
51
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
51
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
51
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
51
        DCHECK(!(left_is_const && right_is_const));
282
283
51
        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
51
        } else if (!left_is_const && right_is_const) {
295
51
            auto col_res = ColumnUInt8::create();
296
297
51
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
51
            vec_res.resize(col_left->size());
299
51
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
51
                              typename PrimitiveTypeTraits<PT>::CppType,
301
51
                              Op<PT>>::vector_constant(col_left->get_data(),
302
51
                                                       col_right->get_element(0), vec_res);
303
304
51
            block.replace_by_position(result, std::move(col_res));
305
51
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
51
        return Status::OK();
318
51
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
11
                            const ColumnPtr& col_right_ptr) const {
275
11
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
11
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
11
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
11
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
11
        DCHECK(!(left_is_const && right_is_const));
282
283
11
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
10
        } else if (!left_is_const && right_is_const) {
295
10
            auto col_res = ColumnUInt8::create();
296
297
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10
            vec_res.resize(col_left->size());
299
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10
                                                       col_right->get_element(0), vec_res);
303
304
10
            block.replace_by_position(result, std::move(col_res));
305
10
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
11
        return Status::OK();
318
11
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1
                            const ColumnPtr& col_right_ptr) const {
275
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1
        DCHECK(!(left_is_const && right_is_const));
282
283
1
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1
        return Status::OK();
318
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
168
                            const ColumnPtr& col_right_ptr) const {
275
168
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
168
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
168
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
168
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
168
        DCHECK(!(left_is_const && right_is_const));
282
283
168
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
148
        } else if (!left_is_const && right_is_const) {
295
148
            auto col_res = ColumnUInt8::create();
296
297
148
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
148
            vec_res.resize(col_left->size());
299
148
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
148
                              typename PrimitiveTypeTraits<PT>::CppType,
301
148
                              Op<PT>>::vector_constant(col_left->get_data(),
302
148
                                                       col_right->get_element(0), vec_res);
303
304
148
            block.replace_by_position(result, std::move(col_res));
305
148
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
168
        return Status::OK();
318
168
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
162
                            const ColumnPtr& col_right_ptr) const {
275
162
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
162
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
162
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
162
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
162
        DCHECK(!(left_is_const && right_is_const));
282
283
162
        if (!left_is_const && !right_is_const) {
284
50
            auto col_res = ColumnUInt8::create();
285
286
50
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
50
            vec_res.resize(col_left->get_data().size());
288
50
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
50
                              typename PrimitiveTypeTraits<PT>::CppType,
290
50
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
50
                                                     vec_res);
292
293
50
            block.replace_by_position(result, std::move(col_res));
294
112
        } else if (!left_is_const && right_is_const) {
295
112
            auto col_res = ColumnUInt8::create();
296
297
112
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
112
            vec_res.resize(col_left->size());
299
112
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
112
                              typename PrimitiveTypeTraits<PT>::CppType,
301
112
                              Op<PT>>::vector_constant(col_left->get_data(),
302
112
                                                       col_right->get_element(0), vec_res);
303
304
112
            block.replace_by_position(result, std::move(col_res));
305
112
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
162
        return Status::OK();
318
162
    }
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
67
                            const ColumnPtr& col_right_ptr) const {
275
67
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
67
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
67
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
67
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
67
        DCHECK(!(left_is_const && right_is_const));
282
283
67
        if (!left_is_const && !right_is_const) {
284
67
            auto col_res = ColumnUInt8::create();
285
286
67
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
67
            vec_res.resize(col_left->get_data().size());
288
67
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
67
                              typename PrimitiveTypeTraits<PT>::CppType,
290
67
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
67
                                                     vec_res);
292
293
67
            block.replace_by_position(result, std::move(col_res));
294
67
        } 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
67
        return Status::OK();
318
67
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.13k
                            const ColumnPtr& col_right_ptr) const {
275
2.13k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.13k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.13k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.13k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.13k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.13k
        if (!left_is_const && !right_is_const) {
284
1.68k
            auto col_res = ColumnUInt8::create();
285
286
1.68k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.68k
            vec_res.resize(col_left->get_data().size());
288
1.68k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.68k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.68k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.68k
                                                     vec_res);
292
293
1.68k
            block.replace_by_position(result, std::move(col_res));
294
1.68k
        } else if (!left_is_const && right_is_const) {
295
454
            auto col_res = ColumnUInt8::create();
296
297
454
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
454
            vec_res.resize(col_left->size());
299
454
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
454
                              typename PrimitiveTypeTraits<PT>::CppType,
301
454
                              Op<PT>>::vector_constant(col_left->get_data(),
302
454
                                                       col_right->get_element(0), vec_res);
303
304
454
            block.replace_by_position(result, std::move(col_res));
305
454
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.13k
        return Status::OK();
318
2.13k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
549
                            const ColumnPtr& col_right_ptr) const {
275
549
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
549
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
549
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
549
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
549
        DCHECK(!(left_is_const && right_is_const));
282
283
549
        if (!left_is_const && !right_is_const) {
284
220
            auto col_res = ColumnUInt8::create();
285
286
220
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
220
            vec_res.resize(col_left->get_data().size());
288
220
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
220
                              typename PrimitiveTypeTraits<PT>::CppType,
290
220
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
220
                                                     vec_res);
292
293
220
            block.replace_by_position(result, std::move(col_res));
294
329
        } else if (!left_is_const && right_is_const) {
295
329
            auto col_res = ColumnUInt8::create();
296
297
329
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
329
            vec_res.resize(col_left->size());
299
329
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
329
                              typename PrimitiveTypeTraits<PT>::CppType,
301
329
                              Op<PT>>::vector_constant(col_left->get_data(),
302
329
                                                       col_right->get_element(0), vec_res);
303
304
329
            block.replace_by_position(result, std::move(col_res));
305
329
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
549
        return Status::OK();
318
549
    }
_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
870
                            const ColumnPtr& col_right_ptr) const {
275
870
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
870
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
870
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
870
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
870
        DCHECK(!(left_is_const && right_is_const));
282
283
870
        if (!left_is_const && !right_is_const) {
284
825
            auto col_res = ColumnUInt8::create();
285
286
825
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
825
            vec_res.resize(col_left->get_data().size());
288
825
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
825
                              typename PrimitiveTypeTraits<PT>::CppType,
290
825
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
825
                                                     vec_res);
292
293
825
            block.replace_by_position(result, std::move(col_res));
294
825
        } else if (!left_is_const && right_is_const) {
295
45
            auto col_res = ColumnUInt8::create();
296
297
45
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
45
            vec_res.resize(col_left->size());
299
45
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
45
                              typename PrimitiveTypeTraits<PT>::CppType,
301
45
                              Op<PT>>::vector_constant(col_left->get_data(),
302
45
                                                       col_right->get_element(0), vec_res);
303
304
45
            block.replace_by_position(result, std::move(col_res));
305
45
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
870
        return Status::OK();
318
870
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
256
                            const ColumnPtr& col_right_ptr) const {
275
256
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
256
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
256
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
256
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
256
        DCHECK(!(left_is_const && right_is_const));
282
283
256
        if (!left_is_const && !right_is_const) {
284
118
            auto col_res = ColumnUInt8::create();
285
286
118
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
118
            vec_res.resize(col_left->get_data().size());
288
118
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
118
                              typename PrimitiveTypeTraits<PT>::CppType,
290
118
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
118
                                                     vec_res);
292
293
118
            block.replace_by_position(result, std::move(col_res));
294
138
        } else if (!left_is_const && right_is_const) {
295
138
            auto col_res = ColumnUInt8::create();
296
297
138
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
138
            vec_res.resize(col_left->size());
299
138
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
138
                              typename PrimitiveTypeTraits<PT>::CppType,
301
138
                              Op<PT>>::vector_constant(col_left->get_data(),
302
138
                                                       col_right->get_element(0), vec_res);
303
304
138
            block.replace_by_position(result, std::move(col_res));
305
138
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
256
        return Status::OK();
318
256
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.03k
                            const ColumnPtr& col_right_ptr) const {
275
2.03k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.03k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.03k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.03k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.03k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.03k
        if (!left_is_const && !right_is_const) {
284
173
            auto col_res = ColumnUInt8::create();
285
286
173
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
173
            vec_res.resize(col_left->get_data().size());
288
173
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
173
                              typename PrimitiveTypeTraits<PT>::CppType,
290
173
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
173
                                                     vec_res);
292
293
173
            block.replace_by_position(result, std::move(col_res));
294
1.85k
        } else if (!left_is_const && right_is_const) {
295
1.85k
            auto col_res = ColumnUInt8::create();
296
297
1.85k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.85k
            vec_res.resize(col_left->size());
299
1.85k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.85k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.85k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.85k
                                                       col_right->get_element(0), vec_res);
303
304
1.85k
            block.replace_by_position(result, std::move(col_res));
305
1.85k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.03k
        return Status::OK();
318
2.03k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.71k
                            const ColumnPtr& col_right_ptr) const {
275
1.71k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.71k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.71k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.71k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.71k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.71k
        if (!left_is_const && !right_is_const) {
284
276
            auto col_res = ColumnUInt8::create();
285
286
276
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
276
            vec_res.resize(col_left->get_data().size());
288
276
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
276
                              typename PrimitiveTypeTraits<PT>::CppType,
290
276
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
276
                                                     vec_res);
292
293
276
            block.replace_by_position(result, std::move(col_res));
294
1.43k
        } else if (!left_is_const && right_is_const) {
295
1.43k
            auto col_res = ColumnUInt8::create();
296
297
1.43k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.43k
            vec_res.resize(col_left->size());
299
1.43k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.43k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.43k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.43k
                                                       col_right->get_element(0), vec_res);
303
304
1.43k
            block.replace_by_position(result, std::move(col_res));
305
1.43k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.71k
        return Status::OK();
318
1.71k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
182
                            const ColumnPtr& col_right_ptr) const {
275
182
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
182
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
182
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
182
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
182
        DCHECK(!(left_is_const && right_is_const));
282
283
182
        if (!left_is_const && !right_is_const) {
284
165
            auto col_res = ColumnUInt8::create();
285
286
165
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
165
            vec_res.resize(col_left->get_data().size());
288
165
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
165
                              typename PrimitiveTypeTraits<PT>::CppType,
290
165
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
165
                                                     vec_res);
292
293
165
            block.replace_by_position(result, std::move(col_res));
294
165
        } else if (!left_is_const && right_is_const) {
295
17
            auto col_res = ColumnUInt8::create();
296
297
17
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
17
            vec_res.resize(col_left->size());
299
17
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
17
                              typename PrimitiveTypeTraits<PT>::CppType,
301
17
                              Op<PT>>::vector_constant(col_left->get_data(),
302
17
                                                       col_right->get_element(0), vec_res);
303
304
17
            block.replace_by_position(result, std::move(col_res));
305
17
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
182
        return Status::OK();
318
182
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
16
                            const ColumnPtr& col_right_ptr) const {
275
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
16
        DCHECK(!(left_is_const && right_is_const));
282
283
16
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
16
        return Status::OK();
318
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
16
                            const ColumnPtr& col_right_ptr) const {
275
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
16
        DCHECK(!(left_is_const && right_is_const));
282
283
16
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
16
        return Status::OK();
318
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
160
                            const ColumnPtr& col_right_ptr) const {
275
160
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
160
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
160
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
160
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
160
        DCHECK(!(left_is_const && right_is_const));
282
283
160
        if (!left_is_const && !right_is_const) {
284
134
            auto col_res = ColumnUInt8::create();
285
286
134
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
134
            vec_res.resize(col_left->get_data().size());
288
134
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
134
                              typename PrimitiveTypeTraits<PT>::CppType,
290
134
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
134
                                                     vec_res);
292
293
134
            block.replace_by_position(result, std::move(col_res));
294
134
        } else if (!left_is_const && right_is_const) {
295
26
            auto col_res = ColumnUInt8::create();
296
297
26
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
26
            vec_res.resize(col_left->size());
299
26
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
26
                              typename PrimitiveTypeTraits<PT>::CppType,
301
26
                              Op<PT>>::vector_constant(col_left->get_data(),
302
26
                                                       col_right->get_element(0), vec_res);
303
304
26
            block.replace_by_position(result, std::move(col_res));
305
26
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
160
        return Status::OK();
318
160
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
333
                            const ColumnPtr& col_right_ptr) const {
275
333
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
333
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
333
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
333
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
333
        DCHECK(!(left_is_const && right_is_const));
282
283
333
        if (!left_is_const && !right_is_const) {
284
146
            auto col_res = ColumnUInt8::create();
285
286
146
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
146
            vec_res.resize(col_left->get_data().size());
288
146
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
146
                              typename PrimitiveTypeTraits<PT>::CppType,
290
146
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
146
                                                     vec_res);
292
293
146
            block.replace_by_position(result, std::move(col_res));
294
188
        } else if (!left_is_const && right_is_const) {
295
188
            auto col_res = ColumnUInt8::create();
296
297
188
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
188
            vec_res.resize(col_left->size());
299
188
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
188
                              typename PrimitiveTypeTraits<PT>::CppType,
301
188
                              Op<PT>>::vector_constant(col_left->get_data(),
302
188
                                                       col_right->get_element(0), vec_res);
303
304
188
            block.replace_by_position(result, std::move(col_res));
305
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
333
        return Status::OK();
318
333
    }
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
184
                            const ColumnPtr& col_right_ptr) const {
275
184
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
184
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
184
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
184
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
184
        DCHECK(!(left_is_const && right_is_const));
282
283
184
        if (!left_is_const && !right_is_const) {
284
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
184
        } else if (!left_is_const && right_is_const) {
295
184
            auto col_res = ColumnUInt8::create();
296
297
184
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
184
            vec_res.resize(col_left->size());
299
184
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
184
                              typename PrimitiveTypeTraits<PT>::CppType,
301
184
                              Op<PT>>::vector_constant(col_left->get_data(),
302
184
                                                       col_right->get_element(0), vec_res);
303
304
184
            block.replace_by_position(result, std::move(col_res));
305
184
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
184
        return Status::OK();
318
184
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
10.4k
                            const ColumnPtr& col_right_ptr) const {
275
10.4k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
10.4k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
10.4k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
10.4k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
10.4k
        DCHECK(!(left_is_const && right_is_const));
282
283
10.4k
        if (!left_is_const && !right_is_const) {
284
419
            auto col_res = ColumnUInt8::create();
285
286
419
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
419
            vec_res.resize(col_left->get_data().size());
288
419
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
419
                              typename PrimitiveTypeTraits<PT>::CppType,
290
419
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
419
                                                     vec_res);
292
293
419
            block.replace_by_position(result, std::move(col_res));
294
9.99k
        } else if (!left_is_const && right_is_const) {
295
9.99k
            auto col_res = ColumnUInt8::create();
296
297
9.99k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
9.99k
            vec_res.resize(col_left->size());
299
9.99k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
9.99k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
9.99k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
9.99k
                                                       col_right->get_element(0), vec_res);
303
304
9.99k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
10.4k
        return Status::OK();
318
10.4k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
376
                            const ColumnPtr& col_right_ptr) const {
275
376
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
376
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
376
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
376
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
376
        DCHECK(!(left_is_const && right_is_const));
282
283
376
        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
376
        } else if (!left_is_const && right_is_const) {
295
376
            auto col_res = ColumnUInt8::create();
296
297
376
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
376
            vec_res.resize(col_left->size());
299
376
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
376
                              typename PrimitiveTypeTraits<PT>::CppType,
301
376
                              Op<PT>>::vector_constant(col_left->get_data(),
302
376
                                                       col_right->get_element(0), vec_res);
303
304
376
            block.replace_by_position(result, std::move(col_res));
305
376
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
376
        return Status::OK();
318
376
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
100
                            const ColumnPtr& col_right_ptr) const {
275
100
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
100
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
100
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
100
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
100
        DCHECK(!(left_is_const && right_is_const));
282
283
100
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
99
        } else if (!left_is_const && right_is_const) {
295
99
            auto col_res = ColumnUInt8::create();
296
297
99
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
99
            vec_res.resize(col_left->size());
299
99
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
99
                              typename PrimitiveTypeTraits<PT>::CppType,
301
99
                              Op<PT>>::vector_constant(col_left->get_data(),
302
99
                                                       col_right->get_element(0), vec_res);
303
304
99
            block.replace_by_position(result, std::move(col_res));
305
99
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
100
        return Status::OK();
318
100
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
121
                            const ColumnPtr& col_right_ptr) const {
275
121
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
121
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
121
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
121
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
121
        DCHECK(!(left_is_const && right_is_const));
282
283
121
        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
121
        } 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
121
        return Status::OK();
318
121
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
12.4k
                            const ColumnPtr& col_right_ptr) const {
275
12.4k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
12.4k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
12.4k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
12.4k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
12.4k
        DCHECK(!(left_is_const && right_is_const));
282
283
12.4k
        if (!left_is_const && !right_is_const) {
284
46
            auto col_res = ColumnUInt8::create();
285
286
46
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
46
            vec_res.resize(col_left->get_data().size());
288
46
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
46
                              typename PrimitiveTypeTraits<PT>::CppType,
290
46
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
46
                                                     vec_res);
292
293
46
            block.replace_by_position(result, std::move(col_res));
294
12.3k
        } else if (!left_is_const && right_is_const) {
295
12.3k
            auto col_res = ColumnUInt8::create();
296
297
12.3k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
12.3k
            vec_res.resize(col_left->size());
299
12.3k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
12.3k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
12.3k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
12.3k
                                                       col_right->get_element(0), vec_res);
303
304
12.3k
            block.replace_by_position(result, std::move(col_res));
305
12.3k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
12.4k
        return Status::OK();
318
12.4k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
654
                            const ColumnPtr& col_right_ptr) const {
275
654
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
654
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
654
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
654
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
654
        DCHECK(!(left_is_const && right_is_const));
282
283
654
        if (!left_is_const && !right_is_const) {
284
32
            auto col_res = ColumnUInt8::create();
285
286
32
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
32
            vec_res.resize(col_left->get_data().size());
288
32
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
32
                              typename PrimitiveTypeTraits<PT>::CppType,
290
32
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
32
                                                     vec_res);
292
293
32
            block.replace_by_position(result, std::move(col_res));
294
622
        } else if (!left_is_const && right_is_const) {
295
622
            auto col_res = ColumnUInt8::create();
296
297
622
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
622
            vec_res.resize(col_left->size());
299
622
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
622
                              typename PrimitiveTypeTraits<PT>::CppType,
301
622
                              Op<PT>>::vector_constant(col_left->get_data(),
302
622
                                                       col_right->get_element(0), vec_res);
303
304
622
            block.replace_by_position(result, std::move(col_res));
305
622
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
654
        return Status::OK();
318
654
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
45
                            const ColumnPtr& col_right_ptr) const {
275
45
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
45
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
45
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
45
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
45
        DCHECK(!(left_is_const && right_is_const));
282
283
45
        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
45
        } else if (!left_is_const && right_is_const) {
295
45
            auto col_res = ColumnUInt8::create();
296
297
45
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
45
            vec_res.resize(col_left->size());
299
45
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
45
                              typename PrimitiveTypeTraits<PT>::CppType,
301
45
                              Op<PT>>::vector_constant(col_left->get_data(),
302
45
                                                       col_right->get_element(0), vec_res);
303
304
45
            block.replace_by_position(result, std::move(col_res));
305
45
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
45
        return Status::OK();
318
45
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
10
                            const ColumnPtr& col_right_ptr) const {
275
10
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
10
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
10
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
10
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
10
        DCHECK(!(left_is_const && right_is_const));
282
283
10
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
10
        } else if (!left_is_const && right_is_const) {
295
10
            auto col_res = ColumnUInt8::create();
296
297
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10
            vec_res.resize(col_left->size());
299
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10
                                                       col_right->get_element(0), vec_res);
303
304
10
            block.replace_by_position(result, std::move(col_res));
305
10
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
10
        return Status::OK();
318
10
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
164
                            const ColumnPtr& col_right_ptr) const {
275
164
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
164
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
164
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
164
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
164
        DCHECK(!(left_is_const && right_is_const));
282
283
164
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
144
        } else if (!left_is_const && right_is_const) {
295
144
            auto col_res = ColumnUInt8::create();
296
297
144
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
144
            vec_res.resize(col_left->size());
299
144
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
144
                              typename PrimitiveTypeTraits<PT>::CppType,
301
144
                              Op<PT>>::vector_constant(col_left->get_data(),
302
144
                                                       col_right->get_element(0), vec_res);
303
304
144
            block.replace_by_position(result, std::move(col_res));
305
144
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
164
        return Status::OK();
318
164
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
133
                            const ColumnPtr& col_right_ptr) const {
275
133
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
133
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
133
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
133
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
133
        DCHECK(!(left_is_const && right_is_const));
282
283
133
        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
113
        } else if (!left_is_const && right_is_const) {
295
113
            auto col_res = ColumnUInt8::create();
296
297
113
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
113
            vec_res.resize(col_left->size());
299
113
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
113
                              typename PrimitiveTypeTraits<PT>::CppType,
301
113
                              Op<PT>>::vector_constant(col_left->get_data(),
302
113
                                                       col_right->get_element(0), vec_res);
303
304
113
            block.replace_by_position(result, std::move(col_res));
305
113
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
133
        return Status::OK();
318
133
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
319
320
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
321
14.9k
                           const ColumnWithTypeAndName& col_right) const {
322
14.9k
        auto call = [&](const auto& type) -> bool {
323
14.9k
            using DispatchType = std::decay_t<decltype(type)>;
324
14.9k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
14.9k
                    block, result, col_left, col_right);
326
14.9k
            return true;
327
14.9k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
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
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
248
        auto call = [&](const auto& type) -> bool {
323
248
            using DispatchType = std::decay_t<decltype(type)>;
324
248
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
248
                    block, result, col_left, col_right);
326
248
            return true;
327
248
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
1.28k
        auto call = [&](const auto& type) -> bool {
323
1.28k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.28k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.28k
                    block, result, col_left, col_right);
326
1.28k
            return true;
327
1.28k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
34
        auto call = [&](const auto& type) -> bool {
323
34
            using DispatchType = std::decay_t<decltype(type)>;
324
34
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
34
                    block, result, col_left, col_right);
326
34
            return true;
327
34
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
61
        auto call = [&](const auto& type) -> bool {
323
61
            using DispatchType = std::decay_t<decltype(type)>;
324
61
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
61
                    block, result, col_left, col_right);
326
61
            return true;
327
61
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
324
        auto call = [&](const auto& type) -> bool {
323
324
            using DispatchType = std::decay_t<decltype(type)>;
324
324
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
324
                    block, result, col_left, col_right);
326
324
            return true;
327
324
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
30
        auto call = [&](const auto& type) -> bool {
323
30
            using DispatchType = std::decay_t<decltype(type)>;
324
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
30
                    block, result, col_left, col_right);
326
30
            return true;
327
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
28
        auto call = [&](const auto& type) -> bool {
323
28
            using DispatchType = std::decay_t<decltype(type)>;
324
28
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
28
                    block, result, col_left, col_right);
326
28
            return true;
327
28
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
7.09k
        auto call = [&](const auto& type) -> bool {
323
7.09k
            using DispatchType = std::decay_t<decltype(type)>;
324
7.09k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
7.09k
                    block, result, col_left, col_right);
326
7.09k
            return true;
327
7.09k
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
1.73k
        auto call = [&](const auto& type) -> bool {
323
1.73k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.73k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.73k
                    block, result, col_left, col_right);
326
1.73k
            return true;
327
1.73k
        };
_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
5
        auto call = [&](const auto& type) -> bool {
323
5
            using DispatchType = std::decay_t<decltype(type)>;
324
5
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
5
                    block, result, col_left, col_right);
326
5
            return true;
327
5
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
327
        auto call = [&](const auto& type) -> bool {
323
327
            using DispatchType = std::decay_t<decltype(type)>;
324
327
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
327
                    block, result, col_left, col_right);
326
327
            return true;
327
327
        };
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
19
        auto call = [&](const auto& type) -> bool {
323
19
            using DispatchType = std::decay_t<decltype(type)>;
324
19
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
19
                    block, result, col_left, col_right);
326
19
            return true;
327
19
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
27
        auto call = [&](const auto& type) -> bool {
323
27
            using DispatchType = std::decay_t<decltype(type)>;
324
27
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
27
                    block, result, col_left, col_right);
326
27
            return true;
327
27
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
192
        auto call = [&](const auto& type) -> bool {
323
192
            using DispatchType = std::decay_t<decltype(type)>;
324
192
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
192
                    block, result, col_left, col_right);
326
192
            return true;
327
192
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
231
        auto call = [&](const auto& type) -> bool {
323
231
            using DispatchType = std::decay_t<decltype(type)>;
324
231
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
231
                    block, result, col_left, col_right);
326
231
            return true;
327
231
        };
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
596
        auto call = [&](const auto& type) -> bool {
323
596
            using DispatchType = std::decay_t<decltype(type)>;
324
596
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
596
                    block, result, col_left, col_right);
326
596
            return true;
327
596
        };
_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
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_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
1.71k
        auto call = [&](const auto& type) -> bool {
323
1.71k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.71k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.71k
                    block, result, col_left, col_right);
326
1.71k
            return true;
327
1.71k
        };
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
735
        auto call = [&](const auto& type) -> bool {
323
735
            using DispatchType = std::decay_t<decltype(type)>;
324
735
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
735
                    block, result, col_left, col_right);
326
735
            return true;
327
735
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
22
        auto call = [&](const auto& type) -> bool {
323
22
            using DispatchType = std::decay_t<decltype(type)>;
324
22
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
22
                    block, result, col_left, col_right);
326
22
            return true;
327
22
        };
328
329
14.9k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
14.9k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
14.9k
        return Status::OK();
340
14.9k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.78k
                           const ColumnWithTypeAndName& col_right) const {
322
1.78k
        auto call = [&](const auto& type) -> bool {
323
1.78k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.78k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.78k
                    block, result, col_left, col_right);
326
1.78k
            return true;
327
1.78k
        };
328
329
1.78k
        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.78k
        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.78k
        return Status::OK();
340
1.78k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
415
                           const ColumnWithTypeAndName& col_right) const {
322
415
        auto call = [&](const auto& type) -> bool {
323
415
            using DispatchType = std::decay_t<decltype(type)>;
324
415
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
415
                    block, result, col_left, col_right);
326
415
            return true;
327
415
        };
328
329
415
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
415
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
415
        return Status::OK();
340
415
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
8.85k
                           const ColumnWithTypeAndName& col_right) const {
322
8.85k
        auto call = [&](const auto& type) -> bool {
323
8.85k
            using DispatchType = std::decay_t<decltype(type)>;
324
8.85k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
8.85k
                    block, result, col_left, col_right);
326
8.85k
            return true;
327
8.85k
        };
328
329
8.85k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
8.85k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
8.85k
        return Status::OK();
340
8.85k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
378
                           const ColumnWithTypeAndName& col_right) const {
322
378
        auto call = [&](const auto& type) -> bool {
323
378
            using DispatchType = std::decay_t<decltype(type)>;
324
378
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
378
                    block, result, col_left, col_right);
326
378
            return true;
327
378
        };
328
329
378
        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
378
        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
378
        return Status::OK();
340
378
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.02k
                           const ColumnWithTypeAndName& col_right) const {
322
1.02k
        auto call = [&](const auto& type) -> bool {
323
1.02k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.02k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.02k
                    block, result, col_left, col_right);
326
1.02k
            return true;
327
1.02k
        };
328
329
1.02k
        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.02k
        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.02k
        return Status::OK();
340
1.02k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
2.47k
                           const ColumnWithTypeAndName& col_right) const {
322
2.47k
        auto call = [&](const auto& type) -> bool {
323
2.47k
            using DispatchType = std::decay_t<decltype(type)>;
324
2.47k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
2.47k
                    block, result, col_left, col_right);
326
2.47k
            return true;
327
2.47k
        };
328
329
2.47k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
2.47k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
2.47k
        return Status::OK();
340
2.47k
    }
341
342
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
343
24.4k
                          const IColumn* c1) const {
344
24.4k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
24.4k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
24.4k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
24.4k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
24.4k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
24.4k
        DCHECK(!(c0_const && c1_const));
353
24.4k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
24.4k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
24.4k
        ColumnString::Offset c0_const_size = 0;
356
24.4k
        ColumnString::Offset c1_const_size = 0;
357
358
24.4k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
24.4k
        if (c1_const) {
372
23.5k
            const ColumnString* c1_const_string =
373
23.5k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
23.5k
            if (c1_const_string) {
376
23.5k
                c1_const_chars = &c1_const_string->get_chars();
377
23.5k
                c1_const_size = c1_const_string->get_offsets()[0];
378
23.5k
            } else {
379
1
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
1
                                            c1->get_name(), name);
381
1
            }
382
23.5k
        }
383
384
24.4k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
24.4k
        auto c_res = ColumnUInt8::create();
387
24.4k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
24.4k
        vec_res.resize(c0->size());
389
390
24.4k
        if (c0_string && c1_string) {
391
901
            StringImpl::string_vector_string_vector(
392
901
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
901
                    c1_string->get_offsets(), vec_res);
394
23.5k
        } else if (c0_string && c1_const) {
395
23.5k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
23.5k
                                               *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
24.4k
        block.replace_by_position(result, std::move(c_res));
406
24.4k
        return Status::OK();
407
24.4k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
20.6k
                          const IColumn* c1) const {
344
20.6k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
20.6k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
20.6k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
20.6k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
20.6k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
20.6k
        DCHECK(!(c0_const && c1_const));
353
20.6k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
20.6k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
20.6k
        ColumnString::Offset c0_const_size = 0;
356
20.6k
        ColumnString::Offset c1_const_size = 0;
357
358
20.6k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
20.6k
        if (c1_const) {
372
20.2k
            const ColumnString* c1_const_string =
373
20.2k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
20.2k
            if (c1_const_string) {
376
20.1k
                c1_const_chars = &c1_const_string->get_chars();
377
20.1k
                c1_const_size = c1_const_string->get_offsets()[0];
378
20.1k
            } else {
379
1
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
1
                                            c1->get_name(), name);
381
1
            }
382
20.2k
        }
383
384
20.6k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
20.6k
        auto c_res = ColumnUInt8::create();
387
20.6k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
20.6k
        vec_res.resize(c0->size());
389
390
20.6k
        if (c0_string && c1_string) {
391
454
            StringImpl::string_vector_string_vector(
392
454
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
454
                    c1_string->get_offsets(), vec_res);
394
20.2k
        } else if (c0_string && c1_const) {
395
20.2k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
20.2k
                                               *c1_const_chars, c1_const_size, vec_res);
397
18.4E
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
18.4E
        } else {
402
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
18.4E
                                        c0->get_name(), c1->get_name(), name);
404
18.4E
        }
405
20.6k
        block.replace_by_position(result, std::move(c_res));
406
20.6k
        return Status::OK();
407
20.6k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
1.31k
                          const IColumn* c1) const {
344
1.31k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
1.31k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
1.31k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
1.31k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
1.31k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
1.31k
        DCHECK(!(c0_const && c1_const));
353
1.31k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
1.31k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
1.31k
        ColumnString::Offset c0_const_size = 0;
356
1.31k
        ColumnString::Offset c1_const_size = 0;
357
358
1.31k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
1.31k
        if (c1_const) {
372
1.31k
            const ColumnString* c1_const_string =
373
1.31k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
1.31k
            if (c1_const_string) {
376
1.31k
                c1_const_chars = &c1_const_string->get_chars();
377
1.31k
                c1_const_size = c1_const_string->get_offsets()[0];
378
1.31k
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
1.31k
        }
383
384
1.31k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
1.31k
        auto c_res = ColumnUInt8::create();
387
1.31k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
1.31k
        vec_res.resize(c0->size());
389
390
1.31k
        if (c0_string && c1_string) {
391
1
            StringImpl::string_vector_string_vector(
392
1
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
1
                    c1_string->get_offsets(), vec_res);
394
1.31k
        } else if (c0_string && c1_const) {
395
1.31k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
1.31k
                                               *c1_const_chars, c1_const_size, vec_res);
397
1.31k
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
1.31k
        block.replace_by_position(result, std::move(c_res));
406
1.31k
        return Status::OK();
407
1.31k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
212
                          const IColumn* c1) const {
344
212
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
212
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
212
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
212
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
212
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
212
        DCHECK(!(c0_const && c1_const));
353
212
        const ColumnString::Chars* c0_const_chars = nullptr;
354
212
        const ColumnString::Chars* c1_const_chars = nullptr;
355
212
        ColumnString::Offset c0_const_size = 0;
356
212
        ColumnString::Offset c1_const_size = 0;
357
358
212
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
212
        if (c1_const) {
372
210
            const ColumnString* c1_const_string =
373
210
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
210
            if (c1_const_string) {
376
210
                c1_const_chars = &c1_const_string->get_chars();
377
210
                c1_const_size = c1_const_string->get_offsets()[0];
378
210
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
210
        }
383
384
212
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
212
        auto c_res = ColumnUInt8::create();
387
212
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
212
        vec_res.resize(c0->size());
389
390
212
        if (c0_string && c1_string) {
391
2
            StringImpl::string_vector_string_vector(
392
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
2
                    c1_string->get_offsets(), vec_res);
394
210
        } else if (c0_string && c1_const) {
395
210
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
210
                                               *c1_const_chars, c1_const_size, vec_res);
397
210
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
212
        block.replace_by_position(result, std::move(c_res));
406
212
        return Status::OK();
407
212
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
677
                          const IColumn* c1) const {
344
677
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
677
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
677
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
677
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
677
        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
677
        DCHECK(!(c0_const && c1_const));
353
677
        const ColumnString::Chars* c0_const_chars = nullptr;
354
677
        const ColumnString::Chars* c1_const_chars = nullptr;
355
677
        ColumnString::Offset c0_const_size = 0;
356
677
        ColumnString::Offset c1_const_size = 0;
357
358
677
        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
677
        if (c1_const) {
372
631
            const ColumnString* c1_const_string =
373
631
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
631
            if (c1_const_string) {
376
631
                c1_const_chars = &c1_const_string->get_chars();
377
631
                c1_const_size = c1_const_string->get_offsets()[0];
378
631
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
631
        }
383
384
677
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
677
        auto c_res = ColumnUInt8::create();
387
677
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
677
        vec_res.resize(c0->size());
389
390
677
        if (c0_string && c1_string) {
391
46
            StringImpl::string_vector_string_vector(
392
46
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
46
                    c1_string->get_offsets(), vec_res);
394
631
        } else if (c0_string && c1_const) {
395
631
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
631
                                               *c1_const_chars, c1_const_size, vec_res);
397
631
        } 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
677
        block.replace_by_position(result, std::move(c_res));
406
677
        return Status::OK();
407
677
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
721
                          const IColumn* c1) const {
344
721
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
721
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
721
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
721
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
721
        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
721
        DCHECK(!(c0_const && c1_const));
353
721
        const ColumnString::Chars* c0_const_chars = nullptr;
354
721
        const ColumnString::Chars* c1_const_chars = nullptr;
355
721
        ColumnString::Offset c0_const_size = 0;
356
721
        ColumnString::Offset c1_const_size = 0;
357
358
721
        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
721
        if (c1_const) {
372
323
            const ColumnString* c1_const_string =
373
323
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
323
            if (c1_const_string) {
376
323
                c1_const_chars = &c1_const_string->get_chars();
377
323
                c1_const_size = c1_const_string->get_offsets()[0];
378
323
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
323
        }
383
384
721
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
721
        auto c_res = ColumnUInt8::create();
387
721
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
721
        vec_res.resize(c0->size());
389
390
721
        if (c0_string && c1_string) {
391
398
            StringImpl::string_vector_string_vector(
392
398
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
398
                    c1_string->get_offsets(), vec_res);
394
398
        } else if (c0_string && c1_const) {
395
323
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
323
                                               *c1_const_chars, c1_const_size, vec_res);
397
323
        } 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
721
        block.replace_by_position(result, std::move(c_res));
406
721
        return Status::OK();
407
721
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
879
                          const IColumn* c1) const {
344
879
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
879
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
879
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
879
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
879
        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
879
        DCHECK(!(c0_const && c1_const));
353
879
        const ColumnString::Chars* c0_const_chars = nullptr;
354
879
        const ColumnString::Chars* c1_const_chars = nullptr;
355
879
        ColumnString::Offset c0_const_size = 0;
356
879
        ColumnString::Offset c1_const_size = 0;
357
358
879
        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
879
        if (c1_const) {
372
879
            const ColumnString* c1_const_string =
373
879
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
879
            if (c1_const_string) {
376
879
                c1_const_chars = &c1_const_string->get_chars();
377
879
                c1_const_size = c1_const_string->get_offsets()[0];
378
879
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
879
        }
383
384
879
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
879
        auto c_res = ColumnUInt8::create();
387
879
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
879
        vec_res.resize(c0->size());
389
390
879
        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
879
        } else if (c0_string && c1_const) {
395
879
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
879
                                               *c1_const_chars, c1_const_size, vec_res);
397
879
        } 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
879
        block.replace_by_position(result, std::move(c_res));
406
879
        return Status::OK();
407
879
    }
408
409
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
410
126
                                         const IColumn* c1) const {
411
126
        bool c0_const = is_column_const(*c0);
412
126
        bool c1_const = is_column_const(*c1);
413
414
126
        DCHECK(!(c0_const && c1_const));
415
416
126
        auto c_res = ColumnUInt8::create();
417
126
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
126
        vec_res.resize(c0->size());
419
420
126
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
126
        } else if (c1_const) {
423
117
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
117
        } else {
425
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
9
        }
427
428
126
        block.replace_by_position(result, std::move(c_res));
429
126
    }
_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
50
                                         const IColumn* c1) const {
411
50
        bool c0_const = is_column_const(*c0);
412
50
        bool c1_const = is_column_const(*c1);
413
414
50
        DCHECK(!(c0_const && c1_const));
415
416
50
        auto c_res = ColumnUInt8::create();
417
50
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
50
        vec_res.resize(c0->size());
419
420
50
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
50
        } else if (c1_const) {
423
49
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
49
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
50
        block.replace_by_position(result, std::move(c_res));
429
50
    }
_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
31
                                         const IColumn* c1) const {
411
31
        bool c0_const = is_column_const(*c0);
412
31
        bool c1_const = is_column_const(*c1);
413
414
31
        DCHECK(!(c0_const && c1_const));
415
416
31
        auto c_res = ColumnUInt8::create();
417
31
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
31
        vec_res.resize(c0->size());
419
420
31
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
31
        } else if (c1_const) {
423
31
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
31
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
31
        block.replace_by_position(result, std::move(c_res));
429
31
    }
430
431
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
432
126
                           const ColumnWithTypeAndName& c1) const {
433
126
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
126
        return Status::OK();
435
126
    }
_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
50
                           const ColumnWithTypeAndName& c1) const {
433
50
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
50
        return Status::OK();
435
50
    }
_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
31
                           const ColumnWithTypeAndName& c1) const {
433
31
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
31
        return Status::OK();
435
31
    }
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
462k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
422k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
1.28k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
440
6.24k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
14.1k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
440
3.09k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
14.5k
    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
462k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
462k
        return std::make_shared<DataTypeUInt8>();
445
462k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
422k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
422k
        return std::make_shared<DataTypeUInt8>();
445
422k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
1.28k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
1.28k
        return std::make_shared<DataTypeUInt8>();
445
1.28k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
6.24k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
6.24k
        return std::make_shared<DataTypeUInt8>();
445
6.24k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
14.1k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
14.1k
        return std::make_shared<DataTypeUInt8>();
445
14.1k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
3.09k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
3.09k
        return std::make_shared<DataTypeUInt8>();
445
3.09k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
14.5k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
14.5k
        return std::make_shared<DataTypeUInt8>();
445
14.5k
    }
446
447
    Status evaluate_inverted_index(
448
            const ColumnsWithTypeAndName& arguments,
449
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
450
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
451
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
452
1.73k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
1.73k
        DCHECK(arguments.size() == 1);
454
1.73k
        DCHECK(data_type_with_names.size() == 1);
455
1.73k
        DCHECK(iterators.size() == 1);
456
1.73k
        auto* iter = iterators[0];
457
1.73k
        auto data_type_with_name = data_type_with_names[0];
458
1.73k
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
1.73k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
430
            return Status::OK();
463
430
        }
464
1.30k
        segment_v2::InvertedIndexQueryType query_type;
465
1.30k
        std::string_view name_view(name);
466
1.30k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
851
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
851
        } else if (name_view == NameLess::name) {
469
112
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
343
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
245
        } else if (name_view == NameGreater::name) {
473
113
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
135
        } else if (name_view == NameGreaterOrEquals::name) {
475
135
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
1.30k
        if (segment_v2::is_range_query(query_type) &&
481
1.30k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
171
            return Status::OK();
484
171
        }
485
1.13k
        Field param_value;
486
1.13k
        arguments[0].column->get(0, param_value);
487
1.13k
        if (param_value.is_null()) {
488
1
            return Status::OK();
489
1
        }
490
1.13k
        auto param_type = arguments[0].type->get_primitive_type();
491
1.13k
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
1.13k
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
1.13k
                param_type, &param_value, query_param));
494
495
1.13k
        segment_v2::InvertedIndexParam param;
496
1.13k
        param.column_name = data_type_with_name.first;
497
1.13k
        param.column_type = data_type_with_name.second;
498
1.13k
        param.query_value = query_param->get_value();
499
1.13k
        param.query_type = query_type;
500
1.13k
        param.num_rows = num_rows;
501
1.13k
        param.roaring = std::make_shared<roaring::Roaring>();
502
1.13k
        param.analyzer_ctx = analyzer_ctx;
503
1.13k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
988
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
988
        if (iter->has_null()) {
506
987
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
987
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
987
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
987
        }
510
988
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
988
        bitmap_result = result;
512
988
        bitmap_result.mask_out_null();
513
514
988
        if (name_view == NameNotEquals::name) {
515
59
            roaring::Roaring full_result;
516
59
            full_result.addRange(0, num_rows);
517
59
            bitmap_result.op_not(&full_result);
518
59
        }
519
520
988
        return Status::OK();
521
988
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
852
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
852
        DCHECK(arguments.size() == 1);
454
852
        DCHECK(data_type_with_names.size() == 1);
455
852
        DCHECK(iterators.size() == 1);
456
852
        auto* iter = iterators[0];
457
852
        auto data_type_with_name = data_type_with_names[0];
458
852
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
852
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
72
            return Status::OK();
463
72
        }
464
780
        segment_v2::InvertedIndexQueryType query_type;
465
780
        std::string_view name_view(name);
466
782
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
782
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
18.4E
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
18.4E
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
18.4E
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
782
        if (segment_v2::is_range_query(query_type) &&
481
782
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
0
            return Status::OK();
484
0
        }
485
782
        Field param_value;
486
782
        arguments[0].column->get(0, param_value);
487
782
        if (param_value.is_null()) {
488
1
            return Status::OK();
489
1
        }
490
781
        auto param_type = arguments[0].type->get_primitive_type();
491
781
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
781
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
781
                param_type, &param_value, query_param));
494
495
781
        segment_v2::InvertedIndexParam param;
496
781
        param.column_name = data_type_with_name.first;
497
781
        param.column_type = data_type_with_name.second;
498
781
        param.query_value = query_param->get_value();
499
781
        param.query_type = query_type;
500
781
        param.num_rows = num_rows;
501
781
        param.roaring = std::make_shared<roaring::Roaring>();
502
781
        param.analyzer_ctx = analyzer_ctx;
503
781
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
740
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
740
        if (iter->has_null()) {
506
738
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
738
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
738
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
738
        }
510
740
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
740
        bitmap_result = result;
512
740
        bitmap_result.mask_out_null();
513
514
740
        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
740
        return Status::OK();
521
740
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
77
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
77
        DCHECK(arguments.size() == 1);
454
77
        DCHECK(data_type_with_names.size() == 1);
455
77
        DCHECK(iterators.size() == 1);
456
77
        auto* iter = iterators[0];
457
77
        auto data_type_with_name = data_type_with_names[0];
458
77
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
77
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
8
            return Status::OK();
463
8
        }
464
69
        segment_v2::InvertedIndexQueryType query_type;
465
69
        std::string_view name_view(name);
466
69
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
69
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
69
        } 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
69
        if (segment_v2::is_range_query(query_type) &&
481
69
            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
69
        Field param_value;
486
69
        arguments[0].column->get(0, param_value);
487
69
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
69
        auto param_type = arguments[0].type->get_primitive_type();
491
69
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
69
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
69
                param_type, &param_value, query_param));
494
495
69
        segment_v2::InvertedIndexParam param;
496
69
        param.column_name = data_type_with_name.first;
497
69
        param.column_type = data_type_with_name.second;
498
69
        param.query_value = query_param->get_value();
499
69
        param.query_type = query_type;
500
69
        param.num_rows = num_rows;
501
69
        param.roaring = std::make_shared<roaring::Roaring>();
502
69
        param.analyzer_ctx = analyzer_ctx;
503
69
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
62
        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
62
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
62
        bitmap_result = result;
512
62
        bitmap_result.mask_out_null();
513
514
62
        if (name_view == NameNotEquals::name) {
515
59
            roaring::Roaring full_result;
516
59
            full_result.addRange(0, num_rows);
517
59
            bitmap_result.op_not(&full_result);
518
59
        }
519
520
62
        return Status::OK();
521
62
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
175
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
175
        DCHECK(arguments.size() == 1);
454
175
        DCHECK(data_type_with_names.size() == 1);
455
175
        DCHECK(iterators.size() == 1);
456
175
        auto* iter = iterators[0];
457
175
        auto data_type_with_name = data_type_with_names[0];
458
175
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
175
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
62
            return Status::OK();
463
62
        }
464
113
        segment_v2::InvertedIndexQueryType query_type;
465
113
        std::string_view name_view(name);
466
113
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
113
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
113
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
113
        } else if (name_view == NameGreater::name) {
473
113
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
113
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
113
        if (segment_v2::is_range_query(query_type) &&
481
113
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
28
            return Status::OK();
484
28
        }
485
85
        Field param_value;
486
85
        arguments[0].column->get(0, param_value);
487
85
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
85
        auto param_type = arguments[0].type->get_primitive_type();
491
85
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
85
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
85
                param_type, &param_value, query_param));
494
495
85
        segment_v2::InvertedIndexParam param;
496
85
        param.column_name = data_type_with_name.first;
497
85
        param.column_type = data_type_with_name.second;
498
85
        param.query_value = query_param->get_value();
499
85
        param.query_type = query_type;
500
85
        param.num_rows = num_rows;
501
85
        param.roaring = std::make_shared<roaring::Roaring>();
502
85
        param.analyzer_ctx = analyzer_ctx;
503
85
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
66
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
66
        if (iter->has_null()) {
506
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
249
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
249
        DCHECK(arguments.size() == 1);
454
249
        DCHECK(data_type_with_names.size() == 1);
455
249
        DCHECK(iterators.size() == 1);
456
249
        auto* iter = iterators[0];
457
249
        auto data_type_with_name = data_type_with_names[0];
458
249
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
249
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
114
            return Status::OK();
463
114
        }
464
135
        segment_v2::InvertedIndexQueryType query_type;
465
135
        std::string_view name_view(name);
466
135
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
135
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
135
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
135
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
135
        } else if (name_view == NameGreaterOrEquals::name) {
475
135
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
135
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
135
        if (segment_v2::is_range_query(query_type) &&
481
135
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
59
            return Status::OK();
484
59
        }
485
76
        Field param_value;
486
76
        arguments[0].column->get(0, param_value);
487
76
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
76
        auto param_type = arguments[0].type->get_primitive_type();
491
76
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
76
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
76
                param_type, &param_value, query_param));
494
495
76
        segment_v2::InvertedIndexParam param;
496
76
        param.column_name = data_type_with_name.first;
497
76
        param.column_type = data_type_with_name.second;
498
76
        param.query_value = query_param->get_value();
499
76
        param.query_type = query_type;
500
76
        param.num_rows = num_rows;
501
76
        param.roaring = std::make_shared<roaring::Roaring>();
502
76
        param.analyzer_ctx = analyzer_ctx;
503
76
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
34
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
34
        if (iter->has_null()) {
506
34
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
34
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
34
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
34
        }
510
34
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
34
        bitmap_result = result;
512
34
        bitmap_result.mask_out_null();
513
514
34
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
34
        return Status::OK();
521
34
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
172
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
172
        DCHECK(arguments.size() == 1);
454
172
        DCHECK(data_type_with_names.size() == 1);
455
172
        DCHECK(iterators.size() == 1);
456
172
        auto* iter = iterators[0];
457
172
        auto data_type_with_name = data_type_with_names[0];
458
172
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
172
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
61
            return Status::OK();
463
61
        }
464
111
        segment_v2::InvertedIndexQueryType query_type;
465
111
        std::string_view name_view(name);
466
112
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
112
        } else if (name_view == NameLess::name) {
469
112
            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
112
        if (segment_v2::is_range_query(query_type) &&
481
112
            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
86
        Field param_value;
486
86
        arguments[0].column->get(0, param_value);
487
86
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
86
        auto param_type = arguments[0].type->get_primitive_type();
491
86
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
86
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
86
                param_type, &param_value, query_param));
494
495
86
        segment_v2::InvertedIndexParam param;
496
86
        param.column_name = data_type_with_name.first;
497
86
        param.column_type = data_type_with_name.second;
498
86
        param.query_value = query_param->get_value();
499
86
        param.query_type = query_type;
500
86
        param.num_rows = num_rows;
501
86
        param.roaring = std::make_shared<roaring::Roaring>();
502
86
        param.analyzer_ctx = analyzer_ctx;
503
86
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
67
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
67
        if (iter->has_null()) {
506
67
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
67
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
67
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
67
        }
510
67
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
67
        bitmap_result = result;
512
67
        bitmap_result.mask_out_null();
513
514
67
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
67
        return Status::OK();
521
67
    }
_ZNK5doris18FunctionComparisonINS_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
19
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
19
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
19
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
19
        }
510
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
148k
                        uint32_t result, size_t input_rows_count) const override {
525
148k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
148k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
148k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
148k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
148k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
148k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
148k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
148k
        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
148k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
148k
            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
257k
        auto can_compare = [](PrimitiveType t) -> bool {
563
257k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
257k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
76.4k
        auto can_compare = [](PrimitiveType t) -> bool {
563
76.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
76.4k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
9.30k
        auto can_compare = [](PrimitiveType t) -> bool {
563
9.30k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
9.30k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
67.8k
        auto can_compare = [](PrimitiveType t) -> bool {
563
67.8k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
67.8k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
32.8k
        auto can_compare = [](PrimitiveType t) -> bool {
563
32.8k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
32.8k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
18.4k
        auto can_compare = [](PrimitiveType t) -> bool {
563
18.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
18.4k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
52.6k
        auto can_compare = [](PrimitiveType t) -> bool {
563
52.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
52.6k
        };
565
566
148k
        if (can_compare(left_type->get_primitive_type()) &&
567
148k
            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
109k
            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
109k
        }
575
576
148k
        auto compare_type = left_type->get_primitive_type();
577
148k
        switch (compare_type) {
578
2.02k
        case TYPE_BOOLEAN:
579
2.02k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
16.5k
        case TYPE_DATEV2:
581
16.5k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
2.36k
        case TYPE_DATETIMEV2:
583
2.36k
            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.90k
        case TYPE_TINYINT:
587
5.90k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
2.15k
        case TYPE_SMALLINT:
589
2.15k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
46.5k
        case TYPE_INT:
591
46.5k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
28.4k
        case TYPE_BIGINT:
593
28.4k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
632
        case TYPE_LARGEINT:
595
632
            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
863
        case TYPE_FLOAT:
601
863
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
3.42k
        case TYPE_DOUBLE:
603
3.42k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
4
        case TYPE_TIMEV2:
605
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
606
0
        case TYPE_DECIMALV2:
607
442
        case TYPE_DECIMAL32:
608
10.1k
        case TYPE_DECIMAL64:
609
14.8k
        case TYPE_DECIMAL128I:
610
14.9k
        case TYPE_DECIMAL256:
611
14.9k
            return execute_decimal(block, result, col_with_type_and_name_left,
612
14.9k
                                   col_with_type_and_name_right);
613
1.15k
        case TYPE_CHAR:
614
9.91k
        case TYPE_VARCHAR:
615
24.4k
        case TYPE_STRING:
616
24.4k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
617
126
        default:
618
126
            return execute_generic(block, result, col_with_type_and_name_left,
619
126
                                   col_with_type_and_name_right);
620
148k
        }
621
0
        return Status::OK();
622
148k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
49.4k
                        uint32_t result, size_t input_rows_count) const override {
525
49.4k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
49.4k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
49.4k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
49.4k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
49.4k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
49.4k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
49.4k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
49.4k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
49.4k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
49.4k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
49.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
49.4k
        };
565
566
49.4k
        if (can_compare(left_type->get_primitive_type()) &&
567
49.4k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
27.0k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
27.0k
        }
575
576
49.4k
        auto compare_type = left_type->get_primitive_type();
577
49.4k
        switch (compare_type) {
578
1.58k
        case TYPE_BOOLEAN:
579
1.58k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.27k
        case TYPE_DATEV2:
581
1.27k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
630
        case TYPE_DATETIMEV2:
583
630
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
4.00k
        case TYPE_TINYINT:
587
4.00k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
606
        case TYPE_SMALLINT:
589
606
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
7.69k
        case TYPE_INT:
591
7.69k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
10.6k
        case TYPE_BIGINT:
593
10.6k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
131
        case TYPE_LARGEINT:
595
131
            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
96
        case TYPE_FLOAT:
601
96
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
289
        case TYPE_DOUBLE:
603
289
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
4
        case TYPE_TIMEV2:
605
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
606
0
        case TYPE_DECIMALV2:
607
213
        case TYPE_DECIMAL32:
608
461
        case TYPE_DECIMAL64:
609
1.74k
        case TYPE_DECIMAL128I:
610
1.78k
        case TYPE_DECIMAL256:
611
1.78k
            return execute_decimal(block, result, col_with_type_and_name_left,
612
1.78k
                                   col_with_type_and_name_right);
613
828
        case TYPE_CHAR:
614
8.49k
        case TYPE_VARCHAR:
615
20.6k
        case TYPE_STRING:
616
20.6k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
617
17
        default:
618
17
            return execute_generic(block, result, col_with_type_and_name_left,
619
17
                                   col_with_type_and_name_right);
620
49.4k
        }
621
0
        return Status::OK();
622
49.4k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
5.52k
                        uint32_t result, size_t input_rows_count) const override {
525
5.52k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
5.52k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
5.52k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
5.52k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
5.52k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
5.52k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
5.52k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
5.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
5.52k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
5.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
5.52k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
5.52k
        };
565
566
5.52k
        if (can_compare(left_type->get_primitive_type()) &&
567
5.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
3.78k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
3.78k
        }
575
576
5.52k
        auto compare_type = left_type->get_primitive_type();
577
5.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
53
        case TYPE_DATEV2:
581
53
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
2
        case TYPE_DATETIMEV2:
583
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
0
        case TYPE_TIMESTAMPTZ:
585
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
92
        case TYPE_TINYINT:
587
92
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
4
        case TYPE_SMALLINT:
589
4
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
1.97k
        case TYPE_INT:
591
1.97k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
1.55k
        case TYPE_BIGINT:
593
1.55k
            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
47
        case TYPE_FLOAT:
601
47
            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_TIMEV2:
605
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
606
0
        case TYPE_DECIMALV2:
607
0
        case TYPE_DECIMAL32:
608
61
        case TYPE_DECIMAL64:
609
385
        case TYPE_DECIMAL128I:
610
415
        case TYPE_DECIMAL256:
611
415
            return execute_decimal(block, result, col_with_type_and_name_left,
612
415
                                   col_with_type_and_name_right);
613
9
        case TYPE_CHAR:
614
282
        case TYPE_VARCHAR:
615
1.31k
        case TYPE_STRING:
616
1.31k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
617
8
        default:
618
8
            return execute_generic(block, result, col_with_type_and_name_left,
619
8
                                   col_with_type_and_name_right);
620
5.52k
        }
621
0
        return Status::OK();
622
5.52k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
38.4k
                        uint32_t result, size_t input_rows_count) const override {
525
38.4k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
38.4k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
38.4k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
38.4k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
38.4k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
38.4k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
38.4k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
38.4k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
38.4k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
38.4k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          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
38.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
38.4k
        };
565
566
38.4k
        if (can_compare(left_type->get_primitive_type()) &&
567
38.4k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
29.4k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
29.4k
        }
575
576
38.4k
        auto compare_type = left_type->get_primitive_type();
577
38.4k
        switch (compare_type) {
578
0
        case TYPE_BOOLEAN:
579
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.14k
        case TYPE_DATEV2:
581
1.14k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
92
        case TYPE_DATETIMEV2:
583
92
            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
773
        case TYPE_TINYINT:
587
773
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
1.07k
        case TYPE_SMALLINT:
589
1.07k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
10.0k
        case TYPE_INT:
591
10.0k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
13.3k
        case TYPE_BIGINT:
593
13.3k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
223
        case TYPE_LARGEINT:
595
223
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
2
        case TYPE_IPV4:
597
2
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
1
        case TYPE_IPV6:
599
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
228
        case TYPE_FLOAT:
601
228
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
2.45k
        case TYPE_DOUBLE:
603
2.45k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIMEV2:
605
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
606
0
        case TYPE_DECIMALV2:
607
28
        case TYPE_DECIMAL32:
608
7.11k
        case TYPE_DECIMAL64:
609
8.85k
        case TYPE_DECIMAL128I:
610
8.85k
        case TYPE_DECIMAL256:
611
8.85k
            return execute_decimal(block, result, col_with_type_and_name_left,
612
8.85k
                                   col_with_type_and_name_right);
613
21
        case TYPE_CHAR:
614
83
        case TYPE_VARCHAR:
615
212
        case TYPE_STRING:
616
212
            return execute_string(block, result, col_left_untyped, col_right_untyped);
617
9
        default:
618
9
            return execute_generic(block, result, col_with_type_and_name_left,
619
9
                                   col_with_type_and_name_right);
620
38.4k
        }
621
0
        return Status::OK();
622
38.4k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
16.9k
                        uint32_t result, size_t input_rows_count) const override {
525
16.9k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
16.9k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
16.9k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
16.9k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
16.9k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
16.9k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
16.9k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
16.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
16.9k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
16.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
16.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
16.9k
        };
565
566
16.9k
        if (can_compare(left_type->get_primitive_type()) &&
567
16.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
15.8k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
15.8k
        }
575
576
16.9k
        auto compare_type = left_type->get_primitive_type();
577
16.9k
        switch (compare_type) {
578
190
        case TYPE_BOOLEAN:
579
190
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.53k
        case TYPE_DATEV2:
581
1.53k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
713
        case TYPE_DATETIMEV2:
583
713
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
72
        case TYPE_TINYINT:
587
72
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
91
        case TYPE_SMALLINT:
589
91
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
12.3k
        case TYPE_INT:
591
12.3k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
486
        case TYPE_BIGINT:
593
486
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
51
        case TYPE_LARGEINT:
595
51
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
11
        case TYPE_IPV4:
597
11
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
1
        case TYPE_IPV6:
599
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
168
        case TYPE_FLOAT:
601
168
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
162
        case TYPE_DOUBLE:
603
162
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIMEV2:
605
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
606
0
        case TYPE_DECIMALV2:
607
5
        case TYPE_DECIMAL32:
608
332
        case TYPE_DECIMAL64:
609
351
        case TYPE_DECIMAL128I:
610
378
        case TYPE_DECIMAL256:
611
378
            return execute_decimal(block, result, col_with_type_and_name_left,
612
378
                                   col_with_type_and_name_right);
613
38
        case TYPE_CHAR:
614
277
        case TYPE_VARCHAR:
615
677
        case TYPE_STRING:
616
677
            return execute_string(block, result, col_left_untyped, col_right_untyped);
617
50
        default:
618
50
            return execute_generic(block, result, col_with_type_and_name_left,
619
50
                                   col_with_type_and_name_right);
620
16.9k
        }
621
0
        return Status::OK();
622
16.9k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
10.0k
                        uint32_t result, size_t input_rows_count) const override {
525
10.0k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
10.0k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
10.0k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
10.0k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
10.0k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
10.0k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
10.0k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
10.0k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
10.0k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
10.0k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
10.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
10.0k
        };
565
566
10.0k
        if (can_compare(left_type->get_primitive_type()) &&
567
10.0k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
8.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
8.33k
        }
575
576
10.0k
        auto compare_type = left_type->get_primitive_type();
577
10.0k
        switch (compare_type) {
578
67
        case TYPE_BOOLEAN:
579
67
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
2.13k
        case TYPE_DATEV2:
581
2.13k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
549
        case TYPE_DATETIMEV2:
583
549
            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
870
        case TYPE_TINYINT:
587
870
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
255
        case TYPE_SMALLINT:
589
255
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
2.03k
        case TYPE_INT:
591
2.03k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
1.71k
        case TYPE_BIGINT:
593
1.71k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
182
        case TYPE_LARGEINT:
595
182
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
16
        case TYPE_IPV4:
597
16
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
16
        case TYPE_IPV6:
599
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
160
        case TYPE_FLOAT:
601
160
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
333
        case TYPE_DOUBLE:
603
333
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIMEV2:
605
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
606
0
        case TYPE_DECIMALV2:
607
192
        case TYPE_DECIMAL32:
608
423
        case TYPE_DECIMAL64:
609
1.01k
        case TYPE_DECIMAL128I:
610
1.02k
        case TYPE_DECIMAL256:
611
1.02k
            return execute_decimal(block, result, col_with_type_and_name_left,
612
1.02k
                                   col_with_type_and_name_right);
613
168
        case TYPE_CHAR:
614
354
        case TYPE_VARCHAR:
615
721
        case TYPE_STRING:
616
721
            return execute_string(block, result, col_left_untyped, col_right_untyped);
617
11
        default:
618
11
            return execute_generic(block, result, col_with_type_and_name_left,
619
11
                                   col_with_type_and_name_right);
620
10.0k
        }
621
0
        return Status::OK();
622
10.0k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
28.0k
                        uint32_t result, size_t input_rows_count) const override {
525
28.0k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
28.0k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
28.0k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
28.0k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
28.0k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
28.0k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
28.0k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
28.0k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
28.0k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
28.0k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
28.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
28.0k
        };
565
566
28.0k
        if (can_compare(left_type->get_primitive_type()) &&
567
28.0k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
24.6k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
24.6k
        }
575
576
28.0k
        auto compare_type = left_type->get_primitive_type();
577
28.0k
        switch (compare_type) {
578
184
        case TYPE_BOOLEAN:
579
184
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
10.4k
        case TYPE_DATEV2:
581
10.4k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
376
        case TYPE_DATETIMEV2:
583
376
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
100
        case TYPE_TINYINT:
587
100
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
121
        case TYPE_SMALLINT:
589
121
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
12.4k
        case TYPE_INT:
591
12.4k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
654
        case TYPE_BIGINT:
593
654
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
45
        case TYPE_LARGEINT:
595
45
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
10
        case TYPE_IPV4:
597
10
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
0
        case TYPE_IPV6:
599
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
164
        case TYPE_FLOAT:
601
164
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
132
        case TYPE_DOUBLE:
603
132
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIMEV2:
605
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
606
0
        case TYPE_DECIMALV2:
607
4
        case TYPE_DECIMAL32:
608
1.71k
        case TYPE_DECIMAL64:
609
2.44k
        case TYPE_DECIMAL128I:
610
2.47k
        case TYPE_DECIMAL256:
611
2.47k
            return execute_decimal(block, result, col_with_type_and_name_left,
612
2.47k
                                   col_with_type_and_name_right);
613
87
        case TYPE_CHAR:
614
424
        case TYPE_VARCHAR:
615
879
        case TYPE_STRING:
616
879
            return execute_string(block, result, col_left_untyped, col_right_untyped);
617
31
        default:
618
31
            return execute_generic(block, result, col_with_type_and_name_left,
619
31
                                   col_with_type_and_name_right);
620
28.0k
        }
621
0
        return Status::OK();
622
28.0k
    }
623
};
624
625
#include "common/compile_check_end.h"
626
} // namespace doris