Coverage Report

Created: 2026-06-27 12:21

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/field.h"
38
#include "core/memcmp_small.h"
39
#include "core/value/vdatetime_value.h"
40
#include "exprs/function/function.h"
41
#include "exprs/function/function_helpers.h"
42
#include "exprs/function/functions_logical.h"
43
#include "storage/index/index_reader_helper.h"
44
45
namespace doris {
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
7.92k
                                        PaddedPODArray<UInt8>& c) {
66
7.92k
        size_t size = a.size();
67
7.92k
        const A* __restrict a_pos = a.data();
68
7.92k
        const B* __restrict b_pos = b.data();
69
7.92k
        UInt8* __restrict c_pos = c.data();
70
7.92k
        const A* __restrict a_end = a_pos + size;
71
72
6.06M
        while (a_pos < a_end) {
73
6.06M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.06M
            ++a_pos;
75
6.06M
            ++b_pos;
76
6.06M
            ++c_pos;
77
6.06M
        }
78
7.92k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
60
                                        PaddedPODArray<UInt8>& c) {
66
60
        size_t size = a.size();
67
60
        const A* __restrict a_pos = a.data();
68
60
        const B* __restrict b_pos = b.data();
69
60
        UInt8* __restrict c_pos = c.data();
70
60
        const A* __restrict a_end = a_pos + size;
71
72
120
        while (a_pos < a_end) {
73
60
            *c_pos = Op::apply(*a_pos, *b_pos);
74
60
            ++a_pos;
75
60
            ++b_pos;
76
60
            ++c_pos;
77
60
        }
78
60
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
198
                                        PaddedPODArray<UInt8>& c) {
66
198
        size_t size = a.size();
67
198
        const A* __restrict a_pos = a.data();
68
198
        const B* __restrict b_pos = b.data();
69
198
        UInt8* __restrict c_pos = c.data();
70
198
        const A* __restrict a_end = a_pos + size;
71
72
402
        while (a_pos < a_end) {
73
204
            *c_pos = Op::apply(*a_pos, *b_pos);
74
204
            ++a_pos;
75
204
            ++b_pos;
76
204
            ++c_pos;
77
204
        }
78
198
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
244
                                        PaddedPODArray<UInt8>& c) {
66
244
        size_t size = a.size();
67
244
        const A* __restrict a_pos = a.data();
68
244
        const B* __restrict b_pos = b.data();
69
244
        UInt8* __restrict c_pos = c.data();
70
244
        const A* __restrict a_end = a_pos + size;
71
72
506
        while (a_pos < a_end) {
73
262
            *c_pos = Op::apply(*a_pos, *b_pos);
74
262
            ++a_pos;
75
262
            ++b_pos;
76
262
            ++c_pos;
77
262
        }
78
244
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
2
                                        PaddedPODArray<UInt8>& c) {
66
2
        size_t size = a.size();
67
2
        const A* __restrict a_pos = a.data();
68
2
        const B* __restrict b_pos = b.data();
69
2
        UInt8* __restrict c_pos = c.data();
70
2
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
10
            *c_pos = Op::apply(*a_pos, *b_pos);
74
10
            ++a_pos;
75
10
            ++b_pos;
76
10
            ++c_pos;
77
10
        }
78
2
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
132
                                        PaddedPODArray<UInt8>& c) {
66
132
        size_t size = a.size();
67
132
        const A* __restrict a_pos = a.data();
68
132
        const B* __restrict b_pos = b.data();
69
132
        UInt8* __restrict c_pos = c.data();
70
132
        const A* __restrict a_end = a_pos + size;
71
72
405
        while (a_pos < a_end) {
73
273
            *c_pos = Op::apply(*a_pos, *b_pos);
74
273
            ++a_pos;
75
273
            ++b_pos;
76
273
            ++c_pos;
77
273
        }
78
132
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
66
                                        PaddedPODArray<UInt8>& c) {
66
66
        size_t size = a.size();
67
66
        const A* __restrict a_pos = a.data();
68
66
        const B* __restrict b_pos = b.data();
69
66
        UInt8* __restrict c_pos = c.data();
70
66
        const A* __restrict a_end = a_pos + size;
71
72
132
        while (a_pos < a_end) {
73
66
            *c_pos = Op::apply(*a_pos, *b_pos);
74
66
            ++a_pos;
75
66
            ++b_pos;
76
66
            ++c_pos;
77
66
        }
78
66
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
292
                                        PaddedPODArray<UInt8>& c) {
66
292
        size_t size = a.size();
67
292
        const A* __restrict a_pos = a.data();
68
292
        const B* __restrict b_pos = b.data();
69
292
        UInt8* __restrict c_pos = c.data();
70
292
        const A* __restrict a_end = a_pos + size;
71
72
1.89k
        while (a_pos < a_end) {
73
1.60k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.60k
            ++a_pos;
75
1.60k
            ++b_pos;
76
1.60k
            ++c_pos;
77
1.60k
        }
78
292
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
271
                                        PaddedPODArray<UInt8>& c) {
66
271
        size_t size = a.size();
67
271
        const A* __restrict a_pos = a.data();
68
271
        const B* __restrict b_pos = b.data();
69
271
        UInt8* __restrict c_pos = c.data();
70
271
        const A* __restrict a_end = a_pos + size;
71
72
1.83k
        while (a_pos < a_end) {
73
1.56k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.56k
            ++a_pos;
75
1.56k
            ++b_pos;
76
1.56k
            ++c_pos;
77
1.56k
        }
78
271
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
72
                                        PaddedPODArray<UInt8>& c) {
66
72
        size_t size = a.size();
67
72
        const A* __restrict a_pos = a.data();
68
72
        const B* __restrict b_pos = b.data();
69
72
        UInt8* __restrict c_pos = c.data();
70
72
        const A* __restrict a_end = a_pos + size;
71
72
144
        while (a_pos < a_end) {
73
72
            *c_pos = Op::apply(*a_pos, *b_pos);
74
72
            ++a_pos;
75
72
            ++b_pos;
76
72
            ++c_pos;
77
72
        }
78
72
    }
_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
87
                                        PaddedPODArray<UInt8>& c) {
66
87
        size_t size = a.size();
67
87
        const A* __restrict a_pos = a.data();
68
87
        const B* __restrict b_pos = b.data();
69
87
        UInt8* __restrict c_pos = c.data();
70
87
        const A* __restrict a_end = a_pos + size;
71
72
193
        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
87
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
96
                                        PaddedPODArray<UInt8>& c) {
66
96
        size_t size = a.size();
67
96
        const A* __restrict a_pos = a.data();
68
96
        const B* __restrict b_pos = b.data();
69
96
        UInt8* __restrict c_pos = c.data();
70
96
        const A* __restrict a_end = a_pos + size;
71
72
213
        while (a_pos < a_end) {
73
117
            *c_pos = Op::apply(*a_pos, *b_pos);
74
117
            ++a_pos;
75
117
            ++b_pos;
76
117
            ++c_pos;
77
117
        }
78
96
    }
_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
533
                                        PaddedPODArray<UInt8>& c) {
66
533
        size_t size = a.size();
67
533
        const A* __restrict a_pos = a.data();
68
533
        const B* __restrict b_pos = b.data();
69
533
        UInt8* __restrict c_pos = c.data();
70
533
        const A* __restrict a_end = a_pos + size;
71
72
364k
        while (a_pos < a_end) {
73
363k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
363k
            ++a_pos;
75
363k
            ++b_pos;
76
363k
            ++c_pos;
77
363k
        }
78
533
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
401
                                        PaddedPODArray<UInt8>& c) {
66
401
        size_t size = a.size();
67
401
        const A* __restrict a_pos = a.data();
68
401
        const B* __restrict b_pos = b.data();
69
401
        UInt8* __restrict c_pos = c.data();
70
401
        const A* __restrict a_end = a_pos + size;
71
72
7.71k
        while (a_pos < a_end) {
73
7.31k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
7.31k
            ++a_pos;
75
7.31k
            ++b_pos;
76
7.31k
            ++c_pos;
77
7.31k
        }
78
401
    }
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.11k
                                        PaddedPODArray<UInt8>& c) {
66
1.11k
        size_t size = a.size();
67
1.11k
        const A* __restrict a_pos = a.data();
68
1.11k
        const B* __restrict b_pos = b.data();
69
1.11k
        UInt8* __restrict c_pos = c.data();
70
1.11k
        const A* __restrict a_end = a_pos + size;
71
72
3.86M
        while (a_pos < a_end) {
73
3.86M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.86M
            ++a_pos;
75
3.86M
            ++b_pos;
76
3.86M
            ++c_pos;
77
3.86M
        }
78
1.11k
    }
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
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
10
        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
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
38
                                        PaddedPODArray<UInt8>& c) {
66
38
        size_t size = a.size();
67
38
        const A* __restrict a_pos = a.data();
68
38
        const B* __restrict b_pos = b.data();
69
38
        UInt8* __restrict c_pos = c.data();
70
38
        const A* __restrict a_end = a_pos + size;
71
72
322
        while (a_pos < a_end) {
73
284
            *c_pos = Op::apply(*a_pos, *b_pos);
74
284
            ++a_pos;
75
284
            ++b_pos;
76
284
            ++c_pos;
77
284
        }
78
38
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
129
                                        PaddedPODArray<UInt8>& c) {
66
129
        size_t size = a.size();
67
129
        const A* __restrict a_pos = a.data();
68
129
        const B* __restrict b_pos = b.data();
69
129
        UInt8* __restrict c_pos = c.data();
70
129
        const A* __restrict a_end = a_pos + size;
71
72
385
        while (a_pos < a_end) {
73
256
            *c_pos = Op::apply(*a_pos, *b_pos);
74
256
            ++a_pos;
75
256
            ++b_pos;
76
256
            ++c_pos;
77
256
        }
78
129
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
47
                                        PaddedPODArray<UInt8>& c) {
66
47
        size_t size = a.size();
67
47
        const A* __restrict a_pos = a.data();
68
47
        const B* __restrict b_pos = b.data();
69
47
        UInt8* __restrict c_pos = c.data();
70
47
        const A* __restrict a_end = a_pos + size;
71
72
267
        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
47
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
63
                                        PaddedPODArray<UInt8>& c) {
66
63
        size_t size = a.size();
67
63
        const A* __restrict a_pos = a.data();
68
63
        const B* __restrict b_pos = b.data();
69
63
        UInt8* __restrict c_pos = c.data();
70
63
        const A* __restrict a_end = a_pos + size;
71
72
569
        while (a_pos < a_end) {
73
506
            *c_pos = Op::apply(*a_pos, *b_pos);
74
506
            ++a_pos;
75
506
            ++b_pos;
76
506
            ++c_pos;
77
506
        }
78
63
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
2
                                        PaddedPODArray<UInt8>& c) {
66
2
        size_t size = a.size();
67
2
        const A* __restrict a_pos = a.data();
68
2
        const B* __restrict b_pos = b.data();
69
2
        UInt8* __restrict c_pos = c.data();
70
2
        const A* __restrict a_end = a_pos + size;
71
72
6
        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
2
    }
_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
27
                                        PaddedPODArray<UInt8>& c) {
66
27
        size_t size = a.size();
67
27
        const A* __restrict a_pos = a.data();
68
27
        const B* __restrict b_pos = b.data();
69
27
        UInt8* __restrict c_pos = c.data();
70
27
        const A* __restrict a_end = a_pos + size;
71
72
97
        while (a_pos < a_end) {
73
70
            *c_pos = Op::apply(*a_pos, *b_pos);
74
70
            ++a_pos;
75
70
            ++b_pos;
76
70
            ++c_pos;
77
70
        }
78
27
    }
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
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
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
6
                                        PaddedPODArray<UInt8>& c) {
66
6
        size_t size = a.size();
67
6
        const A* __restrict a_pos = a.data();
68
6
        const B* __restrict b_pos = b.data();
69
6
        UInt8* __restrict c_pos = c.data();
70
6
        const A* __restrict a_end = a_pos + size;
71
72
70
        while (a_pos < a_end) {
73
64
            *c_pos = Op::apply(*a_pos, *b_pos);
74
64
            ++a_pos;
75
64
            ++b_pos;
76
64
            ++c_pos;
77
64
        }
78
6
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_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
10
        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
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
5
                                        PaddedPODArray<UInt8>& c) {
66
5
        size_t size = a.size();
67
5
        const A* __restrict a_pos = a.data();
68
5
        const B* __restrict b_pos = b.data();
69
5
        UInt8* __restrict c_pos = c.data();
70
5
        const A* __restrict a_end = a_pos + size;
71
72
21
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
5
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
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
23
                                        PaddedPODArray<UInt8>& c) {
66
23
        size_t size = a.size();
67
23
        const A* __restrict a_pos = a.data();
68
23
        const B* __restrict b_pos = b.data();
69
23
        UInt8* __restrict c_pos = c.data();
70
23
        const A* __restrict a_end = a_pos + size;
71
72
67
        while (a_pos < a_end) {
73
44
            *c_pos = Op::apply(*a_pos, *b_pos);
74
44
            ++a_pos;
75
44
            ++b_pos;
76
44
            ++c_pos;
77
44
        }
78
23
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
88
                                        PaddedPODArray<UInt8>& c) {
66
88
        size_t size = a.size();
67
88
        const A* __restrict a_pos = a.data();
68
88
        const B* __restrict b_pos = b.data();
69
88
        UInt8* __restrict c_pos = c.data();
70
88
        const A* __restrict a_end = a_pos + size;
71
72
350
        while (a_pos < a_end) {
73
262
            *c_pos = Op::apply(*a_pos, *b_pos);
74
262
            ++a_pos;
75
262
            ++b_pos;
76
262
            ++c_pos;
77
262
        }
78
88
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.79k
                                        PaddedPODArray<UInt8>& c) {
66
1.79k
        size_t size = a.size();
67
1.79k
        const A* __restrict a_pos = a.data();
68
1.79k
        const B* __restrict b_pos = b.data();
69
1.79k
        UInt8* __restrict c_pos = c.data();
70
1.79k
        const A* __restrict a_end = a_pos + size;
71
72
1.80M
        while (a_pos < a_end) {
73
1.80M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.80M
            ++a_pos;
75
1.80M
            ++b_pos;
76
1.80M
            ++c_pos;
77
1.80M
        }
78
1.79k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_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
900
        while (a_pos < a_end) {
73
624
            *c_pos = Op::apply(*a_pos, *b_pos);
74
624
            ++a_pos;
75
624
            ++b_pos;
76
624
            ++c_pos;
77
624
        }
78
276
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_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
10
        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
1
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
139
                                        PaddedPODArray<UInt8>& c) {
66
139
        size_t size = a.size();
67
139
        const A* __restrict a_pos = a.data();
68
139
        const B* __restrict b_pos = b.data();
69
139
        UInt8* __restrict c_pos = c.data();
70
139
        const A* __restrict a_end = a_pos + size;
71
72
452
        while (a_pos < a_end) {
73
313
            *c_pos = Op::apply(*a_pos, *b_pos);
74
313
            ++a_pos;
75
313
            ++b_pos;
76
313
            ++c_pos;
77
313
        }
78
139
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
128
                                        PaddedPODArray<UInt8>& c) {
66
128
        size_t size = a.size();
67
128
        const A* __restrict a_pos = a.data();
68
128
        const B* __restrict b_pos = b.data();
69
128
        UInt8* __restrict c_pos = c.data();
70
128
        const A* __restrict a_end = a_pos + size;
71
72
431
        while (a_pos < a_end) {
73
303
            *c_pos = Op::apply(*a_pos, *b_pos);
74
303
            ++a_pos;
75
303
            ++b_pos;
76
303
            ++c_pos;
77
303
        }
78
128
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
168
                                        PaddedPODArray<UInt8>& c) {
66
168
        size_t size = a.size();
67
168
        const A* __restrict a_pos = a.data();
68
168
        const B* __restrict b_pos = b.data();
69
168
        UInt8* __restrict c_pos = c.data();
70
168
        const A* __restrict a_end = a_pos + size;
71
72
1.01k
        while (a_pos < a_end) {
73
849
            *c_pos = Op::apply(*a_pos, *b_pos);
74
849
            ++a_pos;
75
849
            ++b_pos;
76
849
            ++c_pos;
77
849
        }
78
168
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
216
                                        PaddedPODArray<UInt8>& c) {
66
216
        size_t size = a.size();
67
216
        const A* __restrict a_pos = a.data();
68
216
        const B* __restrict b_pos = b.data();
69
216
        UInt8* __restrict c_pos = c.data();
70
216
        const A* __restrict a_end = a_pos + size;
71
72
5.42k
        while (a_pos < a_end) {
73
5.20k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.20k
            ++a_pos;
75
5.20k
            ++b_pos;
76
5.20k
            ++c_pos;
77
5.20k
        }
78
216
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
158
                                        PaddedPODArray<UInt8>& c) {
66
158
        size_t size = a.size();
67
158
        const A* __restrict a_pos = a.data();
68
158
        const B* __restrict b_pos = b.data();
69
158
        UInt8* __restrict c_pos = c.data();
70
158
        const A* __restrict a_end = a_pos + size;
71
72
490
        while (a_pos < a_end) {
73
332
            *c_pos = Op::apply(*a_pos, *b_pos);
74
332
            ++a_pos;
75
332
            ++b_pos;
76
332
            ++c_pos;
77
332
        }
78
158
    }
_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
145
                                        PaddedPODArray<UInt8>& c) {
66
145
        size_t size = a.size();
67
145
        const A* __restrict a_pos = a.data();
68
145
        const B* __restrict b_pos = b.data();
69
145
        UInt8* __restrict c_pos = c.data();
70
145
        const A* __restrict a_end = a_pos + size;
71
72
483
        while (a_pos < a_end) {
73
338
            *c_pos = Op::apply(*a_pos, *b_pos);
74
338
            ++a_pos;
75
338
            ++b_pos;
76
338
            ++c_pos;
77
338
        }
78
145
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
157
                                        PaddedPODArray<UInt8>& c) {
66
157
        size_t size = a.size();
67
157
        const A* __restrict a_pos = a.data();
68
157
        const B* __restrict b_pos = b.data();
69
157
        UInt8* __restrict c_pos = c.data();
70
157
        const A* __restrict a_end = a_pos + size;
71
72
514
        while (a_pos < a_end) {
73
357
            *c_pos = Op::apply(*a_pos, *b_pos);
74
357
            ++a_pos;
75
357
            ++b_pos;
76
357
            ++c_pos;
77
357
        }
78
157
    }
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
406
                                        PaddedPODArray<UInt8>& c) {
66
406
        size_t size = a.size();
67
406
        const A* __restrict a_pos = a.data();
68
406
        const B* __restrict b_pos = b.data();
69
406
        UInt8* __restrict c_pos = c.data();
70
406
        const A* __restrict a_end = a_pos + size;
71
72
6.73k
        while (a_pos < a_end) {
73
6.32k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.32k
            ++a_pos;
75
6.32k
            ++b_pos;
76
6.32k
            ++c_pos;
77
6.32k
        }
78
406
    }
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
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
10
        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
1
    }
_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
23
                                        PaddedPODArray<UInt8>& c) {
66
23
        size_t size = a.size();
67
23
        const A* __restrict a_pos = a.data();
68
23
        const B* __restrict b_pos = b.data();
69
23
        UInt8* __restrict c_pos = c.data();
70
23
        const A* __restrict a_end = a_pos + size;
71
72
105
        while (a_pos < a_end) {
73
82
            *c_pos = Op::apply(*a_pos, *b_pos);
74
82
            ++a_pos;
75
82
            ++b_pos;
76
82
            ++c_pos;
77
82
        }
78
23
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
30
                                        PaddedPODArray<UInt8>& c) {
66
30
        size_t size = a.size();
67
30
        const A* __restrict a_pos = a.data();
68
30
        const B* __restrict b_pos = b.data();
69
30
        UInt8* __restrict c_pos = c.data();
70
30
        const A* __restrict a_end = a_pos + size;
71
72
64
        while (a_pos < a_end) {
73
34
            *c_pos = Op::apply(*a_pos, *b_pos);
74
34
            ++a_pos;
75
34
            ++b_pos;
76
34
            ++c_pos;
77
34
        }
78
30
    }
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
236k
                                          PaddedPODArray<UInt8>& c) {
82
236k
        size_t size = a.size();
83
236k
        const A* __restrict a_pos = a.data();
84
236k
        UInt8* __restrict c_pos = c.data();
85
236k
        const A* __restrict a_end = a_pos + size;
86
87
202M
        while (a_pos < a_end) {
88
202M
            *c_pos = Op::apply(*a_pos, b);
89
202M
            ++a_pos;
90
202M
            ++c_pos;
91
202M
        }
92
236k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
1.54k
                                          PaddedPODArray<UInt8>& c) {
82
1.54k
        size_t size = a.size();
83
1.54k
        const A* __restrict a_pos = a.data();
84
1.54k
        UInt8* __restrict c_pos = c.data();
85
1.54k
        const A* __restrict a_end = a_pos + size;
86
87
5.03k
        while (a_pos < a_end) {
88
3.49k
            *c_pos = Op::apply(*a_pos, b);
89
3.49k
            ++a_pos;
90
3.49k
            ++c_pos;
91
3.49k
        }
92
1.54k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
920
                                          PaddedPODArray<UInt8>& c) {
82
920
        size_t size = a.size();
83
920
        const A* __restrict a_pos = a.data();
84
920
        UInt8* __restrict c_pos = c.data();
85
920
        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
920
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
411
                                          PaddedPODArray<UInt8>& c) {
82
411
        size_t size = a.size();
83
411
        const A* __restrict a_pos = a.data();
84
411
        UInt8* __restrict c_pos = c.data();
85
411
        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
411
    }
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
6.87k
                                          PaddedPODArray<UInt8>& c) {
82
6.87k
        size_t size = a.size();
83
6.87k
        const A* __restrict a_pos = a.data();
84
6.87k
        UInt8* __restrict c_pos = c.data();
85
6.87k
        const A* __restrict a_end = a_pos + size;
86
87
8.83M
        while (a_pos < a_end) {
88
8.83M
            *c_pos = Op::apply(*a_pos, b);
89
8.83M
            ++a_pos;
90
8.83M
            ++c_pos;
91
8.83M
        }
92
6.87k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.36k
                                          PaddedPODArray<UInt8>& c) {
82
1.36k
        size_t size = a.size();
83
1.36k
        const A* __restrict a_pos = a.data();
84
1.36k
        UInt8* __restrict c_pos = c.data();
85
1.36k
        const A* __restrict a_end = a_pos + size;
86
87
127k
        while (a_pos < a_end) {
88
126k
            *c_pos = Op::apply(*a_pos, b);
89
126k
            ++a_pos;
90
126k
            ++c_pos;
91
126k
        }
92
1.36k
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
30.8k
                                          PaddedPODArray<UInt8>& c) {
82
30.8k
        size_t size = a.size();
83
30.8k
        const A* __restrict a_pos = a.data();
84
30.8k
        UInt8* __restrict c_pos = c.data();
85
30.8k
        const A* __restrict a_end = a_pos + size;
86
87
2.04M
        while (a_pos < a_end) {
88
2.01M
            *c_pos = Op::apply(*a_pos, b);
89
2.01M
            ++a_pos;
90
2.01M
            ++c_pos;
91
2.01M
        }
92
30.8k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
23.0k
                                          PaddedPODArray<UInt8>& c) {
82
23.0k
        size_t size = a.size();
83
23.0k
        const A* __restrict a_pos = a.data();
84
23.0k
        UInt8* __restrict c_pos = c.data();
85
23.0k
        const A* __restrict a_end = a_pos + size;
86
87
3.11M
        while (a_pos < a_end) {
88
3.08M
            *c_pos = Op::apply(*a_pos, b);
89
3.08M
            ++a_pos;
90
3.08M
            ++c_pos;
91
3.08M
        }
92
23.0k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
73
                                          PaddedPODArray<UInt8>& c) {
82
73
        size_t size = a.size();
83
73
        const A* __restrict a_pos = a.data();
84
73
        UInt8* __restrict c_pos = c.data();
85
73
        const A* __restrict a_end = a_pos + size;
86
87
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
73
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
13
                                          PaddedPODArray<UInt8>& c) {
82
13
        size_t size = a.size();
83
13
        const A* __restrict a_pos = a.data();
84
13
        UInt8* __restrict c_pos = c.data();
85
13
        const A* __restrict a_end = a_pos + size;
86
87
127
        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
13
    }
_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
285
                                          PaddedPODArray<UInt8>& c) {
82
285
        size_t size = a.size();
83
285
        const A* __restrict a_pos = a.data();
84
285
        UInt8* __restrict c_pos = c.data();
85
285
        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
285
    }
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
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
80
        while (a_pos < a_end) {
88
65
            *c_pos = Op::apply(*a_pos, b);
89
65
            ++a_pos;
90
65
            ++c_pos;
91
65
        }
92
15
    }
_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
44
                                          PaddedPODArray<UInt8>& c) {
82
44
        size_t size = a.size();
83
44
        const A* __restrict a_pos = a.data();
84
44
        UInt8* __restrict c_pos = c.data();
85
44
        const A* __restrict a_end = a_pos + size;
86
87
1.24k
        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
44
    }
_ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_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
802
        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
26
    }
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
2.85k
                                          PaddedPODArray<UInt8>& c) {
82
2.85k
        size_t size = a.size();
83
2.85k
        const A* __restrict a_pos = a.data();
84
2.85k
        UInt8* __restrict c_pos = c.data();
85
2.85k
        const A* __restrict a_end = a_pos + size;
86
87
658k
        while (a_pos < a_end) {
88
655k
            *c_pos = Op::apply(*a_pos, b);
89
655k
            ++a_pos;
90
655k
            ++c_pos;
91
655k
        }
92
2.85k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
2.71k
                                          PaddedPODArray<UInt8>& c) {
82
2.71k
        size_t size = a.size();
83
2.71k
        const A* __restrict a_pos = a.data();
84
2.71k
        UInt8* __restrict c_pos = c.data();
85
2.71k
        const A* __restrict a_end = a_pos + size;
86
87
272k
        while (a_pos < a_end) {
88
270k
            *c_pos = Op::apply(*a_pos, b);
89
270k
            ++a_pos;
90
270k
            ++c_pos;
91
270k
        }
92
2.71k
    }
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
131
                                          PaddedPODArray<UInt8>& c) {
82
131
        size_t size = a.size();
83
131
        const A* __restrict a_pos = a.data();
84
131
        UInt8* __restrict c_pos = c.data();
85
131
        const A* __restrict a_end = a_pos + size;
86
87
721
        while (a_pos < a_end) {
88
590
            *c_pos = Op::apply(*a_pos, b);
89
590
            ++a_pos;
90
590
            ++c_pos;
91
590
        }
92
131
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
523
                                          PaddedPODArray<UInt8>& c) {
82
523
        size_t size = a.size();
83
523
        const A* __restrict a_pos = a.data();
84
523
        UInt8* __restrict c_pos = c.data();
85
523
        const A* __restrict a_end = a_pos + size;
86
87
1.34M
        while (a_pos < a_end) {
88
1.34M
            *c_pos = Op::apply(*a_pos, b);
89
1.34M
            ++a_pos;
90
1.34M
            ++c_pos;
91
1.34M
        }
92
523
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
94
                                          PaddedPODArray<UInt8>& c) {
82
94
        size_t size = a.size();
83
94
        const A* __restrict a_pos = a.data();
84
94
        UInt8* __restrict c_pos = c.data();
85
94
        const A* __restrict a_end = a_pos + size;
86
87
210
        while (a_pos < a_end) {
88
116
            *c_pos = Op::apply(*a_pos, b);
89
116
            ++a_pos;
90
116
            ++c_pos;
91
116
        }
92
94
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
385
                                          PaddedPODArray<UInt8>& c) {
82
385
        size_t size = a.size();
83
385
        const A* __restrict a_pos = a.data();
84
385
        UInt8* __restrict c_pos = c.data();
85
385
        const A* __restrict a_end = a_pos + size;
86
87
45.5k
        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
385
    }
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
1.34k
                                          PaddedPODArray<UInt8>& c) {
82
1.34k
        size_t size = a.size();
83
1.34k
        const A* __restrict a_pos = a.data();
84
1.34k
        UInt8* __restrict c_pos = c.data();
85
1.34k
        const A* __restrict a_end = a_pos + size;
86
87
7.10k
        while (a_pos < a_end) {
88
5.76k
            *c_pos = Op::apply(*a_pos, b);
89
5.76k
            ++a_pos;
90
5.76k
            ++c_pos;
91
5.76k
        }
92
1.34k
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
2.06k
                                          PaddedPODArray<UInt8>& c) {
82
2.06k
        size_t size = a.size();
83
2.06k
        const A* __restrict a_pos = a.data();
84
2.06k
        UInt8* __restrict c_pos = c.data();
85
2.06k
        const A* __restrict a_end = a_pos + size;
86
87
7.80k
        while (a_pos < a_end) {
88
5.74k
            *c_pos = Op::apply(*a_pos, b);
89
5.74k
            ++a_pos;
90
5.74k
            ++c_pos;
91
5.74k
        }
92
2.06k
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.63k
                                          PaddedPODArray<UInt8>& c) {
82
1.63k
        size_t size = a.size();
83
1.63k
        const A* __restrict a_pos = a.data();
84
1.63k
        UInt8* __restrict c_pos = c.data();
85
1.63k
        const A* __restrict a_end = a_pos + size;
86
87
10.6k
        while (a_pos < a_end) {
88
9.00k
            *c_pos = Op::apply(*a_pos, b);
89
9.00k
            ++a_pos;
90
9.00k
            ++c_pos;
91
9.00k
        }
92
1.63k
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
520
                                          PaddedPODArray<UInt8>& c) {
82
520
        size_t size = a.size();
83
520
        const A* __restrict a_pos = a.data();
84
520
        UInt8* __restrict c_pos = c.data();
85
520
        const A* __restrict a_end = a_pos + size;
86
87
13.8k
        while (a_pos < a_end) {
88
13.3k
            *c_pos = Op::apply(*a_pos, b);
89
13.3k
            ++a_pos;
90
13.3k
            ++c_pos;
91
13.3k
        }
92
520
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
21.2k
                                          PaddedPODArray<UInt8>& c) {
82
21.2k
        size_t size = a.size();
83
21.2k
        const A* __restrict a_pos = a.data();
84
21.2k
        UInt8* __restrict c_pos = c.data();
85
21.2k
        const A* __restrict a_end = a_pos + size;
86
87
2.38M
        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
21.2k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
68.2k
                                          PaddedPODArray<UInt8>& c) {
82
68.2k
        size_t size = a.size();
83
68.2k
        const A* __restrict a_pos = a.data();
84
68.2k
        UInt8* __restrict c_pos = c.data();
85
68.2k
        const A* __restrict a_end = a_pos + size;
86
87
9.74M
        while (a_pos < a_end) {
88
9.67M
            *c_pos = Op::apply(*a_pos, b);
89
9.67M
            ++a_pos;
90
9.67M
            ++c_pos;
91
9.67M
        }
92
68.2k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
13.5k
                                          PaddedPODArray<UInt8>& c) {
82
13.5k
        size_t size = a.size();
83
13.5k
        const A* __restrict a_pos = a.data();
84
13.5k
        UInt8* __restrict c_pos = c.data();
85
13.5k
        const A* __restrict a_end = a_pos + size;
86
87
174k
        while (a_pos < a_end) {
88
160k
            *c_pos = Op::apply(*a_pos, b);
89
160k
            ++a_pos;
90
160k
            ++c_pos;
91
160k
        }
92
13.5k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.89k
                                          PaddedPODArray<UInt8>& c) {
82
1.89k
        size_t size = a.size();
83
1.89k
        const A* __restrict a_pos = a.data();
84
1.89k
        UInt8* __restrict c_pos = c.data();
85
1.89k
        const A* __restrict a_end = a_pos + size;
86
87
5.97k
        while (a_pos < a_end) {
88
4.07k
            *c_pos = Op::apply(*a_pos, b);
89
4.07k
            ++a_pos;
90
4.07k
            ++c_pos;
91
4.07k
        }
92
1.89k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
257
                                          PaddedPODArray<UInt8>& c) {
82
257
        size_t size = a.size();
83
257
        const A* __restrict a_pos = a.data();
84
257
        UInt8* __restrict c_pos = c.data();
85
257
        const A* __restrict a_end = a_pos + size;
86
87
1.88k
        while (a_pos < a_end) {
88
1.62k
            *c_pos = Op::apply(*a_pos, b);
89
1.62k
            ++a_pos;
90
1.62k
            ++c_pos;
91
1.62k
        }
92
257
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_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
86.2k
        while (a_pos < a_end) {
88
86.1k
            *c_pos = Op::apply(*a_pos, b);
89
86.1k
            ++a_pos;
90
86.1k
            ++c_pos;
91
86.1k
        }
92
92
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
3
                                          PaddedPODArray<UInt8>& c) {
82
3
        size_t size = a.size();
83
3
        const A* __restrict a_pos = a.data();
84
3
        UInt8* __restrict c_pos = c.data();
85
3
        const A* __restrict a_end = a_pos + size;
86
87
31
        while (a_pos < a_end) {
88
28
            *c_pos = Op::apply(*a_pos, b);
89
28
            ++a_pos;
90
28
            ++c_pos;
91
28
        }
92
3
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
2
                                          PaddedPODArray<UInt8>& c) {
82
2
        size_t size = a.size();
83
2
        const A* __restrict a_pos = a.data();
84
2
        UInt8* __restrict c_pos = c.data();
85
2
        const A* __restrict a_end = a_pos + size;
86
87
22
        while (a_pos < a_end) {
88
20
            *c_pos = Op::apply(*a_pos, b);
89
20
            ++a_pos;
90
20
            ++c_pos;
91
20
        }
92
2
    }
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
216
                                          PaddedPODArray<UInt8>& c) {
82
216
        size_t size = a.size();
83
216
        const A* __restrict a_pos = a.data();
84
216
        UInt8* __restrict c_pos = c.data();
85
216
        const A* __restrict a_end = a_pos + size;
86
87
3.77k
        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
216
    }
_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.45k
                                          PaddedPODArray<UInt8>& c) {
82
2.45k
        size_t size = a.size();
83
2.45k
        const A* __restrict a_pos = a.data();
84
2.45k
        UInt8* __restrict c_pos = c.data();
85
2.45k
        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.45k
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
237
                                          PaddedPODArray<UInt8>& c) {
82
237
        size_t size = a.size();
83
237
        const A* __restrict a_pos = a.data();
84
237
        UInt8* __restrict c_pos = c.data();
85
237
        const A* __restrict a_end = a_pos + size;
86
87
316k
        while (a_pos < a_end) {
88
316k
            *c_pos = Op::apply(*a_pos, b);
89
316k
            ++a_pos;
90
316k
            ++c_pos;
91
316k
        }
92
237
    }
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
198
                                          PaddedPODArray<UInt8>& c) {
82
198
        size_t size = a.size();
83
198
        const A* __restrict a_pos = a.data();
84
198
        UInt8* __restrict c_pos = c.data();
85
198
        const A* __restrict a_end = a_pos + size;
86
87
142k
        while (a_pos < a_end) {
88
142k
            *c_pos = Op::apply(*a_pos, b);
89
142k
            ++a_pos;
90
142k
            ++c_pos;
91
142k
        }
92
198
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
426
                                          PaddedPODArray<UInt8>& c) {
82
426
        size_t size = a.size();
83
426
        const A* __restrict a_pos = a.data();
84
426
        UInt8* __restrict c_pos = c.data();
85
426
        const A* __restrict a_end = a_pos + size;
86
87
180k
        while (a_pos < a_end) {
88
180k
            *c_pos = Op::apply(*a_pos, b);
89
180k
            ++a_pos;
90
180k
            ++c_pos;
91
180k
        }
92
426
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
1.66k
                                          PaddedPODArray<UInt8>& c) {
82
1.66k
        size_t size = a.size();
83
1.66k
        const A* __restrict a_pos = a.data();
84
1.66k
        UInt8* __restrict c_pos = c.data();
85
1.66k
        const A* __restrict a_end = a_pos + size;
86
87
4.71M
        while (a_pos < a_end) {
88
4.70M
            *c_pos = Op::apply(*a_pos, b);
89
4.70M
            ++a_pos;
90
4.70M
            ++c_pos;
91
4.70M
        }
92
1.66k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
10.4k
                                          PaddedPODArray<UInt8>& c) {
82
10.4k
        size_t size = a.size();
83
10.4k
        const A* __restrict a_pos = a.data();
84
10.4k
        UInt8* __restrict c_pos = c.data();
85
10.4k
        const A* __restrict a_end = a_pos + size;
86
87
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
10.4k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
770
                                          PaddedPODArray<UInt8>& c) {
82
770
        size_t size = a.size();
83
770
        const A* __restrict a_pos = a.data();
84
770
        UInt8* __restrict c_pos = c.data();
85
770
        const A* __restrict a_end = a_pos + size;
86
87
30.9k
        while (a_pos < a_end) {
88
30.1k
            *c_pos = Op::apply(*a_pos, b);
89
30.1k
            ++a_pos;
90
30.1k
            ++c_pos;
91
30.1k
        }
92
770
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
625
                                          PaddedPODArray<UInt8>& c) {
82
625
        size_t size = a.size();
83
625
        const A* __restrict a_pos = a.data();
84
625
        UInt8* __restrict c_pos = c.data();
85
625
        const A* __restrict a_end = a_pos + size;
86
87
29.1k
        while (a_pos < a_end) {
88
28.5k
            *c_pos = Op::apply(*a_pos, b);
89
28.5k
            ++a_pos;
90
28.5k
            ++c_pos;
91
28.5k
        }
92
625
    }
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
64
                                          PaddedPODArray<UInt8>& c) {
82
64
        size_t size = a.size();
83
64
        const A* __restrict a_pos = a.data();
84
64
        UInt8* __restrict c_pos = c.data();
85
64
        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
64
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
297
                                          PaddedPODArray<UInt8>& c) {
82
297
        size_t size = a.size();
83
297
        const A* __restrict a_pos = a.data();
84
297
        UInt8* __restrict c_pos = c.data();
85
297
        const A* __restrict a_end = a_pos + size;
86
87
143k
        while (a_pos < a_end) {
88
143k
            *c_pos = Op::apply(*a_pos, b);
89
143k
            ++a_pos;
90
143k
            ++c_pos;
91
143k
        }
92
297
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
97
                                          PaddedPODArray<UInt8>& c) {
82
97
        size_t size = a.size();
83
97
        const A* __restrict a_pos = a.data();
84
97
        UInt8* __restrict c_pos = c.data();
85
97
        const A* __restrict a_end = a_pos + size;
86
87
180k
        while (a_pos < a_end) {
88
180k
            *c_pos = Op::apply(*a_pos, b);
89
180k
            ++a_pos;
90
180k
            ++c_pos;
91
180k
        }
92
97
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
323
                                          PaddedPODArray<UInt8>& c) {
82
323
        size_t size = a.size();
83
323
        const A* __restrict a_pos = a.data();
84
323
        UInt8* __restrict c_pos = c.data();
85
323
        const A* __restrict a_end = a_pos + size;
86
87
72.2k
        while (a_pos < a_end) {
88
71.8k
            *c_pos = Op::apply(*a_pos, b);
89
71.8k
            ++a_pos;
90
71.8k
            ++c_pos;
91
71.8k
        }
92
323
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
12.9k
                                          PaddedPODArray<UInt8>& c) {
82
12.9k
        size_t size = a.size();
83
12.9k
        const A* __restrict a_pos = a.data();
84
12.9k
        UInt8* __restrict c_pos = c.data();
85
12.9k
        const A* __restrict a_end = a_pos + size;
86
87
42.9M
        while (a_pos < a_end) {
88
42.9M
            *c_pos = Op::apply(*a_pos, b);
89
42.9M
            ++a_pos;
90
42.9M
            ++c_pos;
91
42.9M
        }
92
12.9k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
20.3k
                                          PaddedPODArray<UInt8>& c) {
82
20.3k
        size_t size = a.size();
83
20.3k
        const A* __restrict a_pos = a.data();
84
20.3k
        UInt8* __restrict c_pos = c.data();
85
20.3k
        const A* __restrict a_end = a_pos + size;
86
87
47.2M
        while (a_pos < a_end) {
88
47.2M
            *c_pos = Op::apply(*a_pos, b);
89
47.2M
            ++a_pos;
90
47.2M
            ++c_pos;
91
47.2M
        }
92
20.3k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_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
41.6k
        while (a_pos < a_end) {
88
40.7k
            *c_pos = Op::apply(*a_pos, b);
89
40.7k
            ++a_pos;
90
40.7k
            ++c_pos;
91
40.7k
        }
92
932
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
909
                                          PaddedPODArray<UInt8>& c) {
82
909
        size_t size = a.size();
83
909
        const A* __restrict a_pos = a.data();
84
909
        UInt8* __restrict c_pos = c.data();
85
909
        const A* __restrict a_end = a_pos + size;
86
87
41.6k
        while (a_pos < a_end) {
88
40.7k
            *c_pos = Op::apply(*a_pos, b);
89
40.7k
            ++a_pos;
90
40.7k
            ++c_pos;
91
40.7k
        }
92
909
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
50
                                          PaddedPODArray<UInt8>& c) {
82
50
        size_t size = a.size();
83
50
        const A* __restrict a_pos = a.data();
84
50
        UInt8* __restrict c_pos = c.data();
85
50
        const A* __restrict a_end = a_pos + size;
86
87
113k
        while (a_pos < a_end) {
88
113k
            *c_pos = Op::apply(*a_pos, b);
89
113k
            ++a_pos;
90
113k
            ++c_pos;
91
113k
        }
92
50
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
59
                                          PaddedPODArray<UInt8>& c) {
82
59
        size_t size = a.size();
83
59
        const A* __restrict a_pos = a.data();
84
59
        UInt8* __restrict c_pos = c.data();
85
59
        const A* __restrict a_end = a_pos + size;
86
87
27.5k
        while (a_pos < a_end) {
88
27.4k
            *c_pos = Op::apply(*a_pos, b);
89
27.4k
            ++a_pos;
90
27.4k
            ++c_pos;
91
27.4k
        }
92
59
    }
_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
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
418
        while (a_pos < a_end) {
88
210
            *c_pos = Op::apply(*a_pos, b);
89
210
            ++a_pos;
90
210
            ++c_pos;
91
210
        }
92
208
    }
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
204
                                          PaddedPODArray<UInt8>& c) {
82
204
        size_t size = a.size();
83
204
        const A* __restrict a_pos = a.data();
84
204
        UInt8* __restrict c_pos = c.data();
85
204
        const A* __restrict a_end = a_pos + size;
86
87
408
        while (a_pos < a_end) {
88
204
            *c_pos = Op::apply(*a_pos, b);
89
204
            ++a_pos;
90
204
            ++c_pos;
91
204
        }
92
204
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
146
                                          PaddedPODArray<UInt8>& c) {
82
146
        size_t size = a.size();
83
146
        const A* __restrict a_pos = a.data();
84
146
        UInt8* __restrict c_pos = c.data();
85
146
        const A* __restrict a_end = a_pos + size;
86
87
276k
        while (a_pos < a_end) {
88
276k
            *c_pos = Op::apply(*a_pos, b);
89
276k
            ++a_pos;
90
276k
            ++c_pos;
91
276k
        }
92
146
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
139
                                          PaddedPODArray<UInt8>& c) {
82
139
        size_t size = a.size();
83
139
        const A* __restrict a_pos = a.data();
84
139
        UInt8* __restrict c_pos = c.data();
85
139
        const A* __restrict a_end = a_pos + size;
86
87
276k
        while (a_pos < a_end) {
88
275k
            *c_pos = Op::apply(*a_pos, b);
89
275k
            ++a_pos;
90
275k
            ++c_pos;
91
275k
        }
92
139
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
93
94
66.1k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
66.1k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
66.1k
    }
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
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
336
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
336
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
336
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
48
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
48
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
48
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
142
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
142
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
142
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
444
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
444
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
444
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
16
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
16
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
16
    }
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
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
782
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
782
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
782
    }
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
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
264
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
264
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
264
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
252
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
252
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
252
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
62.1k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
62.1k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
62.1k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
502
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
502
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
502
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
42
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
42
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
42
    }
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_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
94
6
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
6
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
6
    }
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
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15constant_vectorEaRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
288
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
288
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
288
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
121
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
121
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
121
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
73
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
73
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
73
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
56
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
56
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
56
    }
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_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15constant_vectorES3_RKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS8_IhLm4096ESB_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: _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
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
575
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
575
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
575
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
48
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
48
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
48
    }
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
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15constant_vectorEdRKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
1
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
1
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
1
    }
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
166
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
166
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
350k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
350k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
350k
        }
113
166
    }
_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
45
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
45
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
197k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
197k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
197k
        }
113
45
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
84
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
84
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
152k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
152k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
152k
        }
113
84
    }
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
483
                                                      PaddedPODArray<UInt8>& c) {
127
483
        size_t size = a_offsets.size();
128
483
        ColumnString::Offset prev_a_offset = 0;
129
483
        ColumnString::Offset prev_b_offset = 0;
130
483
        const auto* a_pos = a_data.data();
131
483
        const auto* b_pos = b_data.data();
132
133
1.69k
        for (size_t i = 0; i < size; ++i) {
134
1.20k
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
1.20k
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
1.20k
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
1.20k
                             0);
138
139
1.20k
            prev_a_offset = a_offsets[i];
140
1.20k
            prev_b_offset = b_offsets[i];
141
1.20k
        }
142
483
    }
_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
36
                                                      PaddedPODArray<UInt8>& c) {
127
36
        size_t size = a_offsets.size();
128
36
        ColumnString::Offset prev_a_offset = 0;
129
36
        ColumnString::Offset prev_b_offset = 0;
130
36
        const auto* a_pos = a_data.data();
131
36
        const auto* b_pos = b_data.data();
132
133
230
        for (size_t i = 0; i < size; ++i) {
134
194
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
194
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
194
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
194
                             0);
138
139
194
            prev_a_offset = a_offsets[i];
140
194
            prev_b_offset = b_offsets[i];
141
194
        }
142
36
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
445
                                                      PaddedPODArray<UInt8>& c) {
127
445
        size_t size = a_offsets.size();
128
445
        ColumnString::Offset prev_a_offset = 0;
129
445
        ColumnString::Offset prev_b_offset = 0;
130
445
        const auto* a_pos = a_data.data();
131
445
        const auto* b_pos = b_data.data();
132
133
1.41k
        for (size_t i = 0; i < size; ++i) {
134
967
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
967
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
967
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
967
                             0);
138
139
967
            prev_a_offset = a_offsets[i];
140
967
            prev_b_offset = b_offsets[i];
141
967
        }
142
445
    }
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
3.27k
                                                 PaddedPODArray<UInt8>& c) {
149
3.27k
        size_t size = a_offsets.size();
150
3.27k
        ColumnString::Offset prev_a_offset = 0;
151
3.27k
        const auto* a_pos = a_data.data();
152
3.27k
        const auto* b_pos = b_data.data();
153
154
1.60M
        for (size_t i = 0; i < size; ++i) {
155
1.59M
            c[i] = Op::apply(
156
1.59M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
1.59M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
1.59M
                    0);
159
160
1.59M
            prev_a_offset = a_offsets[i];
161
1.59M
        }
162
3.27k
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
207
                                                 PaddedPODArray<UInt8>& c) {
149
207
        size_t size = a_offsets.size();
150
207
        ColumnString::Offset prev_a_offset = 0;
151
207
        const auto* a_pos = a_data.data();
152
207
        const auto* b_pos = b_data.data();
153
154
323k
        for (size_t i = 0; i < size; ++i) {
155
323k
            c[i] = Op::apply(
156
323k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
323k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
323k
                    0);
159
160
323k
            prev_a_offset = a_offsets[i];
161
323k
        }
162
207
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
265
                                                 PaddedPODArray<UInt8>& c) {
149
265
        size_t size = a_offsets.size();
150
265
        ColumnString::Offset prev_a_offset = 0;
151
265
        const auto* a_pos = a_data.data();
152
265
        const auto* b_pos = b_data.data();
153
154
73.0k
        for (size_t i = 0; i < size; ++i) {
155
72.7k
            c[i] = Op::apply(
156
72.7k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
72.7k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
72.7k
                    0);
159
160
72.7k
            prev_a_offset = a_offsets[i];
161
72.7k
        }
162
265
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
721
                                                 PaddedPODArray<UInt8>& c) {
149
721
        size_t size = a_offsets.size();
150
721
        ColumnString::Offset prev_a_offset = 0;
151
721
        const auto* a_pos = a_data.data();
152
721
        const auto* b_pos = b_data.data();
153
154
581k
        for (size_t i = 0; i < size; ++i) {
155
580k
            c[i] = Op::apply(
156
580k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
580k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
580k
                    0);
159
160
580k
            prev_a_offset = a_offsets[i];
161
580k
        }
162
721
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
2.08k
                                                 PaddedPODArray<UInt8>& c) {
149
2.08k
        size_t size = a_offsets.size();
150
2.08k
        ColumnString::Offset prev_a_offset = 0;
151
2.08k
        const auto* a_pos = a_data.data();
152
2.08k
        const auto* b_pos = b_data.data();
153
154
624k
        for (size_t i = 0; i < size; ++i) {
155
622k
            c[i] = Op::apply(
156
622k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
622k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
622k
                    0);
159
160
622k
            prev_a_offset = a_offsets[i];
161
622k
        }
162
2.08k
    }
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
6
                                       PaddedPODArray<UInt8>& c) {
169
6
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
170
6
                                                                               a_data, a_size, c);
171
6
    }
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_
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjSB_RKNS5_IjLm4096ES8_Lm16ELm15EEERS9_
Line
Count
Source
168
6
                                       PaddedPODArray<UInt8>& c) {
169
6
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
170
6
                                                                               a_data, a_size, c);
171
6
    }
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
445
                                                      PaddedPODArray<UInt8>& c) {
181
445
        size_t size = a_offsets.size();
182
445
        ColumnString::Offset prev_a_offset = 0;
183
445
        ColumnString::Offset prev_b_offset = 0;
184
445
        const auto* a_pos = a_data.data();
185
445
        const auto* b_pos = b_data.data();
186
187
1.35k
        for (size_t i = 0; i < size; ++i) {
188
908
            auto a_size = a_offsets[i] - prev_a_offset;
189
908
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
908
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
908
                                                               b_pos + prev_b_offset, b_size);
193
194
908
            prev_a_offset = a_offsets[i];
195
908
            prev_b_offset = b_offsets[i];
196
908
        }
197
445
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
444
                                                      PaddedPODArray<UInt8>& c) {
181
444
        size_t size = a_offsets.size();
182
444
        ColumnString::Offset prev_a_offset = 0;
183
444
        ColumnString::Offset prev_b_offset = 0;
184
444
        const auto* a_pos = a_data.data();
185
444
        const auto* b_pos = b_data.data();
186
187
1.34k
        for (size_t i = 0; i < size; ++i) {
188
904
            auto a_size = a_offsets[i] - prev_a_offset;
189
904
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
904
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
904
                                                               b_pos + prev_b_offset, b_size);
193
194
904
            prev_a_offset = a_offsets[i];
195
904
            prev_b_offset = b_offsets[i];
196
904
        }
197
444
    }
_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
23.4k
                                                 PaddedPODArray<UInt8>& c) {
204
23.4k
        size_t size = a_offsets.size();
205
23.4k
        if (b_size == 0) {
206
1
            auto* __restrict data = c.data();
207
1
            auto* __restrict offsets = a_offsets.data();
208
209
1
            ColumnString::Offset prev_a_offset = 0;
210
4
            for (size_t i = 0; i < size; ++i) {
211
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
3
                prev_a_offset = offsets[i];
213
3
            }
214
23.4k
        } else {
215
23.4k
            ColumnString::Offset prev_a_offset = 0;
216
23.4k
            const auto* a_pos = a_data.data();
217
23.4k
            const auto* b_pos = b_data.data();
218
9.21M
            for (size_t i = 0; i < size; ++i) {
219
9.18M
                auto a_size = a_offsets[i] - prev_a_offset;
220
9.18M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
9.18M
                                                                   b_pos, b_size);
222
9.18M
                prev_a_offset = a_offsets[i];
223
9.18M
            }
224
23.4k
        }
225
23.4k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
21.9k
                                                 PaddedPODArray<UInt8>& c) {
204
21.9k
        size_t size = a_offsets.size();
205
21.9k
        if (b_size == 0) {
206
0
            auto* __restrict data = c.data();
207
0
            auto* __restrict offsets = a_offsets.data();
208
209
0
            ColumnString::Offset prev_a_offset = 0;
210
0
            for (size_t i = 0; i < size; ++i) {
211
0
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
0
                prev_a_offset = offsets[i];
213
0
            }
214
21.9k
        } else {
215
21.9k
            ColumnString::Offset prev_a_offset = 0;
216
21.9k
            const auto* a_pos = a_data.data();
217
21.9k
            const auto* b_pos = b_data.data();
218
8.24M
            for (size_t i = 0; i < size; ++i) {
219
8.22M
                auto a_size = a_offsets[i] - prev_a_offset;
220
8.22M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
8.22M
                                                                   b_pos, b_size);
222
8.22M
                prev_a_offset = a_offsets[i];
223
8.22M
            }
224
21.9k
        }
225
21.9k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
1.51k
                                                 PaddedPODArray<UInt8>& c) {
204
1.51k
        size_t size = a_offsets.size();
205
1.51k
        if (b_size == 0) {
206
1
            auto* __restrict data = c.data();
207
1
            auto* __restrict offsets = a_offsets.data();
208
209
1
            ColumnString::Offset prev_a_offset = 0;
210
4
            for (size_t i = 0; i < size; ++i) {
211
3
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
3
                prev_a_offset = offsets[i];
213
3
            }
214
1.51k
        } else {
215
1.51k
            ColumnString::Offset prev_a_offset = 0;
216
1.51k
            const auto* a_pos = a_data.data();
217
1.51k
            const auto* b_pos = b_data.data();
218
967k
            for (size_t i = 0; i < size; ++i) {
219
965k
                auto a_size = a_offsets[i] - prev_a_offset;
220
965k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
965k
                                                                   b_pos, b_size);
222
965k
                prev_a_offset = a_offsets[i];
223
965k
            }
224
1.51k
        }
225
1.51k
    }
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
470k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
265
434k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
265
1.38k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
265
6.40k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
265
10.3k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
265
3.49k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
265
14.2k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
266
267
470k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
267
434k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
267
1.38k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
267
6.40k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
267
10.3k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
267
3.49k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
267
14.2k
    FunctionComparison() = default;
268
269
1.21M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
269
1.18M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
269
915
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
269
4.14k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
269
14.5k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
269
2.16k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
269
10.2k
    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
244k
                            const ColumnPtr& col_right_ptr) const {
275
244k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
244k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
244k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
244k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
244k
        DCHECK(!(left_is_const && right_is_const));
282
283
244k
        if (!left_is_const && !right_is_const) {
284
7.92k
            auto col_res = ColumnUInt8::create();
285
286
7.92k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
7.92k
            vec_res.resize(col_left->get_data().size());
288
7.92k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
7.92k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
7.92k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
7.92k
                                                     vec_res);
292
293
7.92k
            block.replace_by_position(result, std::move(col_res));
294
236k
        } else if (!left_is_const && right_is_const) {
295
170k
            auto col_res = ColumnUInt8::create();
296
297
170k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
170k
            vec_res.resize(col_left->size());
299
170k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
170k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
170k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
170k
                                                       col_right->get_element(0), vec_res);
303
304
170k
            block.replace_by_position(result, std::move(col_res));
305
170k
        } else if (left_is_const && !right_is_const) {
306
66.1k
            auto col_res = ColumnUInt8::create();
307
308
66.1k
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
66.1k
            vec_res.resize(col_right->size());
310
66.1k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
66.1k
                              typename PrimitiveTypeTraits<PT>::CppType,
312
66.1k
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
66.1k
                                                       col_right->get_data(), vec_res);
314
315
66.1k
            block.replace_by_position(result, std::move(col_res));
316
66.1k
        }
317
244k
        return Status::OK();
318
244k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.60k
                            const ColumnPtr& col_right_ptr) const {
275
1.60k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.60k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.60k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.60k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.60k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.60k
        if (!left_is_const && !right_is_const) {
284
60
            auto col_res = ColumnUInt8::create();
285
286
60
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
60
            vec_res.resize(col_left->get_data().size());
288
60
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
60
                              typename PrimitiveTypeTraits<PT>::CppType,
290
60
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
60
                                                     vec_res);
292
293
60
            block.replace_by_position(result, std::move(col_res));
294
1.54k
        } else if (!left_is_const && right_is_const) {
295
1.54k
            auto col_res = ColumnUInt8::create();
296
297
1.54k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.54k
            vec_res.resize(col_left->size());
299
1.54k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.54k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.54k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.54k
                                                       col_right->get_element(0), vec_res);
303
304
1.54k
            block.replace_by_position(result, std::move(col_res));
305
1.54k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.60k
        return Status::OK();
318
1.60k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.11k
                            const ColumnPtr& col_right_ptr) const {
275
1.11k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.11k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.11k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.11k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.11k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.11k
        if (!left_is_const && !right_is_const) {
284
198
            auto col_res = ColumnUInt8::create();
285
286
198
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
198
            vec_res.resize(col_left->get_data().size());
288
198
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
198
                              typename PrimitiveTypeTraits<PT>::CppType,
290
198
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
198
                                                     vec_res);
292
293
198
            block.replace_by_position(result, std::move(col_res));
294
920
        } else if (!left_is_const && right_is_const) {
295
920
            auto col_res = ColumnUInt8::create();
296
297
920
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
920
            vec_res.resize(col_left->size());
299
920
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
920
                              typename PrimitiveTypeTraits<PT>::CppType,
301
920
                              Op<PT>>::vector_constant(col_left->get_data(),
302
920
                                                       col_right->get_element(0), vec_res);
303
304
920
            block.replace_by_position(result, std::move(col_res));
305
920
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.11k
        return Status::OK();
318
1.11k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
655
                            const ColumnPtr& col_right_ptr) const {
275
655
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
655
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
655
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
655
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
655
        DCHECK(!(left_is_const && right_is_const));
282
283
655
        if (!left_is_const && !right_is_const) {
284
244
            auto col_res = ColumnUInt8::create();
285
286
244
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
244
            vec_res.resize(col_left->get_data().size());
288
244
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
244
                              typename PrimitiveTypeTraits<PT>::CppType,
290
244
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
244
                                                     vec_res);
292
293
244
            block.replace_by_position(result, std::move(col_res));
294
411
        } else if (!left_is_const && right_is_const) {
295
410
            auto col_res = ColumnUInt8::create();
296
297
410
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
410
            vec_res.resize(col_left->size());
299
410
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
410
                              typename PrimitiveTypeTraits<PT>::CppType,
301
410
                              Op<PT>>::vector_constant(col_left->get_data(),
302
410
                                                       col_right->get_element(0), vec_res);
303
304
410
            block.replace_by_position(result, std::move(col_res));
305
410
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
655
        return Status::OK();
318
655
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_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
2
            auto col_res = ColumnUInt8::create();
285
286
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
2
            vec_res.resize(col_left->get_data().size());
288
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
2
                              typename PrimitiveTypeTraits<PT>::CppType,
290
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
2
                                                     vec_res);
292
293
2
            block.replace_by_position(result, std::move(col_res));
294
2
        } 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
2
        return Status::OK();
318
2
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
7.01k
                            const ColumnPtr& col_right_ptr) const {
275
7.01k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
7.01k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
7.01k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
7.01k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
7.01k
        DCHECK(!(left_is_const && right_is_const));
282
283
7.01k
        if (!left_is_const && !right_is_const) {
284
132
            auto col_res = ColumnUInt8::create();
285
286
132
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
132
            vec_res.resize(col_left->get_data().size());
288
132
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
132
                              typename PrimitiveTypeTraits<PT>::CppType,
290
132
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
132
                                                     vec_res);
292
293
132
            block.replace_by_position(result, std::move(col_res));
294
6.87k
        } else if (!left_is_const && right_is_const) {
295
6.54k
            auto col_res = ColumnUInt8::create();
296
297
6.54k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6.54k
            vec_res.resize(col_left->size());
299
6.54k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6.54k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6.54k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6.54k
                                                       col_right->get_element(0), vec_res);
303
304
6.54k
            block.replace_by_position(result, std::move(col_res));
305
6.54k
        } else if (left_is_const && !right_is_const) {
306
336
            auto col_res = ColumnUInt8::create();
307
308
336
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
336
            vec_res.resize(col_right->size());
310
336
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
336
                              typename PrimitiveTypeTraits<PT>::CppType,
312
336
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
336
                                                       col_right->get_data(), vec_res);
314
315
336
            block.replace_by_position(result, std::move(col_res));
316
336
        }
317
7.01k
        return Status::OK();
318
7.01k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.43k
                            const ColumnPtr& col_right_ptr) const {
275
1.43k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.43k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.43k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.43k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.43k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.43k
        if (!left_is_const && !right_is_const) {
284
66
            auto col_res = ColumnUInt8::create();
285
286
66
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
66
            vec_res.resize(col_left->get_data().size());
288
66
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
66
                              typename PrimitiveTypeTraits<PT>::CppType,
290
66
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
66
                                                     vec_res);
292
293
66
            block.replace_by_position(result, std::move(col_res));
294
1.36k
        } else if (!left_is_const && right_is_const) {
295
1.31k
            auto col_res = ColumnUInt8::create();
296
297
1.31k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.31k
            vec_res.resize(col_left->size());
299
1.31k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.31k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.31k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.31k
                                                       col_right->get_element(0), vec_res);
303
304
1.31k
            block.replace_by_position(result, std::move(col_res));
305
1.31k
        } else if (left_is_const && !right_is_const) {
306
48
            auto col_res = ColumnUInt8::create();
307
308
48
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
48
            vec_res.resize(col_right->size());
310
48
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
48
                              typename PrimitiveTypeTraits<PT>::CppType,
312
48
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
48
                                                       col_right->get_data(), vec_res);
314
315
48
            block.replace_by_position(result, std::move(col_res));
316
48
        }
317
1.43k
        return Status::OK();
318
1.43k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
31.1k
                            const ColumnPtr& col_right_ptr) const {
275
31.1k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
31.1k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
31.1k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
31.1k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
31.1k
        DCHECK(!(left_is_const && right_is_const));
282
283
31.1k
        if (!left_is_const && !right_is_const) {
284
292
            auto col_res = ColumnUInt8::create();
285
286
292
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
292
            vec_res.resize(col_left->get_data().size());
288
292
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
292
                              typename PrimitiveTypeTraits<PT>::CppType,
290
292
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
292
                                                     vec_res);
292
293
292
            block.replace_by_position(result, std::move(col_res));
294
30.8k
        } else if (!left_is_const && right_is_const) {
295
30.7k
            auto col_res = ColumnUInt8::create();
296
297
30.7k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
30.7k
            vec_res.resize(col_left->size());
299
30.7k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
30.7k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
30.7k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
30.7k
                                                       col_right->get_element(0), vec_res);
303
304
30.7k
            block.replace_by_position(result, std::move(col_res));
305
30.7k
        } else if (left_is_const && !right_is_const) {
306
142
            auto col_res = ColumnUInt8::create();
307
308
142
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
142
            vec_res.resize(col_right->size());
310
142
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
142
                              typename PrimitiveTypeTraits<PT>::CppType,
312
142
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
142
                                                       col_right->get_data(), vec_res);
314
315
142
            block.replace_by_position(result, std::move(col_res));
316
142
        }
317
31.1k
        return Status::OK();
318
31.1k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
23.3k
                            const ColumnPtr& col_right_ptr) const {
275
23.3k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
23.3k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
23.3k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
23.3k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
23.3k
        DCHECK(!(left_is_const && right_is_const));
282
283
23.3k
        if (!left_is_const && !right_is_const) {
284
271
            auto col_res = ColumnUInt8::create();
285
286
271
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
271
            vec_res.resize(col_left->get_data().size());
288
271
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
271
                              typename PrimitiveTypeTraits<PT>::CppType,
290
271
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
271
                                                     vec_res);
292
293
271
            block.replace_by_position(result, std::move(col_res));
294
23.0k
        } else if (!left_is_const && right_is_const) {
295
22.6k
            auto col_res = ColumnUInt8::create();
296
297
22.6k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
22.6k
            vec_res.resize(col_left->size());
299
22.6k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
22.6k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
22.6k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
22.6k
                                                       col_right->get_element(0), vec_res);
303
304
22.6k
            block.replace_by_position(result, std::move(col_res));
305
22.6k
        } else if (left_is_const && !right_is_const) {
306
444
            auto col_res = ColumnUInt8::create();
307
308
444
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
444
            vec_res.resize(col_right->size());
310
444
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
444
                              typename PrimitiveTypeTraits<PT>::CppType,
312
444
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
444
                                                       col_right->get_data(), vec_res);
314
315
444
            block.replace_by_position(result, std::move(col_res));
316
444
        }
317
23.3k
        return Status::OK();
318
23.3k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
145
                            const ColumnPtr& col_right_ptr) const {
275
145
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
145
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
145
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
145
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
145
        DCHECK(!(left_is_const && right_is_const));
282
283
145
        if (!left_is_const && !right_is_const) {
284
72
            auto col_res = ColumnUInt8::create();
285
286
72
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
72
            vec_res.resize(col_left->get_data().size());
288
72
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
72
                              typename PrimitiveTypeTraits<PT>::CppType,
290
72
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
72
                                                     vec_res);
292
293
72
            block.replace_by_position(result, std::move(col_res));
294
73
        } else if (!left_is_const && right_is_const) {
295
57
            auto col_res = ColumnUInt8::create();
296
297
57
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
57
            vec_res.resize(col_left->size());
299
57
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
57
                              typename PrimitiveTypeTraits<PT>::CppType,
301
57
                              Op<PT>>::vector_constant(col_left->get_data(),
302
57
                                                       col_right->get_element(0), vec_res);
303
304
57
            block.replace_by_position(result, std::move(col_res));
305
57
        } else if (left_is_const && !right_is_const) {
306
16
            auto col_res = ColumnUInt8::create();
307
308
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
16
            vec_res.resize(col_right->size());
310
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
16
                              typename PrimitiveTypeTraits<PT>::CppType,
312
16
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
16
                                                       col_right->get_data(), vec_res);
314
315
16
            block.replace_by_position(result, std::move(col_res));
316
16
        }
317
145
        return Status::OK();
318
145
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
18
                            const ColumnPtr& col_right_ptr) const {
275
18
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
18
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
18
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
18
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
18
        DCHECK(!(left_is_const && right_is_const));
282
283
18
        if (!left_is_const && !right_is_const) {
284
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
13
        } else if (!left_is_const && right_is_const) {
295
13
            auto col_res = ColumnUInt8::create();
296
297
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
13
            vec_res.resize(col_left->size());
299
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
13
                              typename PrimitiveTypeTraits<PT>::CppType,
301
13
                              Op<PT>>::vector_constant(col_left->get_data(),
302
13
                                                       col_right->get_element(0), vec_res);
303
304
13
            block.replace_by_position(result, std::move(col_res));
305
13
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
18
        return Status::OK();
318
18
    }
_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
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
87
            auto col_res = ColumnUInt8::create();
285
286
87
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
87
            vec_res.resize(col_left->get_data().size());
288
87
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
87
                              typename PrimitiveTypeTraits<PT>::CppType,
290
87
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
87
                                                     vec_res);
292
293
87
            block.replace_by_position(result, std::move(col_res));
294
87
        } 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
91
        return Status::OK();
318
91
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
381
                            const ColumnPtr& col_right_ptr) const {
275
381
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
381
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
381
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
381
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
381
        DCHECK(!(left_is_const && right_is_const));
282
283
381
        if (!left_is_const && !right_is_const) {
284
96
            auto col_res = ColumnUInt8::create();
285
286
96
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
96
            vec_res.resize(col_left->get_data().size());
288
96
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
96
                              typename PrimitiveTypeTraits<PT>::CppType,
290
96
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
96
                                                     vec_res);
292
293
96
            block.replace_by_position(result, std::move(col_res));
294
285
        } else if (!left_is_const && right_is_const) {
295
285
            auto col_res = ColumnUInt8::create();
296
297
285
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
285
            vec_res.resize(col_left->size());
299
285
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
285
                              typename PrimitiveTypeTraits<PT>::CppType,
301
285
                              Op<PT>>::vector_constant(col_left->get_data(),
302
285
                                                       col_right->get_element(0), vec_res);
303
304
285
            block.replace_by_position(result, std::move(col_res));
305
285
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
381
        return Status::OK();
318
381
    }
_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
38
            auto col_res = ColumnUInt8::create();
285
286
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
38
            vec_res.resize(col_left->get_data().size());
288
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
38
                              typename PrimitiveTypeTraits<PT>::CppType,
290
38
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
38
                                                     vec_res);
292
293
38
            block.replace_by_position(result, std::move(col_res));
294
38
        } 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
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
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
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
44
            auto col_res = ColumnUInt8::create();
296
297
44
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
44
            vec_res.resize(col_left->size());
299
44
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
44
                              typename PrimitiveTypeTraits<PT>::CppType,
301
44
                              Op<PT>>::vector_constant(col_left->get_data(),
302
44
                                                       col_right->get_element(0), vec_res);
303
304
44
            block.replace_by_position(result, std::move(col_res));
305
44
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
100
        return Status::OK();
318
100
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
26
                            const ColumnPtr& col_right_ptr) const {
275
26
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
26
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
26
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
26
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
26
        DCHECK(!(left_is_const && right_is_const));
282
283
26
        if (!left_is_const && !right_is_const) {
284
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
26
        } 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
26
        return Status::OK();
318
26
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3.38k
                            const ColumnPtr& col_right_ptr) const {
275
3.38k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.38k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.38k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.38k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.38k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.38k
        if (!left_is_const && !right_is_const) {
284
533
            auto col_res = ColumnUInt8::create();
285
286
533
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
533
            vec_res.resize(col_left->get_data().size());
288
533
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
533
                              typename PrimitiveTypeTraits<PT>::CppType,
290
533
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
533
                                                     vec_res);
292
293
533
            block.replace_by_position(result, std::move(col_res));
294
2.85k
        } else if (!left_is_const && right_is_const) {
295
2.85k
            auto col_res = ColumnUInt8::create();
296
297
2.85k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2.85k
            vec_res.resize(col_left->size());
299
2.85k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2.85k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2.85k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2.85k
                                                       col_right->get_element(0), vec_res);
303
304
2.85k
            block.replace_by_position(result, std::move(col_res));
305
2.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
3.38k
        return Status::OK();
318
3.38k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3.11k
                            const ColumnPtr& col_right_ptr) const {
275
3.11k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.11k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.11k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.11k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.11k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.11k
        if (!left_is_const && !right_is_const) {
284
401
            auto col_res = ColumnUInt8::create();
285
286
401
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
401
            vec_res.resize(col_left->get_data().size());
288
401
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
401
                              typename PrimitiveTypeTraits<PT>::CppType,
290
401
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
401
                                                     vec_res);
292
293
401
            block.replace_by_position(result, std::move(col_res));
294
2.71k
        } else if (!left_is_const && right_is_const) {
295
1.93k
            auto col_res = ColumnUInt8::create();
296
297
1.93k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.93k
            vec_res.resize(col_left->size());
299
1.93k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.93k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.93k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.93k
                                                       col_right->get_element(0), vec_res);
303
304
1.93k
            block.replace_by_position(result, std::move(col_res));
305
1.93k
        } else if (left_is_const && !right_is_const) {
306
782
            auto col_res = ColumnUInt8::create();
307
308
782
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
782
            vec_res.resize(col_right->size());
310
782
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
782
                              typename PrimitiveTypeTraits<PT>::CppType,
312
782
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
782
                                                       col_right->get_data(), vec_res);
314
315
782
            block.replace_by_position(result, std::move(col_res));
316
782
        }
317
3.11k
        return Status::OK();
318
3.11k
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
48
                            const ColumnPtr& col_right_ptr) const {
275
48
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
48
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
48
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
48
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
48
        DCHECK(!(left_is_const && right_is_const));
282
283
48
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
28
        } else if (!left_is_const && right_is_const) {
295
28
            auto col_res = ColumnUInt8::create();
296
297
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
28
            vec_res.resize(col_left->size());
299
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
28
                              typename PrimitiveTypeTraits<PT>::CppType,
301
28
                              Op<PT>>::vector_constant(col_left->get_data(),
302
28
                                                       col_right->get_element(0), vec_res);
303
304
28
            block.replace_by_position(result, std::move(col_res));
305
28
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
48
        return Status::OK();
318
48
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
60
                            const ColumnPtr& col_right_ptr) const {
275
60
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
60
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
60
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
60
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
60
        DCHECK(!(left_is_const && right_is_const));
282
283
60
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
40
        } else if (!left_is_const && right_is_const) {
295
40
            auto col_res = ColumnUInt8::create();
296
297
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
40
            vec_res.resize(col_left->size());
299
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
40
                              typename PrimitiveTypeTraits<PT>::CppType,
301
40
                              Op<PT>>::vector_constant(col_left->get_data(),
302
40
                                                       col_right->get_element(0), vec_res);
303
304
40
            block.replace_by_position(result, std::move(col_res));
305
40
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
60
        return Status::OK();
318
60
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.24k
                            const ColumnPtr& col_right_ptr) const {
275
1.24k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.24k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.24k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.24k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.24k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.24k
        if (!left_is_const && !right_is_const) {
284
1.11k
            auto col_res = ColumnUInt8::create();
285
286
1.11k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.11k
            vec_res.resize(col_left->get_data().size());
288
1.11k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.11k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.11k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.11k
                                                     vec_res);
292
293
1.11k
            block.replace_by_position(result, std::move(col_res));
294
1.11k
        } else if (!left_is_const && right_is_const) {
295
131
            auto col_res = ColumnUInt8::create();
296
297
131
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
131
            vec_res.resize(col_left->size());
299
131
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
131
                              typename PrimitiveTypeTraits<PT>::CppType,
301
131
                              Op<PT>>::vector_constant(col_left->get_data(),
302
131
                                                       col_right->get_element(0), vec_res);
303
304
131
            block.replace_by_position(result, std::move(col_res));
305
131
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.24k
        return Status::OK();
318
1.24k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
94
                            const ColumnPtr& col_right_ptr) const {
275
94
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
94
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
94
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
94
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
94
        DCHECK(!(left_is_const && right_is_const));
282
283
94
        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
94
        } else if (!left_is_const && right_is_const) {
295
94
            auto col_res = ColumnUInt8::create();
296
297
94
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
94
            vec_res.resize(col_left->size());
299
94
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
94
                              typename PrimitiveTypeTraits<PT>::CppType,
301
94
                              Op<PT>>::vector_constant(col_left->get_data(),
302
94
                                                       col_right->get_element(0), vec_res);
303
304
94
            block.replace_by_position(result, std::move(col_res));
305
94
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
94
        return Status::OK();
318
94
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_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_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.36k
                            const ColumnPtr& col_right_ptr) const {
275
1.36k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.36k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.36k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.36k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.36k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.36k
        if (!left_is_const && !right_is_const) {
284
38
            auto col_res = ColumnUInt8::create();
285
286
38
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
38
            vec_res.resize(col_left->get_data().size());
288
38
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
38
                              typename PrimitiveTypeTraits<PT>::CppType,
290
38
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
38
                                                     vec_res);
292
293
38
            block.replace_by_position(result, std::move(col_res));
294
1.32k
        } else if (!left_is_const && right_is_const) {
295
1.05k
            auto col_res = ColumnUInt8::create();
296
297
1.05k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.05k
            vec_res.resize(col_left->size());
299
1.05k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.05k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.05k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.05k
                                                       col_right->get_element(0), vec_res);
303
304
1.05k
            block.replace_by_position(result, std::move(col_res));
305
1.05k
        } else if (left_is_const && !right_is_const) {
306
264
            auto col_res = ColumnUInt8::create();
307
308
264
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
264
            vec_res.resize(col_right->size());
310
264
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
264
                              typename PrimitiveTypeTraits<PT>::CppType,
312
264
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
264
                                                       col_right->get_data(), vec_res);
314
315
264
            block.replace_by_position(result, std::move(col_res));
316
264
        }
317
1.36k
        return Status::OK();
318
1.36k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.01k
                            const ColumnPtr& col_right_ptr) const {
275
2.01k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.01k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.01k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.01k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.01k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.01k
        if (!left_is_const && !right_is_const) {
284
129
            auto col_res = ColumnUInt8::create();
285
286
129
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
129
            vec_res.resize(col_left->get_data().size());
288
129
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
129
                              typename PrimitiveTypeTraits<PT>::CppType,
290
129
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
129
                                                     vec_res);
292
293
129
            block.replace_by_position(result, std::move(col_res));
294
1.88k
        } else if (!left_is_const && right_is_const) {
295
1.63k
            auto col_res = ColumnUInt8::create();
296
297
1.63k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.63k
            vec_res.resize(col_left->size());
299
1.63k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.63k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.63k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.63k
                                                       col_right->get_element(0), vec_res);
303
304
1.63k
            block.replace_by_position(result, std::move(col_res));
305
1.63k
        } else if (left_is_const && !right_is_const) {
306
252
            auto col_res = ColumnUInt8::create();
307
308
252
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
252
            vec_res.resize(col_right->size());
310
252
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
252
                              typename PrimitiveTypeTraits<PT>::CppType,
312
252
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
252
                                                       col_right->get_data(), vec_res);
314
315
252
            block.replace_by_position(result, std::move(col_res));
316
252
        }
317
2.01k
        return Status::OK();
318
2.01k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
83.3k
                            const ColumnPtr& col_right_ptr) const {
275
83.3k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
83.3k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
83.3k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
83.3k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
83.3k
        DCHECK(!(left_is_const && right_is_const));
282
283
83.3k
        if (!left_is_const && !right_is_const) {
284
47
            auto col_res = ColumnUInt8::create();
285
286
47
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
47
            vec_res.resize(col_left->get_data().size());
288
47
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
47
                              typename PrimitiveTypeTraits<PT>::CppType,
290
47
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
47
                                                     vec_res);
292
293
47
            block.replace_by_position(result, std::move(col_res));
294
83.3k
        } else if (!left_is_const && right_is_const) {
295
21.1k
            auto col_res = ColumnUInt8::create();
296
297
21.1k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
21.1k
            vec_res.resize(col_left->size());
299
21.1k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
21.1k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
21.1k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
21.1k
                                                       col_right->get_element(0), vec_res);
303
304
21.1k
            block.replace_by_position(result, std::move(col_res));
305
62.1k
        } else if (left_is_const && !right_is_const) {
306
62.1k
            auto col_res = ColumnUInt8::create();
307
308
62.1k
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
62.1k
            vec_res.resize(col_right->size());
310
62.1k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
62.1k
                              typename PrimitiveTypeTraits<PT>::CppType,
312
62.1k
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
62.1k
                                                       col_right->get_data(), vec_res);
314
315
62.1k
            block.replace_by_position(result, std::move(col_res));
316
62.1k
        }
317
83.3k
        return Status::OK();
318
83.3k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
14.0k
                            const ColumnPtr& col_right_ptr) const {
275
14.0k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
14.0k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
14.0k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
14.0k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
14.0k
        DCHECK(!(left_is_const && right_is_const));
282
283
14.0k
        if (!left_is_const && !right_is_const) {
284
62
            auto col_res = ColumnUInt8::create();
285
286
62
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
62
            vec_res.resize(col_left->get_data().size());
288
62
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
62
                              typename PrimitiveTypeTraits<PT>::CppType,
290
62
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
62
                                                     vec_res);
292
293
62
            block.replace_by_position(result, std::move(col_res));
294
14.0k
        } else if (!left_is_const && right_is_const) {
295
13.4k
            auto col_res = ColumnUInt8::create();
296
297
13.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
13.4k
            vec_res.resize(col_left->size());
299
13.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
13.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
13.4k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
13.4k
                                                       col_right->get_element(0), vec_res);
303
304
13.4k
            block.replace_by_position(result, std::move(col_res));
305
13.4k
        } else if (left_is_const && !right_is_const) {
306
502
            auto col_res = ColumnUInt8::create();
307
308
502
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
502
            vec_res.resize(col_right->size());
310
502
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
502
                              typename PrimitiveTypeTraits<PT>::CppType,
312
502
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
502
                                                       col_right->get_data(), vec_res);
314
315
502
            block.replace_by_position(result, std::move(col_res));
316
502
        }
317
14.0k
        return Status::OK();
318
14.0k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
245
                            const ColumnPtr& col_right_ptr) const {
275
245
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
245
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
245
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
245
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
245
        DCHECK(!(left_is_const && right_is_const));
282
283
245
        if (!left_is_const && !right_is_const) {
284
2
            auto col_res = ColumnUInt8::create();
285
286
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
2
            vec_res.resize(col_left->get_data().size());
288
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
2
                              typename PrimitiveTypeTraits<PT>::CppType,
290
2
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
2
                                                     vec_res);
292
293
2
            block.replace_by_position(result, std::move(col_res));
294
243
        } else if (!left_is_const && right_is_const) {
295
201
            auto col_res = ColumnUInt8::create();
296
297
201
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
201
            vec_res.resize(col_left->size());
299
201
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
201
                              typename PrimitiveTypeTraits<PT>::CppType,
301
201
                              Op<PT>>::vector_constant(col_left->get_data(),
302
201
                                                       col_right->get_element(0), vec_res);
303
304
201
            block.replace_by_position(result, std::move(col_res));
305
201
        } else if (left_is_const && !right_is_const) {
306
42
            auto col_res = ColumnUInt8::create();
307
308
42
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
42
            vec_res.resize(col_right->size());
310
42
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
42
                              typename PrimitiveTypeTraits<PT>::CppType,
312
42
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
42
                                                       col_right->get_data(), vec_res);
314
315
42
            block.replace_by_position(result, std::move(col_res));
316
42
        }
317
245
        return Status::OK();
318
245
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_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
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
3
        } else if (!left_is_const && right_is_const) {
295
3
            auto col_res = ColumnUInt8::create();
296
297
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
3
            vec_res.resize(col_left->size());
299
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
3
                              typename PrimitiveTypeTraits<PT>::CppType,
301
3
                              Op<PT>>::vector_constant(col_left->get_data(),
302
3
                                                       col_right->get_element(0), vec_res);
303
304
3
            block.replace_by_position(result, std::move(col_res));
305
3
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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_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
236
                            const ColumnPtr& col_right_ptr) const {
275
236
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
236
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
236
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
236
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
236
        DCHECK(!(left_is_const && right_is_const));
282
283
236
        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
216
        } else if (!left_is_const && right_is_const) {
295
216
            auto col_res = ColumnUInt8::create();
296
297
216
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
216
            vec_res.resize(col_left->size());
299
216
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
216
                              typename PrimitiveTypeTraits<PT>::CppType,
301
216
                              Op<PT>>::vector_constant(col_left->get_data(),
302
216
                                                       col_right->get_element(0), vec_res);
303
304
216
            block.replace_by_position(result, std::move(col_res));
305
216
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
236
        return Status::OK();
318
236
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.47k
                            const ColumnPtr& col_right_ptr) const {
275
2.47k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.47k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.47k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.47k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.47k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.47k
        if (!left_is_const && !right_is_const) {
284
27
            auto col_res = ColumnUInt8::create();
285
286
27
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
27
            vec_res.resize(col_left->get_data().size());
288
27
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
27
                              typename PrimitiveTypeTraits<PT>::CppType,
290
27
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
27
                                                     vec_res);
292
293
27
            block.replace_by_position(result, std::move(col_res));
294
2.45k
        } else if (!left_is_const && right_is_const) {
295
2.45k
            auto col_res = ColumnUInt8::create();
296
297
2.45k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2.45k
            vec_res.resize(col_left->size());
299
2.45k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2.45k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2.45k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2.45k
                                                       col_right->get_element(0), vec_res);
303
304
2.45k
            block.replace_by_position(result, std::move(col_res));
305
2.45k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.47k
        return Status::OK();
318
2.47k
    }
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
198
                            const ColumnPtr& col_right_ptr) const {
275
198
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
198
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
198
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
198
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
198
        DCHECK(!(left_is_const && right_is_const));
282
283
198
        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
198
        } else if (!left_is_const && right_is_const) {
295
198
            auto col_res = ColumnUInt8::create();
296
297
198
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
198
            vec_res.resize(col_left->size());
299
198
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
198
                              typename PrimitiveTypeTraits<PT>::CppType,
301
198
                              Op<PT>>::vector_constant(col_left->get_data(),
302
198
                                                       col_right->get_element(0), vec_res);
303
304
198
            block.replace_by_position(result, std::move(col_res));
305
198
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
198
        return Status::OK();
318
198
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.66k
                            const ColumnPtr& col_right_ptr) const {
275
1.66k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.66k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.66k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.66k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.66k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.66k
        if (!left_is_const && !right_is_const) {
284
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.66k
        } else if (!left_is_const && right_is_const) {
295
1.65k
            auto col_res = ColumnUInt8::create();
296
297
1.65k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.65k
            vec_res.resize(col_left->size());
299
1.65k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.65k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.65k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.65k
                                                       col_right->get_element(0), vec_res);
303
304
1.65k
            block.replace_by_position(result, std::move(col_res));
305
1.65k
        } else if (left_is_const && !right_is_const) {
306
6
            auto col_res = ColumnUInt8::create();
307
308
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
6
            vec_res.resize(col_right->size());
310
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
6
                              typename PrimitiveTypeTraits<PT>::CppType,
312
6
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
6
                                                       col_right->get_data(), vec_res);
314
315
6
            block.replace_by_position(result, std::move(col_res));
316
6
        }
317
1.66k
        return Status::OK();
318
1.66k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
776
                            const ColumnPtr& col_right_ptr) const {
275
776
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
776
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
776
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
776
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
776
        DCHECK(!(left_is_const && right_is_const));
282
283
776
        if (!left_is_const && !right_is_const) {
284
6
            auto col_res = ColumnUInt8::create();
285
286
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
6
            vec_res.resize(col_left->get_data().size());
288
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
6
                              typename PrimitiveTypeTraits<PT>::CppType,
290
6
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
6
                                                     vec_res);
292
293
6
            block.replace_by_position(result, std::move(col_res));
294
770
        } else if (!left_is_const && right_is_const) {
295
770
            auto col_res = ColumnUInt8::create();
296
297
770
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
770
            vec_res.resize(col_left->size());
299
770
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
770
                              typename PrimitiveTypeTraits<PT>::CppType,
301
770
                              Op<PT>>::vector_constant(col_left->get_data(),
302
770
                                                       col_right->get_element(0), vec_res);
303
304
770
            block.replace_by_position(result, std::move(col_res));
305
770
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
776
        return Status::OK();
318
776
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_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_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
64
                            const ColumnPtr& col_right_ptr) const {
275
64
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
64
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
64
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
64
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
64
        DCHECK(!(left_is_const && right_is_const));
282
283
64
        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
64
        } else if (!left_is_const && right_is_const) {
295
64
            auto col_res = ColumnUInt8::create();
296
297
64
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
64
            vec_res.resize(col_left->size());
299
64
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
64
                              typename PrimitiveTypeTraits<PT>::CppType,
301
64
                              Op<PT>>::vector_constant(col_left->get_data(),
302
64
                                                       col_right->get_element(0), vec_res);
303
304
64
            block.replace_by_position(result, std::move(col_res));
305
64
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
64
        return Status::OK();
318
64
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
97
                            const ColumnPtr& col_right_ptr) const {
275
97
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
97
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
97
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
97
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
97
        DCHECK(!(left_is_const && right_is_const));
282
283
97
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
97
        } else if (!left_is_const && right_is_const) {
295
97
            auto col_res = ColumnUInt8::create();
296
297
97
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
97
            vec_res.resize(col_left->size());
299
97
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
97
                              typename PrimitiveTypeTraits<PT>::CppType,
301
97
                              Op<PT>>::vector_constant(col_left->get_data(),
302
97
                                                       col_right->get_element(0), vec_res);
303
304
97
            block.replace_by_position(result, std::move(col_res));
305
97
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
97
        return Status::OK();
318
97
    }
_ZNK5doris18FunctionComparisonINS_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
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
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.3k
        return Status::OK();
318
12.3k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
893
                            const ColumnPtr& col_right_ptr) const {
275
893
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
893
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
893
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
893
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
893
        DCHECK(!(left_is_const && right_is_const));
282
283
893
        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
884
        } else if (!left_is_const && right_is_const) {
295
884
            auto col_res = ColumnUInt8::create();
296
297
884
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
884
            vec_res.resize(col_left->size());
299
884
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
884
                              typename PrimitiveTypeTraits<PT>::CppType,
301
884
                              Op<PT>>::vector_constant(col_left->get_data(),
302
884
                                                       col_right->get_element(0), vec_res);
303
304
884
            block.replace_by_position(result, std::move(col_res));
305
884
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
893
        return Status::OK();
318
893
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
50
                            const ColumnPtr& col_right_ptr) const {
275
50
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
50
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
50
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
50
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
50
        DCHECK(!(left_is_const && right_is_const));
282
283
50
        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
50
        } else if (!left_is_const && right_is_const) {
295
50
            auto col_res = ColumnUInt8::create();
296
297
50
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
50
            vec_res.resize(col_left->size());
299
50
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
50
                              typename PrimitiveTypeTraits<PT>::CppType,
301
50
                              Op<PT>>::vector_constant(col_left->get_data(),
302
50
                                                       col_right->get_element(0), vec_res);
303
304
50
            block.replace_by_position(result, std::move(col_res));
305
50
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
50
        return Status::OK();
318
50
    }
_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
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_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_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
23
            auto col_res = ColumnUInt8::create();
285
286
23
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
23
            vec_res.resize(col_left->get_data().size());
288
23
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
23
                              typename PrimitiveTypeTraits<PT>::CppType,
290
23
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
23
                                                     vec_res);
292
293
23
            block.replace_by_position(result, std::move(col_res));
294
145
        } else if (!left_is_const && right_is_const) {
295
145
            auto col_res = ColumnUInt8::create();
296
297
145
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
145
            vec_res.resize(col_left->size());
299
145
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
145
                              typename PrimitiveTypeTraits<PT>::CppType,
301
145
                              Op<PT>>::vector_constant(col_left->get_data(),
302
145
                                                       col_right->get_element(0), vec_res);
303
304
145
            block.replace_by_position(result, std::move(col_res));
305
145
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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
    }
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
88
                            const ColumnPtr& col_right_ptr) const {
275
88
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
88
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
88
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
88
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
88
        DCHECK(!(left_is_const && right_is_const));
282
283
88
        if (!left_is_const && !right_is_const) {
284
88
            auto col_res = ColumnUInt8::create();
285
286
88
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
88
            vec_res.resize(col_left->get_data().size());
288
88
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
88
                              typename PrimitiveTypeTraits<PT>::CppType,
290
88
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
88
                                                     vec_res);
292
293
88
            block.replace_by_position(result, std::move(col_res));
294
88
        } 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
88
        return Status::OK();
318
88
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.31k
                            const ColumnPtr& col_right_ptr) const {
275
2.31k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.31k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.31k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.31k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.31k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.31k
        if (!left_is_const && !right_is_const) {
284
1.79k
            auto col_res = ColumnUInt8::create();
285
286
1.79k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.79k
            vec_res.resize(col_left->get_data().size());
288
1.79k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.79k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.79k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.79k
                                                     vec_res);
292
293
1.79k
            block.replace_by_position(result, std::move(col_res));
294
1.79k
        } else if (!left_is_const && right_is_const) {
295
523
            auto col_res = ColumnUInt8::create();
296
297
523
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
523
            vec_res.resize(col_left->size());
299
523
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
523
                              typename PrimitiveTypeTraits<PT>::CppType,
301
523
                              Op<PT>>::vector_constant(col_left->get_data(),
302
523
                                                       col_right->get_element(0), vec_res);
303
304
523
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2.31k
        return Status::OK();
318
2.31k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
661
                            const ColumnPtr& col_right_ptr) const {
275
661
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
661
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
661
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
661
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
661
        DCHECK(!(left_is_const && right_is_const));
282
283
661
        if (!left_is_const && !right_is_const) {
284
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
385
        } else if (!left_is_const && right_is_const) {
295
385
            auto col_res = ColumnUInt8::create();
296
297
385
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
385
            vec_res.resize(col_left->size());
299
385
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
385
                              typename PrimitiveTypeTraits<PT>::CppType,
301
385
                              Op<PT>>::vector_constant(col_left->get_data(),
302
385
                                                       col_right->get_element(0), vec_res);
303
304
385
            block.replace_by_position(result, std::move(col_res));
305
385
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
661
        return Status::OK();
318
661
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_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_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.22k
                            const ColumnPtr& col_right_ptr) const {
275
2.22k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.22k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.22k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.22k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.22k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.22k
        if (!left_is_const && !right_is_const) {
284
139
            auto col_res = ColumnUInt8::create();
285
286
139
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
139
            vec_res.resize(col_left->get_data().size());
288
139
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
139
                              typename PrimitiveTypeTraits<PT>::CppType,
290
139
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
139
                                                     vec_res);
292
293
139
            block.replace_by_position(result, std::move(col_res));
294
2.08k
        } else if (!left_is_const && right_is_const) {
295
1.79k
            auto col_res = ColumnUInt8::create();
296
297
1.79k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.79k
            vec_res.resize(col_left->size());
299
1.79k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.79k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.79k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.79k
                                                       col_right->get_element(0), vec_res);
303
304
1.79k
            block.replace_by_position(result, std::move(col_res));
305
1.79k
        } else if (left_is_const && !right_is_const) {
306
288
            auto col_res = ColumnUInt8::create();
307
308
288
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
288
            vec_res.resize(col_right->size());
310
288
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
288
                              typename PrimitiveTypeTraits<PT>::CppType,
312
288
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
288
                                                       col_right->get_data(), vec_res);
314
315
288
            block.replace_by_position(result, std::move(col_res));
316
288
        }
317
2.22k
        return Status::OK();
318
2.22k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
396
                            const ColumnPtr& col_right_ptr) const {
275
396
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
396
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
396
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
396
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
396
        DCHECK(!(left_is_const && right_is_const));
282
283
396
        if (!left_is_const && !right_is_const) {
284
128
            auto col_res = ColumnUInt8::create();
285
286
128
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
128
            vec_res.resize(col_left->get_data().size());
288
128
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
128
                              typename PrimitiveTypeTraits<PT>::CppType,
290
128
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
128
                                                     vec_res);
292
293
128
            block.replace_by_position(result, std::move(col_res));
294
268
        } else if (!left_is_const && right_is_const) {
295
268
            auto col_res = ColumnUInt8::create();
296
297
268
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
268
            vec_res.resize(col_left->size());
299
268
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
268
                              typename PrimitiveTypeTraits<PT>::CppType,
301
268
                              Op<PT>>::vector_constant(col_left->get_data(),
302
268
                                                       col_right->get_element(0), vec_res);
303
304
268
            block.replace_by_position(result, std::move(col_res));
305
268
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
396
        return Status::OK();
318
396
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
6.32k
                            const ColumnPtr& col_right_ptr) const {
275
6.32k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
6.32k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
6.32k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
6.32k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
6.32k
        DCHECK(!(left_is_const && right_is_const));
282
283
6.32k
        if (!left_is_const && !right_is_const) {
284
168
            auto col_res = ColumnUInt8::create();
285
286
168
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
168
            vec_res.resize(col_left->get_data().size());
288
168
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
168
                              typename PrimitiveTypeTraits<PT>::CppType,
290
168
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
168
                                                     vec_res);
292
293
168
            block.replace_by_position(result, std::move(col_res));
294
6.15k
        } else if (!left_is_const && right_is_const) {
295
6.03k
            auto col_res = ColumnUInt8::create();
296
297
6.03k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6.03k
            vec_res.resize(col_left->size());
299
6.03k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6.03k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6.03k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6.03k
                                                       col_right->get_element(0), vec_res);
303
304
6.03k
            block.replace_by_position(result, std::move(col_res));
305
6.03k
        } else if (left_is_const && !right_is_const) {
306
121
            auto col_res = ColumnUInt8::create();
307
308
121
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
121
            vec_res.resize(col_right->size());
310
121
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
121
                              typename PrimitiveTypeTraits<PT>::CppType,
312
121
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
121
                                                       col_right->get_data(), vec_res);
314
315
121
            block.replace_by_position(result, std::move(col_res));
316
121
        }
317
6.32k
        return Status::OK();
318
6.32k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.68k
                            const ColumnPtr& col_right_ptr) const {
275
1.68k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.68k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.68k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.68k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.68k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.68k
        if (!left_is_const && !right_is_const) {
284
216
            auto col_res = ColumnUInt8::create();
285
286
216
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
216
            vec_res.resize(col_left->get_data().size());
288
216
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
216
                              typename PrimitiveTypeTraits<PT>::CppType,
290
216
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
216
                                                     vec_res);
292
293
216
            block.replace_by_position(result, std::move(col_res));
294
1.46k
        } else if (!left_is_const && right_is_const) {
295
1.39k
            auto col_res = ColumnUInt8::create();
296
297
1.39k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.39k
            vec_res.resize(col_left->size());
299
1.39k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.39k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.39k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.39k
                                                       col_right->get_element(0), vec_res);
303
304
1.39k
            block.replace_by_position(result, std::move(col_res));
305
1.39k
        } else if (left_is_const && !right_is_const) {
306
73
            auto col_res = ColumnUInt8::create();
307
308
73
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
73
            vec_res.resize(col_right->size());
310
73
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
73
                              typename PrimitiveTypeTraits<PT>::CppType,
312
73
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
73
                                                       col_right->get_data(), vec_res);
314
315
73
            block.replace_by_position(result, std::move(col_res));
316
73
        }
317
1.68k
        return Status::OK();
318
1.68k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
264
                            const ColumnPtr& col_right_ptr) const {
275
264
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
264
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
264
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
264
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
264
        DCHECK(!(left_is_const && right_is_const));
282
283
264
        if (!left_is_const && !right_is_const) {
284
158
            auto col_res = ColumnUInt8::create();
285
286
158
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
158
            vec_res.resize(col_left->get_data().size());
288
158
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
158
                              typename PrimitiveTypeTraits<PT>::CppType,
290
158
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
158
                                                     vec_res);
292
293
158
            block.replace_by_position(result, std::move(col_res));
294
158
        } else if (!left_is_const && right_is_const) {
295
50
            auto col_res = ColumnUInt8::create();
296
297
50
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
50
            vec_res.resize(col_left->size());
299
50
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
50
                              typename PrimitiveTypeTraits<PT>::CppType,
301
50
                              Op<PT>>::vector_constant(col_left->get_data(),
302
50
                                                       col_right->get_element(0), vec_res);
303
304
50
            block.replace_by_position(result, std::move(col_res));
305
56
        } else if (left_is_const && !right_is_const) {
306
56
            auto col_res = ColumnUInt8::create();
307
308
56
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
56
            vec_res.resize(col_right->size());
310
56
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
56
                              typename PrimitiveTypeTraits<PT>::CppType,
312
56
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
56
                                                       col_right->get_data(), vec_res);
314
315
56
            block.replace_by_position(result, std::move(col_res));
316
56
        }
317
264
        return Status::OK();
318
264
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
18
                            const ColumnPtr& col_right_ptr) const {
275
18
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
18
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
18
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
18
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
18
        DCHECK(!(left_is_const && right_is_const));
282
283
18
        if (!left_is_const && !right_is_const) {
284
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
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
18
        return Status::OK();
318
18
    }
_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
171
                            const ColumnPtr& col_right_ptr) const {
275
171
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
171
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
171
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
171
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
171
        DCHECK(!(left_is_const && right_is_const));
282
283
171
        if (!left_is_const && !right_is_const) {
284
145
            auto col_res = ColumnUInt8::create();
285
286
145
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
145
            vec_res.resize(col_left->get_data().size());
288
145
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
145
                              typename PrimitiveTypeTraits<PT>::CppType,
290
145
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
145
                                                     vec_res);
292
293
145
            block.replace_by_position(result, std::move(col_res));
294
145
        } 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
171
        return Status::OK();
318
171
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
394
                            const ColumnPtr& col_right_ptr) const {
275
394
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
394
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
394
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
394
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
394
        DCHECK(!(left_is_const && right_is_const));
282
283
394
        if (!left_is_const && !right_is_const) {
284
157
            auto col_res = ColumnUInt8::create();
285
286
157
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
157
            vec_res.resize(col_left->get_data().size());
288
157
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
157
                              typename PrimitiveTypeTraits<PT>::CppType,
290
157
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
157
                                                     vec_res);
292
293
157
            block.replace_by_position(result, std::move(col_res));
294
237
        } else if (!left_is_const && right_is_const) {
295
237
            auto col_res = ColumnUInt8::create();
296
297
237
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
237
            vec_res.resize(col_left->size());
299
237
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
237
                              typename PrimitiveTypeTraits<PT>::CppType,
301
237
                              Op<PT>>::vector_constant(col_left->get_data(),
302
237
                                                       col_right->get_element(0), vec_res);
303
304
237
            block.replace_by_position(result, std::move(col_res));
305
237
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
394
        return Status::OK();
318
394
    }
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
426
                            const ColumnPtr& col_right_ptr) const {
275
426
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
426
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
426
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
426
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
426
        DCHECK(!(left_is_const && right_is_const));
282
283
426
        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
426
        } else if (!left_is_const && right_is_const) {
295
426
            auto col_res = ColumnUInt8::create();
296
297
426
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
426
            vec_res.resize(col_left->size());
299
426
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
426
                              typename PrimitiveTypeTraits<PT>::CppType,
301
426
                              Op<PT>>::vector_constant(col_left->get_data(),
302
426
                                                       col_right->get_element(0), vec_res);
303
304
426
            block.replace_by_position(result, std::move(col_res));
305
426
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
426
        return Status::OK();
318
426
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
10.8k
                            const ColumnPtr& col_right_ptr) const {
275
10.8k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
10.8k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
10.8k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
10.8k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
10.8k
        DCHECK(!(left_is_const && right_is_const));
282
283
10.8k
        if (!left_is_const && !right_is_const) {
284
406
            auto col_res = ColumnUInt8::create();
285
286
406
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
406
            vec_res.resize(col_left->get_data().size());
288
406
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
406
                              typename PrimitiveTypeTraits<PT>::CppType,
290
406
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
406
                                                     vec_res);
292
293
406
            block.replace_by_position(result, std::move(col_res));
294
10.4k
        } else if (!left_is_const && right_is_const) {
295
10.4k
            auto col_res = ColumnUInt8::create();
296
297
10.4k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10.4k
            vec_res.resize(col_left->size());
299
10.4k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10.4k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10.4k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10.4k
                                                       col_right->get_element(0), vec_res);
303
304
10.4k
            block.replace_by_position(result, std::move(col_res));
305
10.4k
        } else if (left_is_const && !right_is_const) {
306
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
10.8k
        return Status::OK();
318
10.8k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
625
                            const ColumnPtr& col_right_ptr) const {
275
625
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
625
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
625
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
625
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
625
        DCHECK(!(left_is_const && right_is_const));
282
283
625
        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
625
        } else if (!left_is_const && right_is_const) {
295
625
            auto col_res = ColumnUInt8::create();
296
297
625
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
625
            vec_res.resize(col_left->size());
299
625
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
625
                              typename PrimitiveTypeTraits<PT>::CppType,
301
625
                              Op<PT>>::vector_constant(col_left->get_data(),
302
625
                                                       col_right->get_element(0), vec_res);
303
304
625
            block.replace_by_position(result, std::move(col_res));
305
625
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
625
        return Status::OK();
318
625
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_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_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
298
                            const ColumnPtr& col_right_ptr) const {
275
298
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
298
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
298
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
298
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
298
        DCHECK(!(left_is_const && right_is_const));
282
283
298
        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
297
        } else if (!left_is_const && right_is_const) {
295
297
            auto col_res = ColumnUInt8::create();
296
297
297
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
297
            vec_res.resize(col_left->size());
299
297
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
297
                              typename PrimitiveTypeTraits<PT>::CppType,
301
297
                              Op<PT>>::vector_constant(col_left->get_data(),
302
297
                                                       col_right->get_element(0), vec_res);
303
304
297
            block.replace_by_position(result, std::move(col_res));
305
297
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
298
        return Status::OK();
318
298
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
323
                            const ColumnPtr& col_right_ptr) const {
275
323
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
323
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
323
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
323
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
323
        DCHECK(!(left_is_const && right_is_const));
282
283
323
        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
323
        } else if (!left_is_const && right_is_const) {
295
323
            auto col_res = ColumnUInt8::create();
296
297
323
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
323
            vec_res.resize(col_left->size());
299
323
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
323
                              typename PrimitiveTypeTraits<PT>::CppType,
301
323
                              Op<PT>>::vector_constant(col_left->get_data(),
302
323
                                                       col_right->get_element(0), vec_res);
303
304
323
            block.replace_by_position(result, std::move(col_res));
305
323
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
323
        return Status::OK();
318
323
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
20.9k
                            const ColumnPtr& col_right_ptr) const {
275
20.9k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
20.9k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
20.9k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
20.9k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
20.9k
        DCHECK(!(left_is_const && right_is_const));
282
283
20.9k
        if (!left_is_const && !right_is_const) {
284
23
            auto col_res = ColumnUInt8::create();
285
286
23
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
23
            vec_res.resize(col_left->get_data().size());
288
23
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
23
                              typename PrimitiveTypeTraits<PT>::CppType,
290
23
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
23
                                                     vec_res);
292
293
23
            block.replace_by_position(result, std::move(col_res));
294
20.9k
        } else if (!left_is_const && right_is_const) {
295
20.3k
            auto col_res = ColumnUInt8::create();
296
297
20.3k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
20.3k
            vec_res.resize(col_left->size());
299
20.3k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
20.3k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
20.3k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
20.3k
                                                       col_right->get_element(0), vec_res);
303
304
20.3k
            block.replace_by_position(result, std::move(col_res));
305
20.3k
        } else if (left_is_const && !right_is_const) {
306
575
            auto col_res = ColumnUInt8::create();
307
308
575
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
575
            vec_res.resize(col_right->size());
310
575
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
575
                              typename PrimitiveTypeTraits<PT>::CppType,
312
575
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
575
                                                       col_right->get_data(), vec_res);
314
315
575
            block.replace_by_position(result, std::move(col_res));
316
575
        }
317
20.9k
        return Status::OK();
318
20.9k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
987
                            const ColumnPtr& col_right_ptr) const {
275
987
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
987
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
987
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
987
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
987
        DCHECK(!(left_is_const && right_is_const));
282
283
987
        if (!left_is_const && !right_is_const) {
284
30
            auto col_res = ColumnUInt8::create();
285
286
30
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
30
            vec_res.resize(col_left->get_data().size());
288
30
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
30
                              typename PrimitiveTypeTraits<PT>::CppType,
290
30
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
30
                                                     vec_res);
292
293
30
            block.replace_by_position(result, std::move(col_res));
294
957
        } else if (!left_is_const && right_is_const) {
295
909
            auto col_res = ColumnUInt8::create();
296
297
909
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
909
            vec_res.resize(col_left->size());
299
909
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
909
                              typename PrimitiveTypeTraits<PT>::CppType,
301
909
                              Op<PT>>::vector_constant(col_left->get_data(),
302
909
                                                       col_right->get_element(0), vec_res);
303
304
909
            block.replace_by_position(result, std::move(col_res));
305
909
        } else if (left_is_const && !right_is_const) {
306
48
            auto col_res = ColumnUInt8::create();
307
308
48
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
48
            vec_res.resize(col_right->size());
310
48
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
48
                              typename PrimitiveTypeTraits<PT>::CppType,
312
48
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
48
                                                       col_right->get_data(), vec_res);
314
315
48
            block.replace_by_position(result, std::move(col_res));
316
48
        }
317
987
        return Status::OK();
318
987
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
59
                            const ColumnPtr& col_right_ptr) const {
275
59
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
59
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
59
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
59
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
59
        DCHECK(!(left_is_const && right_is_const));
282
283
59
        if (!left_is_const && !right_is_const) {
284
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
59
        } else if (!left_is_const && right_is_const) {
295
59
            auto col_res = ColumnUInt8::create();
296
297
59
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
59
            vec_res.resize(col_left->size());
299
59
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
59
                              typename PrimitiveTypeTraits<PT>::CppType,
301
59
                              Op<PT>>::vector_constant(col_left->get_data(),
302
59
                                                       col_right->get_element(0), vec_res);
303
304
59
            block.replace_by_position(result, std::move(col_res));
305
59
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
59
        return Status::OK();
318
59
    }
_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
224
                            const ColumnPtr& col_right_ptr) const {
275
224
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
224
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
224
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
224
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
224
        DCHECK(!(left_is_const && right_is_const));
282
283
224
        if (!left_is_const && !right_is_const) {
284
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
204
        } else if (!left_is_const && right_is_const) {
295
204
            auto col_res = ColumnUInt8::create();
296
297
204
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
204
            vec_res.resize(col_left->size());
299
204
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
204
                              typename PrimitiveTypeTraits<PT>::CppType,
301
204
                              Op<PT>>::vector_constant(col_left->get_data(),
302
204
                                                       col_right->get_element(0), vec_res);
303
304
204
            block.replace_by_position(result, std::move(col_res));
305
204
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
224
        return Status::OK();
318
224
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_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
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
140
        } else if (!left_is_const && right_is_const) {
295
139
            auto col_res = ColumnUInt8::create();
296
297
139
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
139
            vec_res.resize(col_left->size());
299
139
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
139
                              typename PrimitiveTypeTraits<PT>::CppType,
301
139
                              Op<PT>>::vector_constant(col_left->get_data(),
302
139
                                                       col_right->get_element(0), vec_res);
303
304
139
            block.replace_by_position(result, std::move(col_res));
305
139
        } else if (left_is_const && !right_is_const) {
306
1
            auto col_res = ColumnUInt8::create();
307
308
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
1
            vec_res.resize(col_right->size());
310
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
1
                              typename PrimitiveTypeTraits<PT>::CppType,
312
1
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
1
                                                       col_right->get_data(), vec_res);
314
315
1
            block.replace_by_position(result, std::move(col_res));
316
1
        }
317
160
        return Status::OK();
318
160
    }
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
152k
                           const ColumnWithTypeAndName& col_right) const {
322
152k
        auto call = [&](const auto& type) -> bool {
323
152k
            using DispatchType = std::decay_t<decltype(type)>;
324
152k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
152k
                    block, result, col_left, col_right);
326
152k
            return true;
327
152k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
235
        auto call = [&](const auto& type) -> bool {
323
235
            using DispatchType = std::decay_t<decltype(type)>;
324
235
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
235
                    block, result, col_left, col_right);
326
235
            return true;
327
235
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
276
        auto call = [&](const auto& type) -> bool {
323
276
            using DispatchType = std::decay_t<decltype(type)>;
324
276
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
276
                    block, result, col_left, col_right);
326
276
            return true;
327
276
        };
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.14k
        auto call = [&](const auto& type) -> bool {
323
1.14k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.14k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.14k
                    block, result, col_left, col_right);
326
1.14k
            return true;
327
1.14k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
30
        auto call = [&](const auto& type) -> bool {
323
30
            using DispatchType = std::decay_t<decltype(type)>;
324
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
30
                    block, result, col_left, col_right);
326
30
            return true;
327
30
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
61
        auto call = [&](const auto& type) -> bool {
323
61
            using DispatchType = std::decay_t<decltype(type)>;
324
61
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
61
                    block, result, col_left, col_right);
326
61
            return true;
327
61
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSB_
Line
Count
Source
322
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
46
        auto call = [&](const auto& type) -> bool {
323
46
            using DispatchType = std::decay_t<decltype(type)>;
324
46
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
46
                    block, result, col_left, col_right);
326
46
            return true;
327
46
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
1.59k
        auto call = [&](const auto& type) -> bool {
323
1.59k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.59k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.59k
                    block, result, col_left, col_right);
326
1.59k
            return true;
327
1.59k
        };
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.42k
        auto call = [&](const auto& type) -> bool {
323
1.42k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.42k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.42k
                    block, result, col_left, col_right);
326
1.42k
            return true;
327
1.42k
        };
_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
9
        auto call = [&](const auto& type) -> bool {
323
9
            using DispatchType = std::decay_t<decltype(type)>;
324
9
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
9
                    block, result, col_left, col_right);
326
9
            return true;
327
9
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
364
        auto call = [&](const auto& type) -> bool {
323
364
            using DispatchType = std::decay_t<decltype(type)>;
324
364
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
364
                    block, result, col_left, col_right);
326
364
            return true;
327
364
        };
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
81
        auto call = [&](const auto& type) -> bool {
323
81
            using DispatchType = std::decay_t<decltype(type)>;
324
81
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
81
                    block, result, col_left, col_right);
326
81
            return true;
327
81
        };
_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
211
        auto call = [&](const auto& type) -> bool {
323
211
            using DispatchType = std::decay_t<decltype(type)>;
324
211
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
211
                    block, result, col_left, col_right);
326
211
            return true;
327
211
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
261
        auto call = [&](const auto& type) -> bool {
323
261
            using DispatchType = std::decay_t<decltype(type)>;
324
261
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
261
                    block, result, col_left, col_right);
326
261
            return true;
327
261
        };
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
655
        auto call = [&](const auto& type) -> bool {
323
655
            using DispatchType = std::decay_t<decltype(type)>;
324
655
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
655
                    block, result, col_left, col_right);
326
655
            return true;
327
655
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
1
        auto call = [&](const auto& type) -> bool {
323
1
            using DispatchType = std::decay_t<decltype(type)>;
324
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1
                    block, result, col_left, col_right);
326
1
            return true;
327
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
7
        auto call = [&](const auto& type) -> bool {
323
7
            using DispatchType = std::decay_t<decltype(type)>;
324
7
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
7
                    block, result, col_left, col_right);
326
7
            return true;
327
7
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
145k
        auto call = [&](const auto& type) -> bool {
323
145k
            using DispatchType = std::decay_t<decltype(type)>;
324
145k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
145k
                    block, result, col_left, col_right);
326
145k
            return true;
327
145k
        };
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
851
        auto call = [&](const auto& type) -> bool {
323
851
            using DispatchType = std::decay_t<decltype(type)>;
324
851
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
851
                    block, result, col_left, col_right);
326
851
            return true;
327
851
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_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
        };
328
329
152k
        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
152k
        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
152k
        return Status::OK();
340
152k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.68k
                           const ColumnWithTypeAndName& col_right) const {
322
1.68k
        auto call = [&](const auto& type) -> bool {
323
1.68k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.68k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.68k
                    block, result, col_left, col_right);
326
1.68k
            return true;
327
1.68k
        };
328
329
1.68k
        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.68k
        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.68k
        return Status::OK();
340
1.68k
    }
_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
3.06k
                           const ColumnWithTypeAndName& col_right) const {
322
3.06k
        auto call = [&](const auto& type) -> bool {
323
3.06k
            using DispatchType = std::decay_t<decltype(type)>;
324
3.06k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
3.06k
                    block, result, col_left, col_right);
326
3.06k
            return true;
327
3.06k
        };
328
329
3.06k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
3.06k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
3.06k
        return Status::OK();
340
3.06k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
481
                           const ColumnWithTypeAndName& col_right) const {
322
481
        auto call = [&](const auto& type) -> bool {
323
481
            using DispatchType = std::decay_t<decltype(type)>;
324
481
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
481
                    block, result, col_left, col_right);
326
481
            return true;
327
481
        };
328
329
481
        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
481
        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
481
        return Status::OK();
340
481
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.12k
                           const ColumnWithTypeAndName& col_right) const {
322
1.12k
        auto call = [&](const auto& type) -> bool {
323
1.12k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.12k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.12k
                    block, result, col_left, col_right);
326
1.12k
            return true;
327
1.12k
        };
328
329
1.12k
        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.12k
        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.12k
        return Status::OK();
340
1.12k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
146k
                           const ColumnWithTypeAndName& col_right) const {
322
146k
        auto call = [&](const auto& type) -> bool {
323
146k
            using DispatchType = std::decay_t<decltype(type)>;
324
146k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
146k
                    block, result, col_left, col_right);
326
146k
            return true;
327
146k
        };
328
329
146k
        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
146k
        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
146k
        return Status::OK();
340
146k
    }
341
342
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
343
27.6k
                          const IColumn* c1) const {
344
27.6k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
27.6k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
27.6k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
27.6k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
27.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
27.6k
        DCHECK(!(c0_const && c1_const));
353
27.6k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
27.6k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
27.6k
        ColumnString::Offset c0_const_size = 0;
356
27.6k
        ColumnString::Offset c1_const_size = 0;
357
358
27.6k
        if (c0_const) {
359
6
            const ColumnString* c0_const_string =
360
6
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
6
            if (c0_const_string) {
363
6
                c0_const_chars = &c0_const_string->get_chars();
364
6
                c0_const_size = c0_const_string->get_offsets()[0];
365
6
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
6
        }
370
371
27.6k
        if (c1_const) {
372
26.7k
            const ColumnString* c1_const_string =
373
26.7k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
26.7k
            if (c1_const_string) {
376
26.7k
                c1_const_chars = &c1_const_string->get_chars();
377
26.7k
                c1_const_size = c1_const_string->get_offsets()[0];
378
26.7k
            } else {
379
1
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
1
                                            c1->get_name(), name);
381
1
            }
382
26.7k
        }
383
384
27.6k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
27.6k
        auto c_res = ColumnUInt8::create();
387
27.6k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
27.6k
        vec_res.resize(c0->size());
389
390
27.6k
        if (c0_string && c1_string) {
391
928
            StringImpl::string_vector_string_vector(
392
928
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
928
                    c1_string->get_offsets(), vec_res);
394
26.7k
        } else if (c0_string && c1_const) {
395
26.7k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
26.7k
                                               *c1_const_chars, c1_const_size, vec_res);
397
26.7k
        } else if (c0_const && c1_string) {
398
6
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
6
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
6
                                               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
27.6k
        block.replace_by_position(result, std::move(c_res));
406
27.6k
        return Status::OK();
407
27.6k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
22.3k
                          const IColumn* c1) const {
344
22.3k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
22.3k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
22.3k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
22.3k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
22.3k
        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
22.3k
        DCHECK(!(c0_const && c1_const));
353
22.3k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
22.3k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
22.3k
        ColumnString::Offset c0_const_size = 0;
356
22.3k
        ColumnString::Offset c1_const_size = 0;
357
358
22.3k
        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
22.3k
        if (c1_const) {
372
21.9k
            const ColumnString* c1_const_string =
373
21.9k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
21.9k
            if (c1_const_string) {
376
21.9k
                c1_const_chars = &c1_const_string->get_chars();
377
21.9k
                c1_const_size = c1_const_string->get_offsets()[0];
378
21.9k
            } else {
379
1
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
1
                                            c1->get_name(), name);
381
1
            }
382
21.9k
        }
383
384
22.3k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
22.3k
        auto c_res = ColumnUInt8::create();
387
22.3k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
22.3k
        vec_res.resize(c0->size());
389
390
22.3k
        if (c0_string && c1_string) {
391
444
            StringImpl::string_vector_string_vector(
392
444
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
444
                    c1_string->get_offsets(), vec_res);
394
21.9k
        } else if (c0_string && c1_const) {
395
21.9k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
21.9k
                                               *c1_const_chars, c1_const_size, vec_res);
397
18.4E
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
18.4E
        } else {
402
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
18.4E
                                        c0->get_name(), c1->get_name(), name);
404
18.4E
        }
405
22.3k
        block.replace_by_position(result, std::move(c_res));
406
22.3k
        return Status::OK();
407
22.3k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
1.51k
                          const IColumn* c1) const {
344
1.51k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
1.51k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
1.51k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
1.51k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
1.51k
        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.51k
        DCHECK(!(c0_const && c1_const));
353
1.51k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
1.51k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
1.51k
        ColumnString::Offset c0_const_size = 0;
356
1.51k
        ColumnString::Offset c1_const_size = 0;
357
358
1.51k
        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.51k
        if (c1_const) {
372
1.51k
            const ColumnString* c1_const_string =
373
1.51k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
1.51k
            if (c1_const_string) {
376
1.51k
                c1_const_chars = &c1_const_string->get_chars();
377
1.51k
                c1_const_size = c1_const_string->get_offsets()[0];
378
1.51k
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
1.51k
        }
383
384
1.51k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
1.51k
        auto c_res = ColumnUInt8::create();
387
1.51k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
1.51k
        vec_res.resize(c0->size());
389
390
1.51k
        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.51k
        } else if (c0_string && c1_const) {
395
1.51k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
1.51k
                                               *c1_const_chars, c1_const_size, vec_res);
397
1.51k
        } 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.51k
        block.replace_by_position(result, std::move(c_res));
406
1.51k
        return Status::OK();
407
1.51k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
203
                          const IColumn* c1) const {
344
203
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
203
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
203
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
203
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
203
        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
203
        DCHECK(!(c0_const && c1_const));
353
203
        const ColumnString::Chars* c0_const_chars = nullptr;
354
203
        const ColumnString::Chars* c1_const_chars = nullptr;
355
203
        ColumnString::Offset c0_const_size = 0;
356
203
        ColumnString::Offset c1_const_size = 0;
357
358
203
        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
203
        if (c1_const) {
372
201
            const ColumnString* c1_const_string =
373
201
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
201
            if (c1_const_string) {
376
201
                c1_const_chars = &c1_const_string->get_chars();
377
201
                c1_const_size = c1_const_string->get_offsets()[0];
378
201
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
201
        }
383
384
203
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
203
        auto c_res = ColumnUInt8::create();
387
203
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
203
        vec_res.resize(c0->size());
389
390
203
        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
201
        } else if (c0_string && c1_const) {
395
201
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
201
                                               *c1_const_chars, c1_const_size, vec_res);
397
201
        } 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
203
        block.replace_by_position(result, std::move(c_res));
406
203
        return Status::OK();
407
203
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
757
                          const IColumn* c1) const {
344
757
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
757
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
757
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
757
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
757
        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
757
        DCHECK(!(c0_const && c1_const));
353
757
        const ColumnString::Chars* c0_const_chars = nullptr;
354
757
        const ColumnString::Chars* c1_const_chars = nullptr;
355
757
        ColumnString::Offset c0_const_size = 0;
356
757
        ColumnString::Offset c1_const_size = 0;
357
358
757
        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
757
        if (c1_const) {
372
721
            const ColumnString* c1_const_string =
373
721
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
721
            if (c1_const_string) {
376
721
                c1_const_chars = &c1_const_string->get_chars();
377
721
                c1_const_size = c1_const_string->get_offsets()[0];
378
721
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
721
        }
383
384
757
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
757
        auto c_res = ColumnUInt8::create();
387
757
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
757
        vec_res.resize(c0->size());
389
390
757
        if (c0_string && c1_string) {
391
36
            StringImpl::string_vector_string_vector(
392
36
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
36
                    c1_string->get_offsets(), vec_res);
394
721
        } else if (c0_string && c1_const) {
395
721
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
721
                                               *c1_const_chars, c1_const_size, vec_res);
397
721
        } 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
757
        block.replace_by_position(result, std::move(c_res));
406
757
        return Status::OK();
407
757
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
715
                          const IColumn* c1) const {
344
715
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
715
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
715
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
715
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
715
        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
715
        DCHECK(!(c0_const && c1_const));
353
715
        const ColumnString::Chars* c0_const_chars = nullptr;
354
715
        const ColumnString::Chars* c1_const_chars = nullptr;
355
715
        ColumnString::Offset c0_const_size = 0;
356
715
        ColumnString::Offset c1_const_size = 0;
357
358
715
        if (c0_const) {
359
6
            const ColumnString* c0_const_string =
360
6
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
6
            if (c0_const_string) {
363
6
                c0_const_chars = &c0_const_string->get_chars();
364
6
                c0_const_size = c0_const_string->get_offsets()[0];
365
6
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
6
        }
370
371
715
        if (c1_const) {
372
265
            const ColumnString* c1_const_string =
373
265
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
265
            if (c1_const_string) {
376
265
                c1_const_chars = &c1_const_string->get_chars();
377
265
                c1_const_size = c1_const_string->get_offsets()[0];
378
265
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
265
        }
383
384
715
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
715
        auto c_res = ColumnUInt8::create();
387
715
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
715
        vec_res.resize(c0->size());
389
390
715
        if (c0_string && c1_string) {
391
445
            StringImpl::string_vector_string_vector(
392
445
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
445
                    c1_string->get_offsets(), vec_res);
394
445
        } else if (c0_string && c1_const) {
395
265
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
265
                                               *c1_const_chars, c1_const_size, vec_res);
397
265
        } else if (c0_const && c1_string) {
398
6
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
6
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
6
                                               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
716
        block.replace_by_position(result, std::move(c_res));
406
716
        return Status::OK();
407
715
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
2.08k
                          const IColumn* c1) const {
344
2.08k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
2.08k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
2.08k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
2.08k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
2.08k
        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
2.08k
        DCHECK(!(c0_const && c1_const));
353
2.08k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
2.08k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
2.08k
        ColumnString::Offset c0_const_size = 0;
356
2.08k
        ColumnString::Offset c1_const_size = 0;
357
358
2.08k
        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
2.08k
        if (c1_const) {
372
2.08k
            const ColumnString* c1_const_string =
373
2.08k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
2.08k
            if (c1_const_string) {
376
2.08k
                c1_const_chars = &c1_const_string->get_chars();
377
2.08k
                c1_const_size = c1_const_string->get_offsets()[0];
378
2.08k
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
2.08k
        }
383
384
2.08k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
2.08k
        auto c_res = ColumnUInt8::create();
387
2.08k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
2.08k
        vec_res.resize(c0->size());
389
390
2.08k
        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
2.08k
        } else if (c0_string && c1_const) {
395
2.08k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
2.08k
                                               *c1_const_chars, c1_const_size, vec_res);
397
2.08k
        } 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
2.08k
        block.replace_by_position(result, std::move(c_res));
406
2.08k
        return Status::OK();
407
2.08k
    }
408
409
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
410
175
                                         const IColumn* c1) const {
411
175
        bool c0_const = is_column_const(*c0);
412
175
        bool c1_const = is_column_const(*c1);
413
414
175
        DCHECK(!(c0_const && c1_const));
415
416
175
        auto c_res = ColumnUInt8::create();
417
175
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
175
        vec_res.resize(c0->size());
419
420
175
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
175
        } else if (c1_const) {
423
166
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
166
        } else {
425
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
9
        }
427
428
175
        block.replace_by_position(result, std::move(c_res));
429
175
    }
_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
85
                                         const IColumn* c1) const {
411
85
        bool c0_const = is_column_const(*c0);
412
85
        bool c1_const = is_column_const(*c1);
413
414
85
        DCHECK(!(c0_const && c1_const));
415
416
85
        auto c_res = ColumnUInt8::create();
417
85
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
85
        vec_res.resize(c0->size());
419
420
85
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
85
        } else if (c1_const) {
423
84
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
84
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
85
        block.replace_by_position(result, std::move(c_res));
429
85
    }
_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
45
                                         const IColumn* c1) const {
411
45
        bool c0_const = is_column_const(*c0);
412
45
        bool c1_const = is_column_const(*c1);
413
414
45
        DCHECK(!(c0_const && c1_const));
415
416
45
        auto c_res = ColumnUInt8::create();
417
45
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
45
        vec_res.resize(c0->size());
419
420
45
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
45
        } else if (c1_const) {
423
45
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
45
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
45
        block.replace_by_position(result, std::move(c_res));
429
45
    }
430
431
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
432
175
                           const ColumnWithTypeAndName& c1) const {
433
175
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
175
        return Status::OK();
435
175
    }
_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
85
                           const ColumnWithTypeAndName& c1) const {
433
85
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
85
        return Status::OK();
435
85
    }
_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
45
                           const ColumnWithTypeAndName& c1) const {
433
45
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
45
        return Status::OK();
435
45
    }
436
437
public:
438
214
    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
33
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
438
35
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
81
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
438
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
1
    String get_name() const override { return name; }
439
440
470k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
434k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
1.37k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
440
6.39k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
10.3k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
440
3.48k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
14.2k
    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
470k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
470k
        return std::make_shared<DataTypeUInt8>();
445
470k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
434k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
434k
        return std::make_shared<DataTypeUInt8>();
445
434k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
1.37k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
1.37k
        return std::make_shared<DataTypeUInt8>();
445
1.37k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
6.39k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
6.39k
        return std::make_shared<DataTypeUInt8>();
445
6.39k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
10.3k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
10.3k
        return std::make_shared<DataTypeUInt8>();
445
10.3k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
3.48k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
3.48k
        return std::make_shared<DataTypeUInt8>();
445
3.48k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
14.2k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
14.2k
        return std::make_shared<DataTypeUInt8>();
445
14.2k
    }
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.78k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
1.78k
        DCHECK(arguments.size() == 1);
454
1.78k
        DCHECK(data_type_with_names.size() == 1);
455
1.78k
        DCHECK(iterators.size() == 1);
456
1.78k
        auto* iter = iterators[0];
457
1.78k
        auto data_type_with_name = data_type_with_names[0];
458
1.78k
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
1.78k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
444
            return Status::OK();
463
444
        }
464
1.33k
        segment_v2::InvertedIndexQueryType query_type;
465
1.33k
        std::string_view name_view(name);
466
1.33k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
885
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
885
        } else if (name_view == NameLess::name) {
469
111
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
340
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
242
        } else if (name_view == NameGreater::name) {
473
114
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
135
        } else if (name_view == NameGreaterOrEquals::name) {
475
135
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
1.34k
        if (segment_v2::is_range_query(query_type) &&
481
1.34k
            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.17k
        Field param_value;
486
1.17k
        arguments[0].column->get(0, param_value);
487
1.17k
        if (param_value.is_null()) {
488
2
            return Status::OK();
489
2
        }
490
1.17k
        segment_v2::InvertedIndexParam param;
491
1.17k
        param.column_name = data_type_with_name.first;
492
1.17k
        param.column_type = data_type_with_name.second;
493
1.17k
        param.query_value = param_value;
494
1.17k
        param.query_type = query_type;
495
1.17k
        param.num_rows = num_rows;
496
1.17k
        param.roaring = std::make_shared<roaring::Roaring>();
497
1.17k
        param.analyzer_ctx = analyzer_ctx;
498
1.17k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
1.00k
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
1.00k
        if (iter->has_null()) {
501
1.00k
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
1.00k
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
1.00k
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
1.00k
        }
505
1.00k
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
1.00k
        bitmap_result = result;
507
1.00k
        bitmap_result.mask_out_null();
508
509
1.00k
        if (name_view == NameNotEquals::name) {
510
60
            roaring::Roaring full_result;
511
60
            full_result.addRange(0, num_rows);
512
60
            bitmap_result.op_not(&full_result);
513
60
        }
514
515
1.00k
        return Status::OK();
516
1.00k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
897
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
897
        DCHECK(arguments.size() == 1);
454
897
        DCHECK(data_type_with_names.size() == 1);
455
897
        DCHECK(iterators.size() == 1);
456
897
        auto* iter = iterators[0];
457
897
        auto data_type_with_name = data_type_with_names[0];
458
897
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
897
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
87
            return Status::OK();
463
87
        }
464
810
        segment_v2::InvertedIndexQueryType query_type;
465
810
        std::string_view name_view(name);
466
815
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
815
            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
815
        if (segment_v2::is_range_query(query_type) &&
481
815
            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
815
        Field param_value;
486
815
        arguments[0].column->get(0, param_value);
487
815
        if (param_value.is_null()) {
488
2
            return Status::OK();
489
2
        }
490
813
        segment_v2::InvertedIndexParam param;
491
813
        param.column_name = data_type_with_name.first;
492
813
        param.column_type = data_type_with_name.second;
493
813
        param.query_value = param_value;
494
813
        param.query_type = query_type;
495
813
        param.num_rows = num_rows;
496
813
        param.roaring = std::make_shared<roaring::Roaring>();
497
813
        param.analyzer_ctx = analyzer_ctx;
498
813
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
757
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
758
        if (iter->has_null()) {
501
758
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
758
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
758
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
758
        }
505
757
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
757
        bitmap_result = result;
507
757
        bitmap_result.mask_out_null();
508
509
757
        if (name_view == NameNotEquals::name) {
510
0
            roaring::Roaring full_result;
511
0
            full_result.addRange(0, num_rows);
512
0
            bitmap_result.op_not(&full_result);
513
0
        }
514
515
757
        return Status::OK();
516
757
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
78
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
78
        DCHECK(arguments.size() == 1);
454
78
        DCHECK(data_type_with_names.size() == 1);
455
78
        DCHECK(iterators.size() == 1);
456
78
        auto* iter = iterators[0];
457
78
        auto data_type_with_name = data_type_with_names[0];
458
78
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
78
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
8
            return Status::OK();
463
8
        }
464
70
        segment_v2::InvertedIndexQueryType query_type;
465
70
        std::string_view name_view(name);
466
70
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
70
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
70
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
0
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
0
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
0
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
70
        if (segment_v2::is_range_query(query_type) &&
481
70
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
0
            return Status::OK();
484
0
        }
485
70
        Field param_value;
486
70
        arguments[0].column->get(0, param_value);
487
70
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
70
        segment_v2::InvertedIndexParam param;
491
70
        param.column_name = data_type_with_name.first;
492
70
        param.column_type = data_type_with_name.second;
493
70
        param.query_value = param_value;
494
70
        param.query_type = query_type;
495
70
        param.num_rows = num_rows;
496
70
        param.roaring = std::make_shared<roaring::Roaring>();
497
70
        param.analyzer_ctx = analyzer_ctx;
498
70
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
63
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
63
        if (iter->has_null()) {
501
63
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
63
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
63
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
63
        }
505
63
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
63
        bitmap_result = result;
507
63
        bitmap_result.mask_out_null();
508
509
63
        if (name_view == NameNotEquals::name) {
510
60
            roaring::Roaring full_result;
511
60
            full_result.addRange(0, num_rows);
512
60
            bitmap_result.op_not(&full_result);
513
60
        }
514
515
63
        return Status::OK();
516
63
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
175
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
175
        DCHECK(arguments.size() == 1);
454
175
        DCHECK(data_type_with_names.size() == 1);
455
175
        DCHECK(iterators.size() == 1);
456
175
        auto* iter = iterators[0];
457
175
        auto data_type_with_name = data_type_with_names[0];
458
175
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
175
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
62
            return Status::OK();
463
62
        }
464
113
        segment_v2::InvertedIndexQueryType query_type;
465
113
        std::string_view name_view(name);
466
114
        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
114
        } else if (name_view == NameGreater::name) {
473
114
            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
114
        if (segment_v2::is_range_query(query_type) &&
481
114
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
28
            return Status::OK();
484
28
        }
485
86
        Field param_value;
486
86
        arguments[0].column->get(0, param_value);
487
86
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
86
        segment_v2::InvertedIndexParam param;
491
86
        param.column_name = data_type_with_name.first;
492
86
        param.column_type = data_type_with_name.second;
493
86
        param.query_value = param_value;
494
86
        param.query_type = query_type;
495
86
        param.num_rows = num_rows;
496
86
        param.roaring = std::make_shared<roaring::Roaring>();
497
86
        param.analyzer_ctx = analyzer_ctx;
498
86
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
67
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
67
        if (iter->has_null()) {
501
67
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
67
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
67
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
67
        }
505
67
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
67
        bitmap_result = result;
507
67
        bitmap_result.mask_out_null();
508
509
67
        if (name_view == NameNotEquals::name) {
510
0
            roaring::Roaring full_result;
511
0
            full_result.addRange(0, num_rows);
512
0
            bitmap_result.op_not(&full_result);
513
0
        }
514
515
67
        return Status::OK();
516
67
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
248
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
248
        DCHECK(arguments.size() == 1);
454
248
        DCHECK(data_type_with_names.size() == 1);
455
248
        DCHECK(iterators.size() == 1);
456
248
        auto* iter = iterators[0];
457
248
        auto data_type_with_name = data_type_with_names[0];
458
248
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
248
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
114
            return Status::OK();
463
114
        }
464
134
        segment_v2::InvertedIndexQueryType query_type;
465
134
        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
134
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
134
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
134
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
135
        } else if (name_view == NameGreaterOrEquals::name) {
475
135
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
135
        if (segment_v2::is_range_query(query_type) &&
481
135
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
59
            return Status::OK();
484
59
        }
485
76
        Field param_value;
486
76
        arguments[0].column->get(0, param_value);
487
76
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
76
        segment_v2::InvertedIndexParam param;
491
76
        param.column_name = data_type_with_name.first;
492
76
        param.column_type = data_type_with_name.second;
493
76
        param.query_value = param_value;
494
76
        param.query_type = query_type;
495
76
        param.num_rows = num_rows;
496
76
        param.roaring = std::make_shared<roaring::Roaring>();
497
76
        param.analyzer_ctx = analyzer_ctx;
498
76
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
34
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
34
        if (iter->has_null()) {
501
34
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
34
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
34
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
34
        }
505
34
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
34
        bitmap_result = result;
507
34
        bitmap_result.mask_out_null();
508
509
34
        if (name_view == NameNotEquals::name) {
510
0
            roaring::Roaring full_result;
511
0
            full_result.addRange(0, num_rows);
512
0
            bitmap_result.op_not(&full_result);
513
0
        }
514
515
34
        return Status::OK();
516
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
171
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
171
        DCHECK(arguments.size() == 1);
454
171
        DCHECK(data_type_with_names.size() == 1);
455
171
        DCHECK(iterators.size() == 1);
456
171
        auto* iter = iterators[0];
457
171
        auto data_type_with_name = data_type_with_names[0];
458
171
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
171
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
60
            return Status::OK();
463
60
        }
464
111
        segment_v2::InvertedIndexQueryType query_type;
465
111
        std::string_view name_view(name);
466
111
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
111
        } else if (name_view == NameLess::name) {
469
111
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
111
        } 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
111
        if (segment_v2::is_range_query(query_type) &&
481
111
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
26
            return Status::OK();
484
26
        }
485
85
        Field param_value;
486
85
        arguments[0].column->get(0, param_value);
487
85
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
85
        segment_v2::InvertedIndexParam param;
491
85
        param.column_name = data_type_with_name.first;
492
85
        param.column_type = data_type_with_name.second;
493
85
        param.query_value = param_value;
494
85
        param.query_type = query_type;
495
85
        param.num_rows = num_rows;
496
85
        param.roaring = std::make_shared<roaring::Roaring>();
497
85
        param.analyzer_ctx = analyzer_ctx;
498
85
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
66
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
66
        if (iter->has_null()) {
501
66
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
66
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
66
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
66
        }
505
66
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
66
        bitmap_result = result;
507
66
        bitmap_result.mask_out_null();
508
509
66
        if (name_view == NameNotEquals::name) {
510
0
            roaring::Roaring full_result;
511
0
            full_result.addRange(0, num_rows);
512
0
            bitmap_result.op_not(&full_result);
513
0
        }
514
515
66
        return Status::OK();
516
66
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
211
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
211
        DCHECK(arguments.size() == 1);
454
211
        DCHECK(data_type_with_names.size() == 1);
455
211
        DCHECK(iterators.size() == 1);
456
211
        auto* iter = iterators[0];
457
211
        auto data_type_with_name = data_type_with_names[0];
458
211
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
211
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
113
            return Status::OK();
463
113
        }
464
98
        segment_v2::InvertedIndexQueryType query_type;
465
98
        std::string_view name_view(name);
466
98
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
98
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
98
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
98
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
0
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
98
        if (segment_v2::is_range_query(query_type) &&
481
98
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
58
            return Status::OK();
484
58
        }
485
40
        Field param_value;
486
40
        arguments[0].column->get(0, param_value);
487
40
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
40
        segment_v2::InvertedIndexParam param;
491
40
        param.column_name = data_type_with_name.first;
492
40
        param.column_type = data_type_with_name.second;
493
40
        param.query_value = param_value;
494
40
        param.query_type = query_type;
495
40
        param.num_rows = num_rows;
496
40
        param.roaring = std::make_shared<roaring::Roaring>();
497
40
        param.analyzer_ctx = analyzer_ctx;
498
40
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
19
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
19
        if (iter->has_null()) {
501
19
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
19
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
19
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
19
        }
505
19
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
19
        bitmap_result = result;
507
19
        bitmap_result.mask_out_null();
508
509
19
        if (name_view == NameNotEquals::name) {
510
0
            roaring::Roaring full_result;
511
0
            full_result.addRange(0, num_rows);
512
0
            bitmap_result.op_not(&full_result);
513
0
        }
514
515
19
        return Status::OK();
516
19
    }
517
518
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
519
425k
                        uint32_t result, size_t input_rows_count) const override {
520
425k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
425k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
425k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
425k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
425k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
425k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
425k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
425k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
425k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
425k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
0
                block.get_by_position(result).column =
542
0
                        DataTypeUInt8()
543
0
                                .create_column_const(input_rows_count,
544
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
0
                                ->convert_to_full_column_if_const();
546
0
                return Status::OK();
547
0
            } else {
548
0
                block.get_by_position(result).column =
549
0
                        DataTypeUInt8()
550
0
                                .create_column_const(input_rows_count,
551
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
0
                                ->convert_to_full_column_if_const();
553
0
                return Status::OK();
554
0
            }
555
0
        }
556
557
670k
        auto can_compare = [](PrimitiveType t) -> bool {
558
670k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
670k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
158k
        auto can_compare = [](PrimitiveType t) -> bool {
558
158k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
158k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
15.5k
        auto can_compare = [](PrimitiveType t) -> bool {
558
15.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
15.5k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
213k
        auto can_compare = [](PrimitiveType t) -> bool {
558
213k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
213k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
34.3k
        auto can_compare = [](PrimitiveType t) -> bool {
558
34.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
34.3k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
30.9k
        auto can_compare = [](PrimitiveType t) -> bool {
558
30.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
30.9k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
218k
        auto can_compare = [](PrimitiveType t) -> bool {
558
218k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
218k
        };
560
561
425k
        if (can_compare(left_type->get_primitive_type()) &&
562
425k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
244k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
244k
        }
570
571
425k
        auto compare_type = left_type->get_primitive_type();
572
425k
        switch (compare_type) {
573
2.31k
        case TYPE_BOOLEAN:
574
2.31k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
17.2k
        case TYPE_DATEV2:
576
17.2k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
2.81k
        case TYPE_DATETIMEV2:
578
2.81k
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
7
        case TYPE_TIMESTAMPTZ:
580
7
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
11.0k
        case TYPE_TINYINT:
582
11.0k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
4.28k
        case TYPE_SMALLINT:
584
4.28k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
157k
        case TYPE_INT:
586
157k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
44.1k
        case TYPE_BIGINT:
588
44.1k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
763
        case TYPE_LARGEINT:
590
763
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
61
        case TYPE_IPV4:
592
61
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
37
        case TYPE_IPV6:
594
37
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
998
        case TYPE_FLOAT:
596
998
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
3.64k
        case TYPE_DOUBLE:
598
3.64k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
4
        case TYPE_TIMEV2:
600
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
508
        case TYPE_DECIMAL32:
603
148k
        case TYPE_DECIMAL64:
604
152k
        case TYPE_DECIMAL128I:
605
152k
        case TYPE_DECIMAL256:
606
152k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
152k
                                   col_with_type_and_name_right);
608
1.26k
        case TYPE_CHAR:
609
11.0k
        case TYPE_VARCHAR:
610
27.6k
        case TYPE_STRING:
611
27.6k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
175
        default:
613
175
            return execute_generic(block, result, col_with_type_and_name_left,
614
175
                                   col_with_type_and_name_right);
615
425k
        }
616
0
        return Status::OK();
617
425k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
91.0k
                        uint32_t result, size_t input_rows_count) const override {
520
91.0k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
91.0k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
91.0k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
91.0k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
91.0k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
91.0k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
91.0k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
91.0k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
91.0k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
91.0k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
0
                block.get_by_position(result).column =
542
0
                        DataTypeUInt8()
543
0
                                .create_column_const(input_rows_count,
544
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
0
                                ->convert_to_full_column_if_const();
546
0
                return Status::OK();
547
            } else {
548
                block.get_by_position(result).column =
549
                        DataTypeUInt8()
550
                                .create_column_const(input_rows_count,
551
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
                                ->convert_to_full_column_if_const();
553
                return Status::OK();
554
            }
555
0
        }
556
557
0
        auto can_compare = [](PrimitiveType t) -> bool {
558
91.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
91.0k
        };
560
561
91.0k
        if (can_compare(left_type->get_primitive_type()) &&
562
91.0k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
66.9k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
66.9k
        }
570
571
91.0k
        auto compare_type = left_type->get_primitive_type();
572
91.0k
        switch (compare_type) {
573
1.60k
        case TYPE_BOOLEAN:
574
1.60k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
1.11k
        case TYPE_DATEV2:
576
1.11k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
655
        case TYPE_DATETIMEV2:
578
655
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
2
        case TYPE_TIMESTAMPTZ:
580
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
7.01k
        case TYPE_TINYINT:
582
7.01k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
1.43k
        case TYPE_SMALLINT:
584
1.43k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
31.1k
        case TYPE_INT:
586
31.1k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
23.3k
        case TYPE_BIGINT:
588
23.3k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
145
        case TYPE_LARGEINT:
590
145
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
18
        case TYPE_IPV4:
592
18
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
19
        case TYPE_IPV6:
594
19
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
91
        case TYPE_FLOAT:
596
91
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
381
        case TYPE_DOUBLE:
598
381
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
4
        case TYPE_TIMEV2:
600
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
235
        case TYPE_DECIMAL32:
603
511
        case TYPE_DECIMAL64:
604
1.65k
        case TYPE_DECIMAL128I:
605
1.68k
        case TYPE_DECIMAL256:
606
1.68k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
1.68k
                                   col_with_type_and_name_right);
608
682
        case TYPE_CHAR:
609
8.64k
        case TYPE_VARCHAR:
610
22.3k
        case TYPE_STRING:
611
22.3k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
17
        default:
613
17
            return execute_generic(block, result, col_with_type_and_name_left,
614
17
                                   col_with_type_and_name_right);
615
91.0k
        }
616
0
        return Status::OK();
617
91.0k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
8.73k
                        uint32_t result, size_t input_rows_count) const override {
520
8.73k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
8.73k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
8.73k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
8.73k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
8.73k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
8.73k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
8.73k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
8.73k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
8.73k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
8.73k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
                block.get_by_position(result).column =
542
                        DataTypeUInt8()
543
                                .create_column_const(input_rows_count,
544
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
                                ->convert_to_full_column_if_const();
546
                return Status::OK();
547
0
            } else {
548
0
                block.get_by_position(result).column =
549
0
                        DataTypeUInt8()
550
0
                                .create_column_const(input_rows_count,
551
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
0
                                ->convert_to_full_column_if_const();
553
0
                return Status::OK();
554
0
            }
555
0
        }
556
557
0
        auto can_compare = [](PrimitiveType t) -> bool {
558
8.73k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
8.73k
        };
560
561
8.73k
        if (can_compare(left_type->get_primitive_type()) &&
562
8.73k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
6.79k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
6.79k
        }
570
571
8.73k
        auto compare_type = left_type->get_primitive_type();
572
8.73k
        switch (compare_type) {
573
0
        case TYPE_BOOLEAN:
574
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
53
        case TYPE_DATEV2:
576
53
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
2
        case TYPE_DATETIMEV2:
578
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
0
        case TYPE_TIMESTAMPTZ:
580
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
100
        case TYPE_TINYINT:
582
100
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
26
        case TYPE_SMALLINT:
584
26
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
3.38k
        case TYPE_INT:
586
3.38k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
3.11k
        case TYPE_BIGINT:
588
3.11k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
0
        case TYPE_LARGEINT:
590
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
0
        case TYPE_IPV4:
592
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
0
        case TYPE_IPV6:
594
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
48
        case TYPE_FLOAT:
596
48
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
60
        case TYPE_DOUBLE:
598
60
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
0
        case TYPE_TIMEV2:
600
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
0
        case TYPE_DECIMAL32:
603
61
        case TYPE_DECIMAL64:
604
385
        case TYPE_DECIMAL128I:
605
415
        case TYPE_DECIMAL256:
606
415
            return execute_decimal(block, result, col_with_type_and_name_left,
607
415
                                   col_with_type_and_name_right);
608
17
        case TYPE_CHAR:
609
348
        case TYPE_VARCHAR:
610
1.51k
        case TYPE_STRING:
611
1.51k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
8
        default:
613
8
            return execute_generic(block, result, col_with_type_and_name_left,
614
8
                                   col_with_type_and_name_right);
615
8.73k
        }
616
0
        return Status::OK();
617
8.73k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
108k
                        uint32_t result, size_t input_rows_count) const override {
520
108k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
108k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
108k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
108k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
108k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
108k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
108k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
108k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
108k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
108k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
                block.get_by_position(result).column =
542
                        DataTypeUInt8()
543
                                .create_column_const(input_rows_count,
544
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
                                ->convert_to_full_column_if_const();
546
                return Status::OK();
547
0
            } else {
548
0
                block.get_by_position(result).column =
549
0
                        DataTypeUInt8()
550
0
                                .create_column_const(input_rows_count,
551
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
0
                                ->convert_to_full_column_if_const();
553
0
                return Status::OK();
554
0
            }
555
0
        }
556
557
0
        auto can_compare = [](PrimitiveType t) -> bool {
558
108k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
108k
        };
560
561
108k
        if (can_compare(left_type->get_primitive_type()) &&
562
108k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
105k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
105k
        }
570
571
108k
        auto compare_type = left_type->get_primitive_type();
572
108k
        switch (compare_type) {
573
0
        case TYPE_BOOLEAN:
574
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
1.24k
        case TYPE_DATEV2:
576
1.24k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
94
        case TYPE_DATETIMEV2:
578
94
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
1
        case TYPE_TIMESTAMPTZ:
580
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
1.36k
        case TYPE_TINYINT:
582
1.36k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
2.01k
        case TYPE_SMALLINT:
584
2.01k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
83.3k
        case TYPE_INT:
586
83.3k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
14.0k
        case TYPE_BIGINT:
588
14.0k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
245
        case TYPE_LARGEINT:
590
245
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
4
        case TYPE_IPV4:
592
4
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
1
        case TYPE_IPV6:
594
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
236
        case TYPE_FLOAT:
596
236
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
2.47k
        case TYPE_DOUBLE:
598
2.47k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
0
        case TYPE_TIMEV2:
600
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
46
        case TYPE_DECIMAL32:
603
1.64k
        case TYPE_DECIMAL64:
604
3.06k
        case TYPE_DECIMAL128I:
605
3.06k
        case TYPE_DECIMAL256:
606
3.06k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
3.06k
                                   col_with_type_and_name_right);
608
21
        case TYPE_CHAR:
609
100
        case TYPE_VARCHAR:
610
203
        case TYPE_STRING:
611
203
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
9
        default:
613
9
            return execute_generic(block, result, col_with_type_and_name_left,
614
9
                                   col_with_type_and_name_right);
615
108k
        }
616
0
        return Status::OK();
617
108k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
17.8k
                        uint32_t result, size_t input_rows_count) const override {
520
17.8k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
17.8k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
17.8k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
17.8k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
17.8k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
17.8k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
17.8k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
17.8k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
17.8k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
17.8k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
0
                block.get_by_position(result).column =
542
0
                        DataTypeUInt8()
543
0
                                .create_column_const(input_rows_count,
544
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
0
                                ->convert_to_full_column_if_const();
546
0
                return Status::OK();
547
            } else {
548
                block.get_by_position(result).column =
549
                        DataTypeUInt8()
550
                                .create_column_const(input_rows_count,
551
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
                                ->convert_to_full_column_if_const();
553
                return Status::OK();
554
            }
555
0
        }
556
557
0
        auto can_compare = [](PrimitiveType t) -> bool {
558
17.8k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
17.8k
        };
560
561
17.8k
        if (can_compare(left_type->get_primitive_type()) &&
562
17.8k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
16.5k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
16.5k
        }
570
571
17.8k
        auto compare_type = left_type->get_primitive_type();
572
17.8k
        switch (compare_type) {
573
198
        case TYPE_BOOLEAN:
574
198
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
1.66k
        case TYPE_DATEV2:
576
1.66k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
776
        case TYPE_DATETIMEV2:
578
776
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
1
        case TYPE_TIMESTAMPTZ:
580
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
64
        case TYPE_TINYINT:
582
64
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
97
        case TYPE_SMALLINT:
584
97
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
12.3k
        case TYPE_INT:
586
12.3k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
893
        case TYPE_BIGINT:
588
893
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
50
        case TYPE_LARGEINT:
590
50
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
11
        case TYPE_IPV4:
592
11
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
1
        case TYPE_IPV6:
594
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
228
        case TYPE_FLOAT:
596
228
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
168
        case TYPE_DOUBLE:
598
168
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
0
        case TYPE_TIMEV2:
600
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
9
        case TYPE_DECIMAL32:
603
373
        case TYPE_DECIMAL64:
604
454
        case TYPE_DECIMAL128I:
605
481
        case TYPE_DECIMAL256:
606
481
            return execute_decimal(block, result, col_with_type_and_name_left,
607
481
                                   col_with_type_and_name_right);
608
40
        case TYPE_CHAR:
609
332
        case TYPE_VARCHAR:
610
757
        case TYPE_STRING:
611
757
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
85
        default:
613
85
            return execute_generic(block, result, col_with_type_and_name_left,
614
85
                                   col_with_type_and_name_right);
615
17.8k
        }
616
0
        return Status::OK();
617
17.8k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
16.4k
                        uint32_t result, size_t input_rows_count) const override {
520
16.4k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
16.4k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
16.4k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
16.4k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
16.4k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
16.4k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
16.4k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
16.4k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
16.4k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
16.4k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
                block.get_by_position(result).column =
542
                        DataTypeUInt8()
543
                                .create_column_const(input_rows_count,
544
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
                                ->convert_to_full_column_if_const();
546
                return Status::OK();
547
0
            } else {
548
0
                block.get_by_position(result).column =
549
0
                        DataTypeUInt8()
550
0
                                .create_column_const(input_rows_count,
551
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
0
                                ->convert_to_full_column_if_const();
553
0
                return Status::OK();
554
0
            }
555
0
        }
556
557
0
        auto can_compare = [](PrimitiveType t) -> bool {
558
16.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
16.4k
        };
560
561
16.4k
        if (can_compare(left_type->get_primitive_type()) &&
562
16.4k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
14.5k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
14.5k
        }
570
571
16.4k
        auto compare_type = left_type->get_primitive_type();
572
16.4k
        switch (compare_type) {
573
88
        case TYPE_BOOLEAN:
574
88
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
2.31k
        case TYPE_DATEV2:
576
2.31k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
661
        case TYPE_DATETIMEV2:
578
661
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
2
        case TYPE_TIMESTAMPTZ:
580
2
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
2.22k
        case TYPE_TINYINT:
582
2.22k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
396
        case TYPE_SMALLINT:
584
396
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
6.32k
        case TYPE_INT:
586
6.32k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
1.68k
        case TYPE_BIGINT:
588
1.68k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
264
        case TYPE_LARGEINT:
590
264
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
18
        case TYPE_IPV4:
592
18
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
16
        case TYPE_IPV6:
594
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
171
        case TYPE_FLOAT:
596
171
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
394
        case TYPE_DOUBLE:
598
394
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
0
        case TYPE_TIMEV2:
600
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
211
        case TYPE_DECIMAL32:
603
472
        case TYPE_DECIMAL64:
604
1.12k
        case TYPE_DECIMAL128I:
605
1.12k
        case TYPE_DECIMAL256:
606
1.12k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
1.12k
                                   col_with_type_and_name_right);
608
186
        case TYPE_CHAR:
609
402
        case TYPE_VARCHAR:
610
716
        case TYPE_STRING:
611
716
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
11
        default:
613
11
            return execute_generic(block, result, col_with_type_and_name_left,
614
11
                                   col_with_type_and_name_right);
615
16.4k
        }
616
0
        return Status::OK();
617
16.4k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
183k
                        uint32_t result, size_t input_rows_count) const override {
520
183k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
183k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
183k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
183k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
183k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
183k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
183k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
183k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
530
531
        /// The case when arguments are the same (tautological comparison). Return constant.
532
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
533
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
534
183k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
183k
            col_left_untyped == col_right_untyped) {
536
            /// Always true: =, <=, >=
537
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
538
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
539
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
540
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
541
0
                block.get_by_position(result).column =
542
0
                        DataTypeUInt8()
543
0
                                .create_column_const(input_rows_count,
544
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
545
0
                                ->convert_to_full_column_if_const();
546
0
                return Status::OK();
547
            } else {
548
                block.get_by_position(result).column =
549
                        DataTypeUInt8()
550
                                .create_column_const(input_rows_count,
551
                                                     Field::create_field<TYPE_BOOLEAN>(0))
552
                                ->convert_to_full_column_if_const();
553
                return Status::OK();
554
            }
555
0
        }
556
557
0
        auto can_compare = [](PrimitiveType t) -> bool {
558
183k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
183k
        };
560
561
183k
        if (can_compare(left_type->get_primitive_type()) &&
562
183k
            can_compare(right_type->get_primitive_type())) {
563
            // check left type equals right type TODO: remove this after FE is aware of scales difference
564
34.9k
            if (!left_type->equals_ignore_precision(*right_type)) {
565
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
566
0
                                            get_name(), left_type->get_name(),
567
0
                                            right_type->get_name());
568
0
            }
569
34.9k
        }
570
571
183k
        auto compare_type = left_type->get_primitive_type();
572
183k
        switch (compare_type) {
573
426
        case TYPE_BOOLEAN:
574
426
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
10.8k
        case TYPE_DATEV2:
576
10.8k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
625
        case TYPE_DATETIMEV2:
578
625
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
579
1
        case TYPE_TIMESTAMPTZ:
580
1
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
581
298
        case TYPE_TINYINT:
582
298
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
323
        case TYPE_SMALLINT:
584
323
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
20.9k
        case TYPE_INT:
586
20.9k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
987
        case TYPE_BIGINT:
588
987
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
59
        case TYPE_LARGEINT:
590
59
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
10
        case TYPE_IPV4:
592
10
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
0
        case TYPE_IPV6:
594
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
224
        case TYPE_FLOAT:
596
224
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
160
        case TYPE_DOUBLE:
598
160
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
599
0
        case TYPE_TIMEV2:
600
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
601
0
        case TYPE_DECIMALV2:
602
7
        case TYPE_DECIMAL32:
603
145k
        case TYPE_DECIMAL64:
604
146k
        case TYPE_DECIMAL128I:
605
146k
        case TYPE_DECIMAL256:
606
146k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
146k
                                   col_with_type_and_name_right);
608
323
        case TYPE_CHAR:
609
1.23k
        case TYPE_VARCHAR:
610
2.08k
        case TYPE_STRING:
611
2.08k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
45
        default:
613
45
            return execute_generic(block, result, col_with_type_and_name_left,
614
45
                                   col_with_type_and_name_right);
615
183k
        }
616
0
        return Status::OK();
617
183k
    }
618
};
619
620
} // namespace doris