Coverage Report

Created: 2026-06-05 17:15

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.84k
                                        PaddedPODArray<UInt8>& c) {
66
7.84k
        size_t size = a.size();
67
7.84k
        const A* __restrict a_pos = a.data();
68
7.84k
        const B* __restrict b_pos = b.data();
69
7.84k
        UInt8* __restrict c_pos = c.data();
70
7.84k
        const A* __restrict a_end = a_pos + size;
71
72
5.39M
        while (a_pos < a_end) {
73
5.38M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.38M
            ++a_pos;
75
5.38M
            ++b_pos;
76
5.38M
            ++c_pos;
77
5.38M
        }
78
7.84k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
68
                                        PaddedPODArray<UInt8>& c) {
66
68
        size_t size = a.size();
67
68
        const A* __restrict a_pos = a.data();
68
68
        const B* __restrict b_pos = b.data();
69
68
        UInt8* __restrict c_pos = c.data();
70
68
        const A* __restrict a_end = a_pos + size;
71
72
136
        while (a_pos < a_end) {
73
68
            *c_pos = Op::apply(*a_pos, *b_pos);
74
68
            ++a_pos;
75
68
            ++b_pos;
76
68
            ++c_pos;
77
68
        }
78
68
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
363
                                        PaddedPODArray<UInt8>& c) {
66
363
        size_t size = a.size();
67
363
        const A* __restrict a_pos = a.data();
68
363
        const B* __restrict b_pos = b.data();
69
363
        UInt8* __restrict c_pos = c.data();
70
363
        const A* __restrict a_end = a_pos + size;
71
72
1.58k
        while (a_pos < a_end) {
73
1.21k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.21k
            ++a_pos;
75
1.21k
            ++b_pos;
76
1.21k
            ++c_pos;
77
1.21k
        }
78
363
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
291
                                        PaddedPODArray<UInt8>& c) {
66
291
        size_t size = a.size();
67
291
        const A* __restrict a_pos = a.data();
68
291
        const B* __restrict b_pos = b.data();
69
291
        UInt8* __restrict c_pos = c.data();
70
291
        const A* __restrict a_end = a_pos + size;
71
72
600
        while (a_pos < a_end) {
73
309
            *c_pos = Op::apply(*a_pos, *b_pos);
74
309
            ++a_pos;
75
309
            ++b_pos;
76
309
            ++c_pos;
77
309
        }
78
291
    }
_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
173
                                        PaddedPODArray<UInt8>& c) {
66
173
        size_t size = a.size();
67
173
        const A* __restrict a_pos = a.data();
68
173
        const B* __restrict b_pos = b.data();
69
173
        UInt8* __restrict c_pos = c.data();
70
173
        const A* __restrict a_end = a_pos + size;
71
72
488
        while (a_pos < a_end) {
73
315
            *c_pos = Op::apply(*a_pos, *b_pos);
74
315
            ++a_pos;
75
315
            ++b_pos;
76
315
            ++c_pos;
77
315
        }
78
173
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
97
                                        PaddedPODArray<UInt8>& c) {
66
97
        size_t size = a.size();
67
97
        const A* __restrict a_pos = a.data();
68
97
        const B* __restrict b_pos = b.data();
69
97
        UInt8* __restrict c_pos = c.data();
70
97
        const A* __restrict a_end = a_pos + size;
71
72
194
        while (a_pos < a_end) {
73
97
            *c_pos = Op::apply(*a_pos, *b_pos);
74
97
            ++a_pos;
75
97
            ++b_pos;
76
97
            ++c_pos;
77
97
        }
78
97
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
270
                                        PaddedPODArray<UInt8>& c) {
66
270
        size_t size = a.size();
67
270
        const A* __restrict a_pos = a.data();
68
270
        const B* __restrict b_pos = b.data();
69
270
        UInt8* __restrict c_pos = c.data();
70
270
        const A* __restrict a_end = a_pos + size;
71
72
1.70k
        while (a_pos < a_end) {
73
1.43k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.43k
            ++a_pos;
75
1.43k
            ++b_pos;
76
1.43k
            ++c_pos;
77
1.43k
        }
78
270
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
278
                                        PaddedPODArray<UInt8>& c) {
66
278
        size_t size = a.size();
67
278
        const A* __restrict a_pos = a.data();
68
278
        const B* __restrict b_pos = b.data();
69
278
        UInt8* __restrict c_pos = c.data();
70
278
        const A* __restrict a_end = a_pos + size;
71
72
1.67k
        while (a_pos < a_end) {
73
1.39k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.39k
            ++a_pos;
75
1.39k
            ++b_pos;
76
1.39k
            ++c_pos;
77
1.39k
        }
78
278
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
91
                                        PaddedPODArray<UInt8>& c) {
66
91
        size_t size = a.size();
67
91
        const A* __restrict a_pos = a.data();
68
91
        const B* __restrict b_pos = b.data();
69
91
        UInt8* __restrict c_pos = c.data();
70
91
        const A* __restrict a_end = a_pos + size;
71
72
182
        while (a_pos < a_end) {
73
91
            *c_pos = Op::apply(*a_pos, *b_pos);
74
91
            ++a_pos;
75
91
            ++b_pos;
76
91
            ++c_pos;
77
91
        }
78
91
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
24
                                        PaddedPODArray<UInt8>& c) {
66
24
        size_t size = a.size();
67
24
        const A* __restrict a_pos = a.data();
68
24
        const B* __restrict b_pos = b.data();
69
24
        UInt8* __restrict c_pos = c.data();
70
24
        const A* __restrict a_end = a_pos + size;
71
72
48
        while (a_pos < a_end) {
73
24
            *c_pos = Op::apply(*a_pos, *b_pos);
74
24
            ++a_pos;
75
24
            ++b_pos;
76
24
            ++c_pos;
77
24
        }
78
24
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
120
                                        PaddedPODArray<UInt8>& c) {
66
120
        size_t size = a.size();
67
120
        const A* __restrict a_pos = a.data();
68
120
        const B* __restrict b_pos = b.data();
69
120
        UInt8* __restrict c_pos = c.data();
70
120
        const A* __restrict a_end = a_pos + size;
71
72
259
        while (a_pos < a_end) {
73
139
            *c_pos = Op::apply(*a_pos, *b_pos);
74
139
            ++a_pos;
75
139
            ++b_pos;
76
139
            ++c_pos;
77
139
        }
78
120
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
113
                                        PaddedPODArray<UInt8>& c) {
66
113
        size_t size = a.size();
67
113
        const A* __restrict a_pos = a.data();
68
113
        const B* __restrict b_pos = b.data();
69
113
        UInt8* __restrict c_pos = c.data();
70
113
        const A* __restrict a_end = a_pos + size;
71
72
247
        while (a_pos < a_end) {
73
134
            *c_pos = Op::apply(*a_pos, *b_pos);
74
134
            ++a_pos;
75
134
            ++b_pos;
76
134
            ++c_pos;
77
134
        }
78
113
    }
_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
581
                                        PaddedPODArray<UInt8>& c) {
66
581
        size_t size = a.size();
67
581
        const A* __restrict a_pos = a.data();
68
581
        const B* __restrict b_pos = b.data();
69
581
        UInt8* __restrict c_pos = c.data();
70
581
        const A* __restrict a_end = a_pos + size;
71
72
941k
        while (a_pos < a_end) {
73
940k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
940k
            ++a_pos;
75
940k
            ++b_pos;
76
940k
            ++c_pos;
77
940k
        }
78
581
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
318
                                        PaddedPODArray<UInt8>& c) {
66
318
        size_t size = a.size();
67
318
        const A* __restrict a_pos = a.data();
68
318
        const B* __restrict b_pos = b.data();
69
318
        UInt8* __restrict c_pos = c.data();
70
318
        const A* __restrict a_end = a_pos + size;
71
72
6.21k
        while (a_pos < a_end) {
73
5.89k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.89k
            ++a_pos;
75
5.89k
            ++b_pos;
76
5.89k
            ++c_pos;
77
5.89k
        }
78
318
    }
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.00k
                                        PaddedPODArray<UInt8>& c) {
66
1.00k
        size_t size = a.size();
67
1.00k
        const A* __restrict a_pos = a.data();
68
1.00k
        const B* __restrict b_pos = b.data();
69
1.00k
        UInt8* __restrict c_pos = c.data();
70
1.00k
        const A* __restrict a_end = a_pos + size;
71
72
3.19M
        while (a_pos < a_end) {
73
3.19M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.19M
            ++a_pos;
75
3.19M
            ++b_pos;
76
3.19M
            ++c_pos;
77
3.19M
        }
78
1.00k
    }
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
112
                                        PaddedPODArray<UInt8>& c) {
66
112
        size_t size = a.size();
67
112
        const A* __restrict a_pos = a.data();
68
112
        const B* __restrict b_pos = b.data();
69
112
        UInt8* __restrict c_pos = c.data();
70
112
        const A* __restrict a_end = a_pos + size;
71
72
376
        while (a_pos < a_end) {
73
264
            *c_pos = Op::apply(*a_pos, *b_pos);
74
264
            ++a_pos;
75
264
            ++b_pos;
76
264
            ++c_pos;
77
264
        }
78
112
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
44
                                        PaddedPODArray<UInt8>& c) {
66
44
        size_t size = a.size();
67
44
        const A* __restrict a_pos = a.data();
68
44
        const B* __restrict b_pos = b.data();
69
44
        UInt8* __restrict c_pos = c.data();
70
44
        const A* __restrict a_end = a_pos + size;
71
72
251
        while (a_pos < a_end) {
73
207
            *c_pos = Op::apply(*a_pos, *b_pos);
74
207
            ++a_pos;
75
207
            ++b_pos;
76
207
            ++c_pos;
77
207
        }
78
44
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
65
                                        PaddedPODArray<UInt8>& c) {
66
65
        size_t size = a.size();
67
65
        const A* __restrict a_pos = a.data();
68
65
        const B* __restrict b_pos = b.data();
69
65
        UInt8* __restrict c_pos = c.data();
70
65
        const A* __restrict a_end = a_pos + size;
71
72
579
        while (a_pos < a_end) {
73
514
            *c_pos = Op::apply(*a_pos, *b_pos);
74
514
            ++a_pos;
75
514
            ++b_pos;
76
514
            ++c_pos;
77
514
        }
78
65
    }
_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
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
103
        while (a_pos < a_end) {
73
73
            *c_pos = Op::apply(*a_pos, *b_pos);
74
73
            ++a_pos;
75
73
            ++b_pos;
76
73
            ++c_pos;
77
73
        }
78
30
    }
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
8
                                        PaddedPODArray<UInt8>& c) {
66
8
        size_t size = a.size();
67
8
        const A* __restrict a_pos = a.data();
68
8
        const B* __restrict b_pos = b.data();
69
8
        UInt8* __restrict c_pos = c.data();
70
8
        const A* __restrict a_end = a_pos + size;
71
72
62
        while (a_pos < a_end) {
73
54
            *c_pos = Op::apply(*a_pos, *b_pos);
74
54
            ++a_pos;
75
54
            ++b_pos;
76
54
            ++c_pos;
77
54
        }
78
8
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
24
                                        PaddedPODArray<UInt8>& c) {
66
24
        size_t size = a.size();
67
24
        const A* __restrict a_pos = a.data();
68
24
        const B* __restrict b_pos = b.data();
69
24
        UInt8* __restrict c_pos = c.data();
70
24
        const A* __restrict a_end = a_pos + size;
71
72
68
        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
24
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
73
                                        PaddedPODArray<UInt8>& c) {
66
73
        size_t size = a.size();
67
73
        const A* __restrict a_pos = a.data();
68
73
        const B* __restrict b_pos = b.data();
69
73
        UInt8* __restrict c_pos = c.data();
70
73
        const A* __restrict a_end = a_pos + size;
71
72
146
        while (a_pos < a_end) {
73
73
            *c_pos = Op::apply(*a_pos, *b_pos);
74
73
            ++a_pos;
75
73
            ++b_pos;
76
73
            ++c_pos;
77
73
        }
78
73
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.65k
                                        PaddedPODArray<UInt8>& c) {
66
1.65k
        size_t size = a.size();
67
1.65k
        const A* __restrict a_pos = a.data();
68
1.65k
        const B* __restrict b_pos = b.data();
69
1.65k
        UInt8* __restrict c_pos = c.data();
70
1.65k
        const A* __restrict a_end = a_pos + size;
71
72
1.22M
        while (a_pos < a_end) {
73
1.22M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.22M
            ++a_pos;
75
1.22M
            ++b_pos;
76
1.22M
            ++c_pos;
77
1.22M
        }
78
1.65k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
237
                                        PaddedPODArray<UInt8>& c) {
66
237
        size_t size = a.size();
67
237
        const A* __restrict a_pos = a.data();
68
237
        const B* __restrict b_pos = b.data();
69
237
        UInt8* __restrict c_pos = c.data();
70
237
        const A* __restrict a_end = a_pos + size;
71
72
474
        while (a_pos < a_end) {
73
237
            *c_pos = Op::apply(*a_pos, *b_pos);
74
237
            ++a_pos;
75
237
            ++b_pos;
76
237
            ++c_pos;
77
237
        }
78
237
    }
_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
134
                                        PaddedPODArray<UInt8>& c) {
66
134
        size_t size = a.size();
67
134
        const A* __restrict a_pos = a.data();
68
134
        const B* __restrict b_pos = b.data();
69
134
        UInt8* __restrict c_pos = c.data();
70
134
        const A* __restrict a_end = a_pos + size;
71
72
268
        while (a_pos < a_end) {
73
134
            *c_pos = Op::apply(*a_pos, *b_pos);
74
134
            ++a_pos;
75
134
            ++b_pos;
76
134
            ++c_pos;
77
134
        }
78
134
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
119
                                        PaddedPODArray<UInt8>& c) {
66
119
        size_t size = a.size();
67
119
        const A* __restrict a_pos = a.data();
68
119
        const B* __restrict b_pos = b.data();
69
119
        UInt8* __restrict c_pos = c.data();
70
119
        const A* __restrict a_end = a_pos + size;
71
72
240
        while (a_pos < a_end) {
73
121
            *c_pos = Op::apply(*a_pos, *b_pos);
74
121
            ++a_pos;
75
121
            ++b_pos;
76
121
            ++c_pos;
77
121
        }
78
119
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
143
                                        PaddedPODArray<UInt8>& c) {
66
143
        size_t size = a.size();
67
143
        const A* __restrict a_pos = a.data();
68
143
        const B* __restrict b_pos = b.data();
69
143
        UInt8* __restrict c_pos = c.data();
70
143
        const A* __restrict a_end = a_pos + size;
71
72
790
        while (a_pos < a_end) {
73
647
            *c_pos = Op::apply(*a_pos, *b_pos);
74
647
            ++a_pos;
75
647
            ++b_pos;
76
647
            ++c_pos;
77
647
        }
78
143
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
200
                                        PaddedPODArray<UInt8>& c) {
66
200
        size_t size = a.size();
67
200
        const A* __restrict a_pos = a.data();
68
200
        const B* __restrict b_pos = b.data();
69
200
        UInt8* __restrict c_pos = c.data();
70
200
        const A* __restrict a_end = a_pos + size;
71
72
5.21k
        while (a_pos < a_end) {
73
5.01k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
5.01k
            ++a_pos;
75
5.01k
            ++b_pos;
76
5.01k
            ++c_pos;
77
5.01k
        }
78
200
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
133
                                        PaddedPODArray<UInt8>& c) {
66
133
        size_t size = a.size();
67
133
        const A* __restrict a_pos = a.data();
68
133
        const B* __restrict b_pos = b.data();
69
133
        UInt8* __restrict c_pos = c.data();
70
133
        const A* __restrict a_end = a_pos + size;
71
72
266
        while (a_pos < a_end) {
73
133
            *c_pos = Op::apply(*a_pos, *b_pos);
74
133
            ++a_pos;
75
133
            ++b_pos;
76
133
            ++c_pos;
77
133
        }
78
133
    }
_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
138
                                        PaddedPODArray<UInt8>& c) {
66
138
        size_t size = a.size();
67
138
        const A* __restrict a_pos = a.data();
68
138
        const B* __restrict b_pos = b.data();
69
138
        UInt8* __restrict c_pos = c.data();
70
138
        const A* __restrict a_end = a_pos + size;
71
72
295
        while (a_pos < a_end) {
73
157
            *c_pos = Op::apply(*a_pos, *b_pos);
74
157
            ++a_pos;
75
157
            ++b_pos;
76
157
            ++c_pos;
77
157
        }
78
138
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
130
                                        PaddedPODArray<UInt8>& c) {
66
130
        size_t size = a.size();
67
130
        const A* __restrict a_pos = a.data();
68
130
        const B* __restrict b_pos = b.data();
69
130
        UInt8* __restrict c_pos = c.data();
70
130
        const A* __restrict a_end = a_pos + size;
71
72
292
        while (a_pos < a_end) {
73
162
            *c_pos = Op::apply(*a_pos, *b_pos);
74
162
            ++a_pos;
75
162
            ++b_pos;
76
162
            ++c_pos;
77
162
        }
78
130
    }
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
403
                                        PaddedPODArray<UInt8>& c) {
66
403
        size_t size = a.size();
67
403
        const A* __restrict a_pos = a.data();
68
403
        const B* __restrict b_pos = b.data();
69
403
        UInt8* __restrict c_pos = c.data();
70
403
        const A* __restrict a_end = a_pos + size;
71
72
6.55k
        while (a_pos < a_end) {
73
6.15k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.15k
            ++a_pos;
75
6.15k
            ++b_pos;
76
6.15k
            ++c_pos;
77
6.15k
        }
78
403
    }
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
10
                                        PaddedPODArray<UInt8>& c) {
66
10
        size_t size = a.size();
67
10
        const A* __restrict a_pos = a.data();
68
10
        const B* __restrict b_pos = b.data();
69
10
        UInt8* __restrict c_pos = c.data();
70
10
        const A* __restrict a_end = a_pos + size;
71
72
33
        while (a_pos < a_end) {
73
23
            *c_pos = Op::apply(*a_pos, *b_pos);
74
23
            ++a_pos;
75
23
            ++b_pos;
76
23
            ++c_pos;
77
23
        }
78
10
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
68
                                        PaddedPODArray<UInt8>& c) {
66
68
        size_t size = a.size();
67
68
        const A* __restrict a_pos = a.data();
68
68
        const B* __restrict b_pos = b.data();
69
68
        UInt8* __restrict c_pos = c.data();
70
68
        const A* __restrict a_end = a_pos + size;
71
72
184
        while (a_pos < a_end) {
73
116
            *c_pos = Op::apply(*a_pos, *b_pos);
74
116
            ++a_pos;
75
116
            ++b_pos;
76
116
            ++c_pos;
77
116
        }
78
68
    }
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
235k
                                          PaddedPODArray<UInt8>& c) {
82
235k
        size_t size = a.size();
83
235k
        const A* __restrict a_pos = a.data();
84
235k
        UInt8* __restrict c_pos = c.data();
85
235k
        const A* __restrict a_end = a_pos + size;
86
87
176M
        while (a_pos < a_end) {
88
176M
            *c_pos = Op::apply(*a_pos, b);
89
176M
            ++a_pos;
90
176M
            ++c_pos;
91
176M
        }
92
235k
    }
_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.04k
        while (a_pos < a_end) {
88
3.50k
            *c_pos = Op::apply(*a_pos, b);
89
3.50k
            ++a_pos;
90
3.50k
            ++c_pos;
91
3.50k
        }
92
1.54k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_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
207k
        while (a_pos < a_end) {
88
206k
            *c_pos = Op::apply(*a_pos, b);
89
206k
            ++a_pos;
90
206k
            ++c_pos;
91
206k
        }
92
1.36k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
394
                                          PaddedPODArray<UInt8>& c) {
82
394
        size_t size = a.size();
83
394
        const A* __restrict a_pos = a.data();
84
394
        UInt8* __restrict c_pos = c.data();
85
394
        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
394
    }
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.79k
                                          PaddedPODArray<UInt8>& c) {
82
6.79k
        size_t size = a.size();
83
6.79k
        const A* __restrict a_pos = a.data();
84
6.79k
        UInt8* __restrict c_pos = c.data();
85
6.79k
        const A* __restrict a_end = a_pos + size;
86
87
9.32M
        while (a_pos < a_end) {
88
9.32M
            *c_pos = Op::apply(*a_pos, b);
89
9.32M
            ++a_pos;
90
9.32M
            ++c_pos;
91
9.32M
        }
92
6.79k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_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
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.34k
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
30.7k
                                          PaddedPODArray<UInt8>& c) {
82
30.7k
        size_t size = a.size();
83
30.7k
        const A* __restrict a_pos = a.data();
84
30.7k
        UInt8* __restrict c_pos = c.data();
85
30.7k
        const A* __restrict a_end = a_pos + size;
86
87
2.04M
        while (a_pos < a_end) {
88
2.00M
            *c_pos = Op::apply(*a_pos, b);
89
2.00M
            ++a_pos;
90
2.00M
            ++c_pos;
91
2.00M
        }
92
30.7k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
23.7k
                                          PaddedPODArray<UInt8>& c) {
82
23.7k
        size_t size = a.size();
83
23.7k
        const A* __restrict a_pos = a.data();
84
23.7k
        UInt8* __restrict c_pos = c.data();
85
23.7k
        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.7k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
69
                                          PaddedPODArray<UInt8>& c) {
82
69
        size_t size = a.size();
83
69
        const A* __restrict a_pos = a.data();
84
69
        UInt8* __restrict c_pos = c.data();
85
69
        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
69
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
15
                                          PaddedPODArray<UInt8>& c) {
82
15
        size_t size = a.size();
83
15
        const A* __restrict a_pos = a.data();
84
15
        UInt8* __restrict c_pos = c.data();
85
15
        const A* __restrict a_end = a_pos + size;
86
87
129
        while (a_pos < a_end) {
88
114
            *c_pos = Op::apply(*a_pos, b);
89
114
            ++a_pos;
90
114
            ++c_pos;
91
114
        }
92
15
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
6
                                          PaddedPODArray<UInt8>& c) {
82
6
        size_t size = a.size();
83
6
        const A* __restrict a_pos = a.data();
84
6
        UInt8* __restrict c_pos = c.data();
85
6
        const A* __restrict a_end = a_pos + size;
86
87
12
        while (a_pos < a_end) {
88
6
            *c_pos = Op::apply(*a_pos, b);
89
6
            ++a_pos;
90
6
            ++c_pos;
91
6
        }
92
6
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
4
                                          PaddedPODArray<UInt8>& c) {
82
4
        size_t size = a.size();
83
4
        const A* __restrict a_pos = a.data();
84
4
        UInt8* __restrict c_pos = c.data();
85
4
        const A* __restrict a_end = a_pos + size;
86
87
26
        while (a_pos < a_end) {
88
22
            *c_pos = Op::apply(*a_pos, b);
89
22
            ++a_pos;
90
22
            ++c_pos;
91
22
        }
92
4
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
336
                                          PaddedPODArray<UInt8>& c) {
82
336
        size_t size = a.size();
83
336
        const A* __restrict a_pos = a.data();
84
336
        UInt8* __restrict c_pos = c.data();
85
336
        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
336
    }
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
43
                                          PaddedPODArray<UInt8>& c) {
82
43
        size_t size = a.size();
83
43
        const A* __restrict a_pos = a.data();
84
43
        UInt8* __restrict c_pos = c.data();
85
43
        const A* __restrict a_end = a_pos + size;
86
87
106
        while (a_pos < a_end) {
88
63
            *c_pos = Op::apply(*a_pos, b);
89
63
            ++a_pos;
90
63
            ++c_pos;
91
63
        }
92
43
    }
_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.86k
                                          PaddedPODArray<UInt8>& c) {
82
2.86k
        size_t size = a.size();
83
2.86k
        const A* __restrict a_pos = a.data();
84
2.86k
        UInt8* __restrict c_pos = c.data();
85
2.86k
        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.86k
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
2.72k
                                          PaddedPODArray<UInt8>& c) {
82
2.72k
        size_t size = a.size();
83
2.72k
        const A* __restrict a_pos = a.data();
84
2.72k
        UInt8* __restrict c_pos = c.data();
85
2.72k
        const A* __restrict a_end = a_pos + size;
86
87
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.72k
    }
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
159
                                          PaddedPODArray<UInt8>& c) {
82
159
        size_t size = a.size();
83
159
        const A* __restrict a_pos = a.data();
84
159
        UInt8* __restrict c_pos = c.data();
85
159
        const A* __restrict a_end = a_pos + size;
86
87
747
        while (a_pos < a_end) {
88
588
            *c_pos = Op::apply(*a_pos, b);
89
588
            ++a_pos;
90
588
            ++c_pos;
91
588
        }
92
159
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
466
                                          PaddedPODArray<UInt8>& c) {
82
466
        size_t size = a.size();
83
466
        const A* __restrict a_pos = a.data();
84
466
        UInt8* __restrict c_pos = c.data();
85
466
        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
466
    }
_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
337
                                          PaddedPODArray<UInt8>& c) {
82
337
        size_t size = a.size();
83
337
        const A* __restrict a_pos = a.data();
84
337
        UInt8* __restrict c_pos = c.data();
85
337
        const A* __restrict a_end = a_pos + size;
86
87
45.4k
        while (a_pos < a_end) {
88
45.1k
            *c_pos = Op::apply(*a_pos, b);
89
45.1k
            ++a_pos;
90
45.1k
            ++c_pos;
91
45.1k
        }
92
337
    }
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.30k
                                          PaddedPODArray<UInt8>& c) {
82
1.30k
        size_t size = a.size();
83
1.30k
        const A* __restrict a_pos = a.data();
84
1.30k
        UInt8* __restrict c_pos = c.data();
85
1.30k
        const A* __restrict a_end = a_pos + size;
86
87
7.13k
        while (a_pos < a_end) {
88
5.83k
            *c_pos = Op::apply(*a_pos, b);
89
5.83k
            ++a_pos;
90
5.83k
            ++c_pos;
91
5.83k
        }
92
1.30k
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.97k
                                          PaddedPODArray<UInt8>& c) {
82
1.97k
        size_t size = a.size();
83
1.97k
        const A* __restrict a_pos = a.data();
84
1.97k
        UInt8* __restrict c_pos = c.data();
85
1.97k
        const A* __restrict a_end = a_pos + size;
86
87
7.68k
        while (a_pos < a_end) {
88
5.71k
            *c_pos = Op::apply(*a_pos, b);
89
5.71k
            ++a_pos;
90
5.71k
            ++c_pos;
91
5.71k
        }
92
1.97k
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.61k
                                          PaddedPODArray<UInt8>& c) {
82
1.61k
        size_t size = a.size();
83
1.61k
        const A* __restrict a_pos = a.data();
84
1.61k
        UInt8* __restrict c_pos = c.data();
85
1.61k
        const A* __restrict a_end = a_pos + size;
86
87
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.61k
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
478
                                          PaddedPODArray<UInt8>& c) {
82
478
        size_t size = a.size();
83
478
        const A* __restrict a_pos = a.data();
84
478
        UInt8* __restrict c_pos = c.data();
85
478
        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
478
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
21.0k
                                          PaddedPODArray<UInt8>& c) {
82
21.0k
        size_t size = a.size();
83
21.0k
        const A* __restrict a_pos = a.data();
84
21.0k
        UInt8* __restrict c_pos = c.data();
85
21.0k
        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.0k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
67.4k
                                          PaddedPODArray<UInt8>& c) {
82
67.4k
        size_t size = a.size();
83
67.4k
        const A* __restrict a_pos = a.data();
84
67.4k
        UInt8* __restrict c_pos = c.data();
85
67.4k
        const A* __restrict a_end = a_pos + size;
86
87
9.73M
        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
67.4k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
13.4k
                                          PaddedPODArray<UInt8>& c) {
82
13.4k
        size_t size = a.size();
83
13.4k
        const A* __restrict a_pos = a.data();
84
13.4k
        UInt8* __restrict c_pos = c.data();
85
13.4k
        const A* __restrict a_end = a_pos + size;
86
87
172k
        while (a_pos < a_end) {
88
158k
            *c_pos = Op::apply(*a_pos, b);
89
158k
            ++a_pos;
90
158k
            ++c_pos;
91
158k
        }
92
13.4k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.55k
                                          PaddedPODArray<UInt8>& c) {
82
1.55k
        size_t size = a.size();
83
1.55k
        const A* __restrict a_pos = a.data();
84
1.55k
        UInt8* __restrict c_pos = c.data();
85
1.55k
        const A* __restrict a_end = a_pos + size;
86
87
4.79k
        while (a_pos < a_end) {
88
3.24k
            *c_pos = Op::apply(*a_pos, b);
89
3.24k
            ++a_pos;
90
3.24k
            ++c_pos;
91
3.24k
        }
92
1.55k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
273
                                          PaddedPODArray<UInt8>& c) {
82
273
        size_t size = a.size();
83
273
        const A* __restrict a_pos = a.data();
84
273
        UInt8* __restrict c_pos = c.data();
85
273
        const A* __restrict a_end = a_pos + size;
86
87
1.91k
        while (a_pos < a_end) {
88
1.64k
            *c_pos = Op::apply(*a_pos, b);
89
1.64k
            ++a_pos;
90
1.64k
            ++c_pos;
91
1.64k
        }
92
273
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
100
                                          PaddedPODArray<UInt8>& c) {
82
100
        size_t size = a.size();
83
100
        const A* __restrict a_pos = a.data();
84
100
        UInt8* __restrict c_pos = c.data();
85
100
        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
100
    }
_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.48k
                                          PaddedPODArray<UInt8>& c) {
82
2.48k
        size_t size = a.size();
83
2.48k
        const A* __restrict a_pos = a.data();
84
2.48k
        UInt8* __restrict c_pos = c.data();
85
2.48k
        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.48k
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
232
                                          PaddedPODArray<UInt8>& c) {
82
232
        size_t size = a.size();
83
232
        const A* __restrict a_pos = a.data();
84
232
        UInt8* __restrict c_pos = c.data();
85
232
        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
232
    }
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
193
                                          PaddedPODArray<UInt8>& c) {
82
193
        size_t size = a.size();
83
193
        const A* __restrict a_pos = a.data();
84
193
        UInt8* __restrict c_pos = c.data();
85
193
        const A* __restrict a_end = a_pos + size;
86
87
95.3k
        while (a_pos < a_end) {
88
95.1k
            *c_pos = Op::apply(*a_pos, b);
89
95.1k
            ++a_pos;
90
95.1k
            ++c_pos;
91
95.1k
        }
92
193
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
376
                                          PaddedPODArray<UInt8>& c) {
82
376
        size_t size = a.size();
83
376
        const A* __restrict a_pos = a.data();
84
376
        UInt8* __restrict c_pos = c.data();
85
376
        const A* __restrict a_end = a_pos + size;
86
87
205k
        while (a_pos < a_end) {
88
205k
            *c_pos = Op::apply(*a_pos, b);
89
205k
            ++a_pos;
90
205k
            ++c_pos;
91
205k
        }
92
376
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
1.60k
                                          PaddedPODArray<UInt8>& c) {
82
1.60k
        size_t size = a.size();
83
1.60k
        const A* __restrict a_pos = a.data();
84
1.60k
        UInt8* __restrict c_pos = c.data();
85
1.60k
        const A* __restrict a_end = a_pos + size;
86
87
4.69M
        while (a_pos < a_end) {
88
4.69M
            *c_pos = Op::apply(*a_pos, b);
89
4.69M
            ++a_pos;
90
4.69M
            ++c_pos;
91
4.69M
        }
92
1.60k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
7.39k
                                          PaddedPODArray<UInt8>& c) {
82
7.39k
        size_t size = a.size();
83
7.39k
        const A* __restrict a_pos = a.data();
84
7.39k
        UInt8* __restrict c_pos = c.data();
85
7.39k
        const A* __restrict a_end = a_pos + size;
86
87
51.5M
        while (a_pos < a_end) {
88
51.5M
            *c_pos = Op::apply(*a_pos, b);
89
51.5M
            ++a_pos;
90
51.5M
            ++c_pos;
91
51.5M
        }
92
7.39k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
724
                                          PaddedPODArray<UInt8>& c) {
82
724
        size_t size = a.size();
83
724
        const A* __restrict a_pos = a.data();
84
724
        UInt8* __restrict c_pos = c.data();
85
724
        const A* __restrict a_end = a_pos + size;
86
87
30.8k
        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
724
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
564
                                          PaddedPODArray<UInt8>& c) {
82
564
        size_t size = a.size();
83
564
        const A* __restrict a_pos = a.data();
84
564
        UInt8* __restrict c_pos = c.data();
85
564
        const A* __restrict a_end = a_pos + size;
86
87
25.9k
        while (a_pos < a_end) {
88
25.3k
            *c_pos = Op::apply(*a_pos, b);
89
25.3k
            ++a_pos;
90
25.3k
            ++c_pos;
91
25.3k
        }
92
564
    }
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
41
                                          PaddedPODArray<UInt8>& c) {
82
41
        size_t size = a.size();
83
41
        const A* __restrict a_pos = a.data();
84
41
        UInt8* __restrict c_pos = c.data();
85
41
        const A* __restrict a_end = a_pos + size;
86
87
72.4k
        while (a_pos < a_end) {
88
72.4k
            *c_pos = Op::apply(*a_pos, b);
89
72.4k
            ++a_pos;
90
72.4k
            ++c_pos;
91
72.4k
        }
92
41
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
271
                                          PaddedPODArray<UInt8>& c) {
82
271
        size_t size = a.size();
83
271
        const A* __restrict a_pos = a.data();
84
271
        UInt8* __restrict c_pos = c.data();
85
271
        const A* __restrict a_end = a_pos + size;
86
87
44.1k
        while (a_pos < a_end) {
88
43.8k
            *c_pos = Op::apply(*a_pos, b);
89
43.8k
            ++a_pos;
90
43.8k
            ++c_pos;
91
43.8k
        }
92
271
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
57
                                          PaddedPODArray<UInt8>& c) {
82
57
        size_t size = a.size();
83
57
        const A* __restrict a_pos = a.data();
84
57
        UInt8* __restrict c_pos = c.data();
85
57
        const A* __restrict a_end = a_pos + size;
86
87
86.9k
        while (a_pos < a_end) {
88
86.9k
            *c_pos = Op::apply(*a_pos, b);
89
86.9k
            ++a_pos;
90
86.9k
            ++c_pos;
91
86.9k
        }
92
57
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
253
                                          PaddedPODArray<UInt8>& c) {
82
253
        size_t size = a.size();
83
253
        const A* __restrict a_pos = a.data();
84
253
        UInt8* __restrict c_pos = c.data();
85
253
        const A* __restrict a_end = a_pos + size;
86
87
77.0k
        while (a_pos < a_end) {
88
76.7k
            *c_pos = Op::apply(*a_pos, b);
89
76.7k
            ++a_pos;
90
76.7k
            ++c_pos;
91
76.7k
        }
92
253
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
14.3k
                                          PaddedPODArray<UInt8>& c) {
82
14.3k
        size_t size = a.size();
83
14.3k
        const A* __restrict a_pos = a.data();
84
14.3k
        UInt8* __restrict c_pos = c.data();
85
14.3k
        const A* __restrict a_end = a_pos + size;
86
87
41.7M
        while (a_pos < a_end) {
88
41.7M
            *c_pos = Op::apply(*a_pos, b);
89
41.7M
            ++a_pos;
90
41.7M
            ++c_pos;
91
41.7M
        }
92
14.3k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
22.0k
                                          PaddedPODArray<UInt8>& c) {
82
22.0k
        size_t size = a.size();
83
22.0k
        const A* __restrict a_pos = a.data();
84
22.0k
        UInt8* __restrict c_pos = c.data();
85
22.0k
        const A* __restrict a_end = a_pos + size;
86
87
45.9M
        while (a_pos < a_end) {
88
45.9M
            *c_pos = Op::apply(*a_pos, b);
89
45.9M
            ++a_pos;
90
45.9M
            ++c_pos;
91
45.9M
        }
92
22.0k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
890
                                          PaddedPODArray<UInt8>& c) {
82
890
        size_t size = a.size();
83
890
        const A* __restrict a_pos = a.data();
84
890
        UInt8* __restrict c_pos = c.data();
85
890
        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
890
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
890
                                          PaddedPODArray<UInt8>& c) {
82
890
        size_t size = a.size();
83
890
        const A* __restrict a_pos = a.data();
84
890
        UInt8* __restrict c_pos = c.data();
85
890
        const A* __restrict a_end = a_pos + size;
86
87
37.0k
        while (a_pos < a_end) {
88
36.1k
            *c_pos = Op::apply(*a_pos, b);
89
36.1k
            ++a_pos;
90
36.1k
            ++c_pos;
91
36.1k
        }
92
890
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
48
                                          PaddedPODArray<UInt8>& c) {
82
48
        size_t size = a.size();
83
48
        const A* __restrict a_pos = a.data();
84
48
        UInt8* __restrict c_pos = c.data();
85
48
        const A* __restrict a_end = a_pos + size;
86
87
110k
        while (a_pos < a_end) {
88
110k
            *c_pos = Op::apply(*a_pos, b);
89
110k
            ++a_pos;
90
110k
            ++c_pos;
91
110k
        }
92
48
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
55
                                          PaddedPODArray<UInt8>& c) {
82
55
        size_t size = a.size();
83
55
        const A* __restrict a_pos = a.data();
84
55
        UInt8* __restrict c_pos = c.data();
85
55
        const A* __restrict a_end = a_pos + size;
86
87
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
55
    }
_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
115
                                          PaddedPODArray<UInt8>& c) {
82
115
        size_t size = a.size();
83
115
        const A* __restrict a_pos = a.data();
84
115
        UInt8* __restrict c_pos = c.data();
85
115
        const A* __restrict a_end = a_pos + size;
86
87
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
115
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
116
                                          PaddedPODArray<UInt8>& c) {
82
116
        size_t size = a.size();
83
116
        const A* __restrict a_pos = a.data();
84
116
        UInt8* __restrict c_pos = c.data();
85
116
        const A* __restrict a_end = a_pos + size;
86
87
275k
        while (a_pos < a_end) {
88
275k
            *c_pos = Op::apply(*a_pos, b);
89
275k
            ++a_pos;
90
275k
            ++c_pos;
91
275k
        }
92
116
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
93
94
65.1k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
65.1k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
65.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
234
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
234
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
234
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
30
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
30
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
30
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
79
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
79
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
79
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
1.12k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
1.12k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
1.12k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
12
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
12
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
12
    }
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
210
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
210
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
210
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
210
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
210
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
210
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
61.6k
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
61.6k
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
61.6k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
120
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
120
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
120
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
43
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
43
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
43
    }
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
204
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
204
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
204
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15constant_vectorEsRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15constant_vectorEiRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
23
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
23
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
23
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15constant_vectorElRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
79
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
79
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
79
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15constant_vectorEnRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
94
72
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
72
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
72
    }
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
133
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
133
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
133
    }
_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
176
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
176
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
426k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
426k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
426k
        }
113
176
    }
_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
41
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
41
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
181k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
180k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
180k
        }
113
41
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
98
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
98
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
245k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
245k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
245k
        }
113
98
    }
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
434
                                                      PaddedPODArray<UInt8>& c) {
127
434
        size_t size = a_offsets.size();
128
434
        ColumnString::Offset prev_a_offset = 0;
129
434
        ColumnString::Offset prev_b_offset = 0;
130
434
        const auto* a_pos = a_data.data();
131
434
        const auto* b_pos = b_data.data();
132
133
1.07k
        for (size_t i = 0; i < size; ++i) {
134
637
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
637
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
637
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
637
                             0);
138
139
637
            prev_a_offset = a_offsets[i];
140
637
            prev_b_offset = b_offsets[i];
141
637
        }
142
434
    }
_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
396
                                                      PaddedPODArray<UInt8>& c) {
127
396
        size_t size = a_offsets.size();
128
396
        ColumnString::Offset prev_a_offset = 0;
129
396
        ColumnString::Offset prev_b_offset = 0;
130
396
        const auto* a_pos = a_data.data();
131
396
        const auto* b_pos = b_data.data();
132
133
792
        for (size_t i = 0; i < size; ++i) {
134
396
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
396
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
396
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
396
                             0);
138
139
396
            prev_a_offset = a_offsets[i];
140
396
            prev_b_offset = b_offsets[i];
141
396
        }
142
396
    }
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.17k
                                                 PaddedPODArray<UInt8>& c) {
149
3.17k
        size_t size = a_offsets.size();
150
3.17k
        ColumnString::Offset prev_a_offset = 0;
151
3.17k
        const auto* a_pos = a_data.data();
152
3.17k
        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.17k
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
208
                                                 PaddedPODArray<UInt8>& c) {
149
208
        size_t size = a_offsets.size();
150
208
        ColumnString::Offset prev_a_offset = 0;
151
208
        const auto* a_pos = a_data.data();
152
208
        const auto* b_pos = b_data.data();
153
154
323k
        for (size_t i = 0; i < size; ++i) {
155
322k
            c[i] = Op::apply(
156
322k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
322k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
322k
                    0);
159
160
322k
            prev_a_offset = a_offsets[i];
161
322k
        }
162
208
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
253
                                                 PaddedPODArray<UInt8>& c) {
149
253
        size_t size = a_offsets.size();
150
253
        ColumnString::Offset prev_a_offset = 0;
151
253
        const auto* a_pos = a_data.data();
152
253
        const auto* b_pos = b_data.data();
153
154
149k
        for (size_t i = 0; i < size; ++i) {
155
149k
            c[i] = Op::apply(
156
149k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
149k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
149k
                    0);
159
160
149k
            prev_a_offset = a_offsets[i];
161
149k
        }
162
253
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
802
                                                 PaddedPODArray<UInt8>& c) {
149
802
        size_t size = a_offsets.size();
150
802
        ColumnString::Offset prev_a_offset = 0;
151
802
        const auto* a_pos = a_data.data();
152
802
        const auto* b_pos = b_data.data();
153
154
596k
        for (size_t i = 0; i < size; ++i) {
155
595k
            c[i] = Op::apply(
156
595k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
595k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
595k
                    0);
159
160
595k
            prev_a_offset = a_offsets[i];
161
595k
        }
162
802
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
1.91k
                                                 PaddedPODArray<UInt8>& c) {
149
1.91k
        size_t size = a_offsets.size();
150
1.91k
        ColumnString::Offset prev_a_offset = 0;
151
1.91k
        const auto* a_pos = a_data.data();
152
1.91k
        const auto* b_pos = b_data.data();
153
154
532k
        for (size_t i = 0; i < size; ++i) {
155
530k
            c[i] = Op::apply(
156
530k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
530k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
530k
                    0);
159
160
530k
            prev_a_offset = a_offsets[i];
161
530k
        }
162
1.91k
    }
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
527
                                                      PaddedPODArray<UInt8>& c) {
181
527
        size_t size = a_offsets.size();
182
527
        ColumnString::Offset prev_a_offset = 0;
183
527
        ColumnString::Offset prev_b_offset = 0;
184
527
        const auto* a_pos = a_data.data();
185
527
        const auto* b_pos = b_data.data();
186
187
1.50k
        for (size_t i = 0; i < size; ++i) {
188
976
            auto a_size = a_offsets[i] - prev_a_offset;
189
976
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
976
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
976
                                                               b_pos + prev_b_offset, b_size);
193
194
976
            prev_a_offset = a_offsets[i];
195
976
            prev_b_offset = b_offsets[i];
196
976
        }
197
527
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
526
                                                      PaddedPODArray<UInt8>& c) {
181
526
        size_t size = a_offsets.size();
182
526
        ColumnString::Offset prev_a_offset = 0;
183
526
        ColumnString::Offset prev_b_offset = 0;
184
526
        const auto* a_pos = a_data.data();
185
526
        const auto* b_pos = b_data.data();
186
187
1.49k
        for (size_t i = 0; i < size; ++i) {
188
972
            auto a_size = a_offsets[i] - prev_a_offset;
189
972
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
972
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
972
                                                               b_pos + prev_b_offset, b_size);
193
194
972
            prev_a_offset = a_offsets[i];
195
972
            prev_b_offset = b_offsets[i];
196
972
        }
197
526
    }
_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.6k
                                                 PaddedPODArray<UInt8>& c) {
204
23.6k
        size_t size = a_offsets.size();
205
23.6k
        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.6k
        } else {
215
23.6k
            ColumnString::Offset prev_a_offset = 0;
216
23.6k
            const auto* a_pos = a_data.data();
217
23.6k
            const auto* b_pos = b_data.data();
218
8.85M
            for (size_t i = 0; i < size; ++i) {
219
8.83M
                auto a_size = a_offsets[i] - prev_a_offset;
220
8.83M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
8.83M
                                                                   b_pos, b_size);
222
8.83M
                prev_a_offset = a_offsets[i];
223
8.83M
            }
224
23.6k
        }
225
23.6k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
22.0k
                                                 PaddedPODArray<UInt8>& c) {
204
22.0k
        size_t size = a_offsets.size();
205
22.0k
        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
22.0k
        } else {
215
22.0k
            ColumnString::Offset prev_a_offset = 0;
216
22.0k
            const auto* a_pos = a_data.data();
217
22.0k
            const auto* b_pos = b_data.data();
218
7.89M
            for (size_t i = 0; i < size; ++i) {
219
7.87M
                auto a_size = a_offsets[i] - prev_a_offset;
220
7.87M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
7.87M
                                                                   b_pos, b_size);
222
7.87M
                prev_a_offset = a_offsets[i];
223
7.87M
            }
224
22.0k
        }
225
22.0k
    }
_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
963k
            for (size_t i = 0; i < size; ++i) {
219
962k
                auto a_size = a_offsets[i] - prev_a_offset;
220
962k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
962k
                                                                   b_pos, b_size);
222
962k
                prev_a_offset = a_offsets[i];
223
962k
            }
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
472k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
265
437k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
265
1.34k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
265
6.20k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
265
10.0k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
265
3.11k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
265
13.8k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
266
267
472k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
267
437k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
267
1.34k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
267
6.20k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
267
10.0k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
267
3.11k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
267
13.7k
    FunctionComparison() = default;
268
269
1.24M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
269
1.20M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
269
1.19k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
269
6.57k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
269
15.3k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
269
3.23k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
269
14.3k
    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
243k
                            const ColumnPtr& col_right_ptr) const {
275
243k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
243k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
243k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
243k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
243k
        DCHECK(!(left_is_const && right_is_const));
282
283
243k
        if (!left_is_const && !right_is_const) {
284
7.84k
            auto col_res = ColumnUInt8::create();
285
286
7.84k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
7.84k
            vec_res.resize(col_left->get_data().size());
288
7.84k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
7.84k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
7.84k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
7.84k
                                                     vec_res);
292
293
7.84k
            block.replace_by_position(result, std::move(col_res));
294
235k
        } 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
65.1k
            auto col_res = ColumnUInt8::create();
307
308
65.1k
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
65.1k
            vec_res.resize(col_right->size());
310
65.1k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
65.1k
                              typename PrimitiveTypeTraits<PT>::CppType,
312
65.1k
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
65.1k
                                                       col_right->get_data(), vec_res);
314
315
65.1k
            block.replace_by_position(result, std::move(col_res));
316
65.1k
        }
317
243k
        return Status::OK();
318
243k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.61k
                            const ColumnPtr& col_right_ptr) const {
275
1.61k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.61k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.61k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.61k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.61k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.61k
        if (!left_is_const && !right_is_const) {
284
68
            auto col_res = ColumnUInt8::create();
285
286
68
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
68
            vec_res.resize(col_left->get_data().size());
288
68
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
68
                              typename PrimitiveTypeTraits<PT>::CppType,
290
68
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
68
                                                     vec_res);
292
293
68
            block.replace_by_position(result, std::move(col_res));
294
1.54k
        } else if (!left_is_const && right_is_const) {
295
1.54k
            auto col_res = ColumnUInt8::create();
296
297
1.54k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.54k
            vec_res.resize(col_left->size());
299
1.54k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.54k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.54k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.54k
                                                       col_right->get_element(0), vec_res);
303
304
1.54k
            block.replace_by_position(result, std::move(col_res));
305
1.54k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.61k
        return Status::OK();
318
1.61k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.72k
                            const ColumnPtr& col_right_ptr) const {
275
1.72k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.72k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.72k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.72k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.72k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.73k
        if (!left_is_const && !right_is_const) {
284
363
            auto col_res = ColumnUInt8::create();
285
286
363
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
363
            vec_res.resize(col_left->get_data().size());
288
363
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
363
                              typename PrimitiveTypeTraits<PT>::CppType,
290
363
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
363
                                                     vec_res);
292
293
363
            block.replace_by_position(result, std::move(col_res));
294
1.36k
        } else if (!left_is_const && right_is_const) {
295
1.36k
            auto col_res = ColumnUInt8::create();
296
297
1.36k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.36k
            vec_res.resize(col_left->size());
299
1.36k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.36k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.36k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.36k
                                                       col_right->get_element(0), vec_res);
303
304
1.36k
            block.replace_by_position(result, std::move(col_res));
305
1.36k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.72k
        return Status::OK();
318
1.72k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
685
                            const ColumnPtr& col_right_ptr) const {
275
685
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
685
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
685
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
685
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
685
        DCHECK(!(left_is_const && right_is_const));
282
283
685
        if (!left_is_const && !right_is_const) {
284
291
            auto col_res = ColumnUInt8::create();
285
286
291
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
291
            vec_res.resize(col_left->get_data().size());
288
291
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
291
                              typename PrimitiveTypeTraits<PT>::CppType,
290
291
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
291
                                                     vec_res);
292
293
291
            block.replace_by_position(result, std::move(col_res));
294
394
        } else if (!left_is_const && right_is_const) {
295
394
            auto col_res = ColumnUInt8::create();
296
297
394
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
394
            vec_res.resize(col_left->size());
299
394
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
394
                              typename PrimitiveTypeTraits<PT>::CppType,
301
394
                              Op<PT>>::vector_constant(col_left->get_data(),
302
394
                                                       col_right->get_element(0), vec_res);
303
304
394
            block.replace_by_position(result, std::move(col_res));
305
394
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
685
        return Status::OK();
318
685
    }
_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
6.97k
                            const ColumnPtr& col_right_ptr) const {
275
6.97k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
6.97k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
6.97k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
6.97k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
6.97k
        DCHECK(!(left_is_const && right_is_const));
282
283
6.97k
        if (!left_is_const && !right_is_const) {
284
173
            auto col_res = ColumnUInt8::create();
285
286
173
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
173
            vec_res.resize(col_left->get_data().size());
288
173
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
173
                              typename PrimitiveTypeTraits<PT>::CppType,
290
173
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
173
                                                     vec_res);
292
293
173
            block.replace_by_position(result, std::move(col_res));
294
6.79k
        } else if (!left_is_const && right_is_const) {
295
6.56k
            auto col_res = ColumnUInt8::create();
296
297
6.56k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6.56k
            vec_res.resize(col_left->size());
299
6.56k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6.56k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6.56k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6.56k
                                                       col_right->get_element(0), vec_res);
303
304
6.56k
            block.replace_by_position(result, std::move(col_res));
305
6.56k
        } else if (left_is_const && !right_is_const) {
306
234
            auto col_res = ColumnUInt8::create();
307
308
234
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
234
            vec_res.resize(col_right->size());
310
234
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
234
                              typename PrimitiveTypeTraits<PT>::CppType,
312
234
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
234
                                                       col_right->get_data(), vec_res);
314
315
234
            block.replace_by_position(result, std::move(col_res));
316
234
        }
317
6.97k
        return Status::OK();
318
6.97k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.44k
                            const ColumnPtr& col_right_ptr) const {
275
1.44k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.44k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.44k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.44k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.44k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.44k
        if (!left_is_const && !right_is_const) {
284
97
            auto col_res = ColumnUInt8::create();
285
286
97
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
97
            vec_res.resize(col_left->get_data().size());
288
97
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
97
                              typename PrimitiveTypeTraits<PT>::CppType,
290
97
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
97
                                                     vec_res);
292
293
97
            block.replace_by_position(result, std::move(col_res));
294
1.34k
        } 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
30
            auto col_res = ColumnUInt8::create();
307
308
30
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
30
            vec_res.resize(col_right->size());
310
30
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
30
                              typename PrimitiveTypeTraits<PT>::CppType,
312
30
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
30
                                                       col_right->get_data(), vec_res);
314
315
30
            block.replace_by_position(result, std::move(col_res));
316
30
        }
317
1.44k
        return Status::OK();
318
1.44k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
30.9k
                            const ColumnPtr& col_right_ptr) const {
275
30.9k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
30.9k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
30.9k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
30.9k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
30.9k
        DCHECK(!(left_is_const && right_is_const));
282
283
30.9k
        if (!left_is_const && !right_is_const) {
284
270
            auto col_res = ColumnUInt8::create();
285
286
270
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
270
            vec_res.resize(col_left->get_data().size());
288
270
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
270
                              typename PrimitiveTypeTraits<PT>::CppType,
290
270
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
270
                                                     vec_res);
292
293
270
            block.replace_by_position(result, std::move(col_res));
294
30.7k
        } else if (!left_is_const && right_is_const) {
295
30.6k
            auto col_res = ColumnUInt8::create();
296
297
30.6k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
30.6k
            vec_res.resize(col_left->size());
299
30.6k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
30.6k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
30.6k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
30.6k
                                                       col_right->get_element(0), vec_res);
303
304
30.6k
            block.replace_by_position(result, std::move(col_res));
305
30.6k
        } else if (left_is_const && !right_is_const) {
306
79
            auto col_res = ColumnUInt8::create();
307
308
79
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
79
            vec_res.resize(col_right->size());
310
79
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
79
                              typename PrimitiveTypeTraits<PT>::CppType,
312
79
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
79
                                                       col_right->get_data(), vec_res);
314
315
79
            block.replace_by_position(result, std::move(col_res));
316
79
        }
317
30.9k
        return Status::OK();
318
30.9k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
24.0k
                            const ColumnPtr& col_right_ptr) const {
275
24.0k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
24.0k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
24.0k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
24.0k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
24.0k
        DCHECK(!(left_is_const && right_is_const));
282
283
24.0k
        if (!left_is_const && !right_is_const) {
284
278
            auto col_res = ColumnUInt8::create();
285
286
278
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
278
            vec_res.resize(col_left->get_data().size());
288
278
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
278
                              typename PrimitiveTypeTraits<PT>::CppType,
290
278
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
278
                                                     vec_res);
292
293
278
            block.replace_by_position(result, std::move(col_res));
294
23.7k
        } 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
1.12k
            auto col_res = ColumnUInt8::create();
307
308
1.12k
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
1.12k
            vec_res.resize(col_right->size());
310
1.12k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
1.12k
                              typename PrimitiveTypeTraits<PT>::CppType,
312
1.12k
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
1.12k
                                                       col_right->get_data(), vec_res);
314
315
1.12k
            block.replace_by_position(result, std::move(col_res));
316
1.12k
        }
317
24.0k
        return Status::OK();
318
24.0k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_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
91
            auto col_res = ColumnUInt8::create();
285
286
91
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
91
            vec_res.resize(col_left->get_data().size());
288
91
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
91
                              typename PrimitiveTypeTraits<PT>::CppType,
290
91
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
91
                                                     vec_res);
292
293
91
            block.replace_by_position(result, std::move(col_res));
294
91
        } 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
12
            auto col_res = ColumnUInt8::create();
307
308
12
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
12
            vec_res.resize(col_right->size());
310
12
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
12
                              typename PrimitiveTypeTraits<PT>::CppType,
312
12
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
12
                                                       col_right->get_data(), vec_res);
314
315
12
            block.replace_by_position(result, std::move(col_res));
316
12
        }
317
160
        return Status::OK();
318
160
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
31
                            const ColumnPtr& col_right_ptr) const {
275
31
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
31
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
31
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
31
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
31
        DCHECK(!(left_is_const && right_is_const));
282
283
31
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
15
            auto col_res = ColumnUInt8::create();
296
297
15
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
15
            vec_res.resize(col_left->size());
299
15
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
15
                              typename PrimitiveTypeTraits<PT>::CppType,
301
15
                              Op<PT>>::vector_constant(col_left->get_data(),
302
15
                                                       col_right->get_element(0), vec_res);
303
304
15
            block.replace_by_position(result, std::move(col_res));
305
15
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
31
        return Status::OK();
318
31
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
30
                            const ColumnPtr& col_right_ptr) const {
275
30
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
30
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
30
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
30
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
30
        DCHECK(!(left_is_const && right_is_const));
282
283
30
        if (!left_is_const && !right_is_const) {
284
24
            auto col_res = ColumnUInt8::create();
285
286
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
24
            vec_res.resize(col_left->get_data().size());
288
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
24
                              typename PrimitiveTypeTraits<PT>::CppType,
290
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
24
                                                     vec_res);
292
293
24
            block.replace_by_position(result, std::move(col_res));
294
24
        } else if (!left_is_const && right_is_const) {
295
6
            auto col_res = ColumnUInt8::create();
296
297
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6
            vec_res.resize(col_left->size());
299
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6
                                                       col_right->get_element(0), vec_res);
303
304
6
            block.replace_by_position(result, std::move(col_res));
305
6
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
30
        return Status::OK();
318
30
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
124
                            const ColumnPtr& col_right_ptr) const {
275
124
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
124
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
124
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
124
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
124
        DCHECK(!(left_is_const && right_is_const));
282
283
124
        if (!left_is_const && !right_is_const) {
284
120
            auto col_res = ColumnUInt8::create();
285
286
120
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
120
            vec_res.resize(col_left->get_data().size());
288
120
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
120
                              typename PrimitiveTypeTraits<PT>::CppType,
290
120
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
120
                                                     vec_res);
292
293
120
            block.replace_by_position(result, std::move(col_res));
294
120
        } 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
124
        return Status::OK();
318
124
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
449
                            const ColumnPtr& col_right_ptr) const {
275
449
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
449
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
449
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
449
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
449
        DCHECK(!(left_is_const && right_is_const));
282
283
449
        if (!left_is_const && !right_is_const) {
284
113
            auto col_res = ColumnUInt8::create();
285
286
113
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
113
            vec_res.resize(col_left->get_data().size());
288
113
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
113
                              typename PrimitiveTypeTraits<PT>::CppType,
290
113
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
113
                                                     vec_res);
292
293
113
            block.replace_by_position(result, std::move(col_res));
294
336
        } else if (!left_is_const && right_is_const) {
295
336
            auto col_res = ColumnUInt8::create();
296
297
336
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
336
            vec_res.resize(col_left->size());
299
336
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
336
                              typename PrimitiveTypeTraits<PT>::CppType,
301
336
                              Op<PT>>::vector_constant(col_left->get_data(),
302
336
                                                       col_right->get_element(0), vec_res);
303
304
336
            block.replace_by_position(result, std::move(col_res));
305
336
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
449
        return Status::OK();
318
449
    }
_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
82
                            const ColumnPtr& col_right_ptr) const {
275
82
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
82
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
82
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
82
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
82
        DCHECK(!(left_is_const && right_is_const));
282
283
82
        if (!left_is_const && !right_is_const) {
284
39
            auto col_res = ColumnUInt8::create();
285
286
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
39
            vec_res.resize(col_left->get_data().size());
288
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
39
                              typename PrimitiveTypeTraits<PT>::CppType,
290
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
39
                                                     vec_res);
292
293
39
            block.replace_by_position(result, std::move(col_res));
294
43
        } else if (!left_is_const && right_is_const) {
295
43
            auto col_res = ColumnUInt8::create();
296
297
43
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
43
            vec_res.resize(col_left->size());
299
43
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
43
                              typename PrimitiveTypeTraits<PT>::CppType,
301
43
                              Op<PT>>::vector_constant(col_left->get_data(),
302
43
                                                       col_right->get_element(0), vec_res);
303
304
43
            block.replace_by_position(result, std::move(col_res));
305
43
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
82
        return Status::OK();
318
82
    }
_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.44k
                            const ColumnPtr& col_right_ptr) const {
275
3.44k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.44k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.44k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.44k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.44k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.44k
        if (!left_is_const && !right_is_const) {
284
581
            auto col_res = ColumnUInt8::create();
285
286
581
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
581
            vec_res.resize(col_left->get_data().size());
288
581
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
581
                              typename PrimitiveTypeTraits<PT>::CppType,
290
581
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
581
                                                     vec_res);
292
293
581
            block.replace_by_position(result, std::move(col_res));
294
2.86k
        } else if (!left_is_const && right_is_const) {
295
2.86k
            auto col_res = ColumnUInt8::create();
296
297
2.86k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2.86k
            vec_res.resize(col_left->size());
299
2.86k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2.86k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2.86k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2.86k
                                                       col_right->get_element(0), vec_res);
303
304
2.86k
            block.replace_by_position(result, std::move(col_res));
305
2.86k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.44k
        return Status::OK();
318
3.44k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3.04k
                            const ColumnPtr& col_right_ptr) const {
275
3.04k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.04k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.04k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.04k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.04k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.04k
        if (!left_is_const && !right_is_const) {
284
318
            auto col_res = ColumnUInt8::create();
285
286
318
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
318
            vec_res.resize(col_left->get_data().size());
288
318
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
318
                              typename PrimitiveTypeTraits<PT>::CppType,
290
318
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
318
                                                     vec_res);
292
293
318
            block.replace_by_position(result, std::move(col_res));
294
2.72k
        } else if (!left_is_const && right_is_const) {
295
1.94k
            auto col_res = ColumnUInt8::create();
296
297
1.94k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.94k
            vec_res.resize(col_left->size());
299
1.94k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.94k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.94k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.94k
                                                       col_right->get_element(0), vec_res);
303
304
1.94k
            block.replace_by_position(result, std::move(col_res));
305
1.94k
        } 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.04k
        return Status::OK();
318
3.04k
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
48
                            const ColumnPtr& col_right_ptr) const {
275
48
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
48
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
48
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
48
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
48
        DCHECK(!(left_is_const && right_is_const));
282
283
48
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
28
        } else if (!left_is_const && right_is_const) {
295
28
            auto col_res = ColumnUInt8::create();
296
297
28
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
28
            vec_res.resize(col_left->size());
299
28
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
28
                              typename PrimitiveTypeTraits<PT>::CppType,
301
28
                              Op<PT>>::vector_constant(col_left->get_data(),
302
28
                                                       col_right->get_element(0), vec_res);
303
304
28
            block.replace_by_position(result, std::move(col_res));
305
28
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
48
        return Status::OK();
318
48
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
59
                            const ColumnPtr& col_right_ptr) const {
275
59
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
59
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
59
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
59
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
59
        DCHECK(!(left_is_const && right_is_const));
282
283
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
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
59
        return Status::OK();
318
59
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.16k
                            const ColumnPtr& col_right_ptr) const {
275
1.16k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.16k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.16k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.16k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.16k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.16k
        if (!left_is_const && !right_is_const) {
284
1.00k
            auto col_res = ColumnUInt8::create();
285
286
1.00k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.00k
            vec_res.resize(col_left->get_data().size());
288
1.00k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.00k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.00k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.00k
                                                     vec_res);
292
293
1.00k
            block.replace_by_position(result, std::move(col_res));
294
1.00k
        } else if (!left_is_const && right_is_const) {
295
159
            auto col_res = ColumnUInt8::create();
296
297
159
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
159
            vec_res.resize(col_left->size());
299
159
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
159
                              typename PrimitiveTypeTraits<PT>::CppType,
301
159
                              Op<PT>>::vector_constant(col_left->get_data(),
302
159
                                                       col_right->get_element(0), vec_res);
303
304
159
            block.replace_by_position(result, std::move(col_res));
305
159
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.16k
        return Status::OK();
318
1.16k
    }
_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.35k
                            const ColumnPtr& col_right_ptr) const {
275
1.35k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.35k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.35k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.35k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.35k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.35k
        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.31k
        } else if (!left_is_const && right_is_const) {
295
1.10k
            auto col_res = ColumnUInt8::create();
296
297
1.10k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.10k
            vec_res.resize(col_left->size());
299
1.10k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.10k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.10k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.10k
                                                       col_right->get_element(0), vec_res);
303
304
1.10k
            block.replace_by_position(result, std::move(col_res));
305
1.10k
        } else if (left_is_const && !right_is_const) {
306
210
            auto col_res = ColumnUInt8::create();
307
308
210
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
210
            vec_res.resize(col_right->size());
310
210
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
210
                              typename PrimitiveTypeTraits<PT>::CppType,
312
210
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
210
                                                       col_right->get_data(), vec_res);
314
315
210
            block.replace_by_position(result, std::move(col_res));
316
210
        }
317
1.35k
        return Status::OK();
318
1.35k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.93k
                            const ColumnPtr& col_right_ptr) const {
275
1.93k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.93k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.93k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.93k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.93k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.93k
        if (!left_is_const && !right_is_const) {
284
112
            auto col_res = ColumnUInt8::create();
285
286
112
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
112
            vec_res.resize(col_left->get_data().size());
288
112
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
112
                              typename PrimitiveTypeTraits<PT>::CppType,
290
112
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
112
                                                     vec_res);
292
293
112
            block.replace_by_position(result, std::move(col_res));
294
1.82k
        } else if (!left_is_const && right_is_const) {
295
1.61k
            auto col_res = ColumnUInt8::create();
296
297
1.61k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.61k
            vec_res.resize(col_left->size());
299
1.61k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.61k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.61k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.61k
                                                       col_right->get_element(0), vec_res);
303
304
1.61k
            block.replace_by_position(result, std::move(col_res));
305
1.61k
        } else if (left_is_const && !right_is_const) {
306
209
            auto col_res = ColumnUInt8::create();
307
308
209
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
209
            vec_res.resize(col_right->size());
310
209
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
209
                              typename PrimitiveTypeTraits<PT>::CppType,
312
209
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
209
                                                       col_right->get_data(), vec_res);
314
315
209
            block.replace_by_position(result, std::move(col_res));
316
209
        }
317
1.93k
        return Status::OK();
318
1.93k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
82.7k
                            const ColumnPtr& col_right_ptr) const {
275
82.7k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
82.7k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
82.7k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
82.7k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
82.7k
        DCHECK(!(left_is_const && right_is_const));
282
283
82.7k
        if (!left_is_const && !right_is_const) {
284
44
            auto col_res = ColumnUInt8::create();
285
286
44
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
44
            vec_res.resize(col_left->get_data().size());
288
44
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
44
                              typename PrimitiveTypeTraits<PT>::CppType,
290
44
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
44
                                                     vec_res);
292
293
44
            block.replace_by_position(result, std::move(col_res));
294
82.7k
        } else if (!left_is_const && right_is_const) {
295
21.0k
            auto col_res = ColumnUInt8::create();
296
297
21.0k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
21.0k
            vec_res.resize(col_left->size());
299
21.0k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
21.0k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
21.0k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
21.0k
                                                       col_right->get_element(0), vec_res);
303
304
21.0k
            block.replace_by_position(result, std::move(col_res));
305
61.6k
        } else if (left_is_const && !right_is_const) {
306
61.6k
            auto col_res = ColumnUInt8::create();
307
308
61.6k
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
61.6k
            vec_res.resize(col_right->size());
310
61.6k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
61.6k
                              typename PrimitiveTypeTraits<PT>::CppType,
312
61.6k
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
61.6k
                                                       col_right->get_data(), vec_res);
314
315
61.6k
            block.replace_by_position(result, std::move(col_res));
316
61.6k
        }
317
82.7k
        return Status::OK();
318
82.7k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
13.5k
                            const ColumnPtr& col_right_ptr) const {
275
13.5k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
13.5k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
13.5k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
13.5k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
13.5k
        DCHECK(!(left_is_const && right_is_const));
282
283
13.5k
        if (!left_is_const && !right_is_const) {
284
65
            auto col_res = ColumnUInt8::create();
285
286
65
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
65
            vec_res.resize(col_left->get_data().size());
288
65
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
65
                              typename PrimitiveTypeTraits<PT>::CppType,
290
65
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
65
                                                     vec_res);
292
293
65
            block.replace_by_position(result, std::move(col_res));
294
13.5k
        } else if (!left_is_const && right_is_const) {
295
13.3k
            auto col_res = ColumnUInt8::create();
296
297
13.3k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
13.3k
            vec_res.resize(col_left->size());
299
13.3k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
13.3k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
13.3k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
13.3k
                                                       col_right->get_element(0), vec_res);
303
304
13.3k
            block.replace_by_position(result, std::move(col_res));
305
13.3k
        } else if (left_is_const && !right_is_const) {
306
120
            auto col_res = ColumnUInt8::create();
307
308
120
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
120
            vec_res.resize(col_right->size());
310
120
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
120
                              typename PrimitiveTypeTraits<PT>::CppType,
312
120
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
120
                                                       col_right->get_data(), vec_res);
314
315
120
            block.replace_by_position(result, std::move(col_res));
316
120
        }
317
13.5k
        return Status::OK();
318
13.5k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
246
                            const ColumnPtr& col_right_ptr) const {
275
246
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
246
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
246
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
246
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
246
        DCHECK(!(left_is_const && right_is_const));
282
283
246
        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
244
        } 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
43
            auto col_res = ColumnUInt8::create();
307
308
43
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
43
            vec_res.resize(col_right->size());
310
43
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
43
                              typename PrimitiveTypeTraits<PT>::CppType,
312
43
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
43
                                                       col_right->get_data(), vec_res);
314
315
43
            block.replace_by_position(result, std::move(col_res));
316
43
        }
317
246
        return Status::OK();
318
246
    }
_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.51k
                            const ColumnPtr& col_right_ptr) const {
275
2.51k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.51k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.51k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.51k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.51k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.51k
        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
2.48k
        } else if (!left_is_const && right_is_const) {
295
2.48k
            auto col_res = ColumnUInt8::create();
296
297
2.48k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2.48k
            vec_res.resize(col_left->size());
299
2.48k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2.48k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2.48k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2.48k
                                                       col_right->get_element(0), vec_res);
303
304
2.48k
            block.replace_by_position(result, std::move(col_res));
305
2.48k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.51k
        return Status::OK();
318
2.51k
    }
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
193
                            const ColumnPtr& col_right_ptr) const {
275
193
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
193
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
193
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
193
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
193
        DCHECK(!(left_is_const && right_is_const));
282
283
193
        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
193
        } else if (!left_is_const && right_is_const) {
295
193
            auto col_res = ColumnUInt8::create();
296
297
193
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
193
            vec_res.resize(col_left->size());
299
193
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
193
                              typename PrimitiveTypeTraits<PT>::CppType,
301
193
                              Op<PT>>::vector_constant(col_left->get_data(),
302
193
                                                       col_right->get_element(0), vec_res);
303
304
193
            block.replace_by_position(result, std::move(col_res));
305
193
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
193
        return Status::OK();
318
193
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_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
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.60k
        } else if (!left_is_const && right_is_const) {
295
1.60k
            auto col_res = ColumnUInt8::create();
296
297
1.60k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.60k
            vec_res.resize(col_left->size());
299
1.60k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.60k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.60k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.60k
                                                       col_right->get_element(0), vec_res);
303
304
1.60k
            block.replace_by_position(result, std::move(col_res));
305
1.60k
        } 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.60k
        return Status::OK();
318
1.60k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
730
                            const ColumnPtr& col_right_ptr) const {
275
730
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
730
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
730
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
730
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
730
        DCHECK(!(left_is_const && right_is_const));
282
283
730
        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
724
        } else if (!left_is_const && right_is_const) {
295
724
            auto col_res = ColumnUInt8::create();
296
297
724
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
724
            vec_res.resize(col_left->size());
299
724
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
724
                              typename PrimitiveTypeTraits<PT>::CppType,
301
724
                              Op<PT>>::vector_constant(col_left->get_data(),
302
724
                                                       col_right->get_element(0), vec_res);
303
304
724
            block.replace_by_position(result, std::move(col_res));
305
724
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
730
        return Status::OK();
318
730
    }
_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
41
                            const ColumnPtr& col_right_ptr) const {
275
41
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
41
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
41
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
41
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
41
        DCHECK(!(left_is_const && right_is_const));
282
283
41
        if (!left_is_const && !right_is_const) {
284
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
41
        } else if (!left_is_const && right_is_const) {
295
41
            auto col_res = ColumnUInt8::create();
296
297
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
41
            vec_res.resize(col_left->size());
299
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
41
                              typename PrimitiveTypeTraits<PT>::CppType,
301
41
                              Op<PT>>::vector_constant(col_left->get_data(),
302
41
                                                       col_right->get_element(0), vec_res);
303
304
41
            block.replace_by_position(result, std::move(col_res));
305
41
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
41
        return Status::OK();
318
41
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
57
                            const ColumnPtr& col_right_ptr) const {
275
57
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
57
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
57
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
57
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
57
        DCHECK(!(left_is_const && right_is_const));
282
283
57
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
57
        } else if (!left_is_const && right_is_const) {
295
57
            auto col_res = ColumnUInt8::create();
296
297
57
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
57
            vec_res.resize(col_left->size());
299
57
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
57
                              typename PrimitiveTypeTraits<PT>::CppType,
301
57
                              Op<PT>>::vector_constant(col_left->get_data(),
302
57
                                                       col_right->get_element(0), vec_res);
303
304
57
            block.replace_by_position(result, std::move(col_res));
305
57
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
57
        return Status::OK();
318
57
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
14.1k
                            const ColumnPtr& col_right_ptr) const {
275
14.1k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
14.1k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
14.1k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
14.1k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
14.1k
        DCHECK(!(left_is_const && right_is_const));
282
283
14.1k
        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
14.1k
        } else if (!left_is_const && right_is_const) {
295
14.1k
            auto col_res = ColumnUInt8::create();
296
297
14.1k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
14.1k
            vec_res.resize(col_left->size());
299
14.1k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
14.1k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
14.1k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
14.1k
                                                       col_right->get_element(0), vec_res);
303
304
14.1k
            block.replace_by_position(result, std::move(col_res));
305
14.1k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
14.1k
        return Status::OK();
318
14.1k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
850
                            const ColumnPtr& col_right_ptr) const {
275
850
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
850
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
850
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
850
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
850
        DCHECK(!(left_is_const && right_is_const));
282
283
850
        if (!left_is_const && !right_is_const) {
284
8
            auto col_res = ColumnUInt8::create();
285
286
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
8
            vec_res.resize(col_left->get_data().size());
288
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
8
                              typename PrimitiveTypeTraits<PT>::CppType,
290
8
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
8
                                                     vec_res);
292
293
8
            block.replace_by_position(result, std::move(col_res));
294
842
        } else if (!left_is_const && right_is_const) {
295
842
            auto col_res = ColumnUInt8::create();
296
297
842
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
842
            vec_res.resize(col_left->size());
299
842
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
842
                              typename PrimitiveTypeTraits<PT>::CppType,
301
842
                              Op<PT>>::vector_constant(col_left->get_data(),
302
842
                                                       col_right->get_element(0), vec_res);
303
304
842
            block.replace_by_position(result, std::move(col_res));
305
842
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
850
        return Status::OK();
318
850
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_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
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
48
        } else if (!left_is_const && right_is_const) {
295
48
            auto col_res = ColumnUInt8::create();
296
297
48
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
48
            vec_res.resize(col_left->size());
299
48
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
48
                              typename PrimitiveTypeTraits<PT>::CppType,
301
48
                              Op<PT>>::vector_constant(col_left->get_data(),
302
48
                                                       col_right->get_element(0), vec_res);
303
304
48
            block.replace_by_position(result, std::move(col_res));
305
48
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
48
        return Status::OK();
318
48
    }
_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
138
                            const ColumnPtr& col_right_ptr) const {
275
138
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
138
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
138
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
138
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
138
        DCHECK(!(left_is_const && right_is_const));
282
283
138
        if (!left_is_const && !right_is_const) {
284
24
            auto col_res = ColumnUInt8::create();
285
286
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
24
            vec_res.resize(col_left->get_data().size());
288
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
24
                              typename PrimitiveTypeTraits<PT>::CppType,
290
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
24
                                                     vec_res);
292
293
24
            block.replace_by_position(result, std::move(col_res));
294
114
        } else if (!left_is_const && right_is_const) {
295
114
            auto col_res = ColumnUInt8::create();
296
297
114
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
114
            vec_res.resize(col_left->size());
299
114
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
114
                              typename PrimitiveTypeTraits<PT>::CppType,
301
114
                              Op<PT>>::vector_constant(col_left->get_data(),
302
114
                                                       col_right->get_element(0), vec_res);
303
304
114
            block.replace_by_position(result, std::move(col_res));
305
114
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
138
        return Status::OK();
318
138
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
73
                            const ColumnPtr& col_right_ptr) const {
275
73
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
73
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
73
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
73
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
73
        DCHECK(!(left_is_const && right_is_const));
282
283
73
        if (!left_is_const && !right_is_const) {
284
73
            auto col_res = ColumnUInt8::create();
285
286
73
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
73
            vec_res.resize(col_left->get_data().size());
288
73
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
73
                              typename PrimitiveTypeTraits<PT>::CppType,
290
73
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
73
                                                     vec_res);
292
293
73
            block.replace_by_position(result, std::move(col_res));
294
73
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
73
        return Status::OK();
318
73
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.11k
                            const ColumnPtr& col_right_ptr) const {
275
2.11k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.11k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.11k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.11k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.11k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.11k
        if (!left_is_const && !right_is_const) {
284
1.65k
            auto col_res = ColumnUInt8::create();
285
286
1.65k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.65k
            vec_res.resize(col_left->get_data().size());
288
1.65k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.65k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.65k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.65k
                                                     vec_res);
292
293
1.65k
            block.replace_by_position(result, std::move(col_res));
294
1.65k
        } else if (!left_is_const && right_is_const) {
295
466
            auto col_res = ColumnUInt8::create();
296
297
466
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
466
            vec_res.resize(col_left->size());
299
466
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
466
                              typename PrimitiveTypeTraits<PT>::CppType,
301
466
                              Op<PT>>::vector_constant(col_left->get_data(),
302
466
                                                       col_right->get_element(0), vec_res);
303
304
466
            block.replace_by_position(result, std::move(col_res));
305
466
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(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.11k
        return Status::OK();
318
2.11k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
574
                            const ColumnPtr& col_right_ptr) const {
275
574
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
574
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
574
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
574
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
574
        DCHECK(!(left_is_const && right_is_const));
282
283
574
        if (!left_is_const && !right_is_const) {
284
237
            auto col_res = ColumnUInt8::create();
285
286
237
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
237
            vec_res.resize(col_left->get_data().size());
288
237
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
237
                              typename PrimitiveTypeTraits<PT>::CppType,
290
237
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
237
                                                     vec_res);
292
293
237
            block.replace_by_position(result, std::move(col_res));
294
337
        } else if (!left_is_const && right_is_const) {
295
337
            auto col_res = ColumnUInt8::create();
296
297
337
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
337
            vec_res.resize(col_left->size());
299
337
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
337
                              typename PrimitiveTypeTraits<PT>::CppType,
301
337
                              Op<PT>>::vector_constant(col_left->get_data(),
302
337
                                                       col_right->get_element(0), vec_res);
303
304
337
            block.replace_by_position(result, std::move(col_res));
305
337
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
574
        return Status::OK();
318
574
    }
_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.10k
                            const ColumnPtr& col_right_ptr) const {
275
2.10k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.10k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.10k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.10k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.10k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.10k
        if (!left_is_const && !right_is_const) {
284
134
            auto col_res = ColumnUInt8::create();
285
286
134
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
134
            vec_res.resize(col_left->get_data().size());
288
134
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
134
                              typename PrimitiveTypeTraits<PT>::CppType,
290
134
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
134
                                                     vec_res);
292
293
134
            block.replace_by_position(result, std::move(col_res));
294
1.97k
        } else if (!left_is_const && right_is_const) {
295
1.76k
            auto col_res = ColumnUInt8::create();
296
297
1.76k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.76k
            vec_res.resize(col_left->size());
299
1.76k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.76k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.76k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.76k
                                                       col_right->get_element(0), vec_res);
303
304
1.76k
            block.replace_by_position(result, std::move(col_res));
305
1.76k
        } else if (left_is_const && !right_is_const) {
306
204
            auto col_res = ColumnUInt8::create();
307
308
204
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
204
            vec_res.resize(col_right->size());
310
204
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
204
                              typename PrimitiveTypeTraits<PT>::CppType,
312
204
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
204
                                                       col_right->get_data(), vec_res);
314
315
204
            block.replace_by_position(result, std::move(col_res));
316
204
        }
317
2.10k
        return Status::OK();
318
2.10k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
387
                            const ColumnPtr& col_right_ptr) const {
275
387
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
387
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
387
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
387
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
387
        DCHECK(!(left_is_const && right_is_const));
282
283
387
        if (!left_is_const && !right_is_const) {
284
119
            auto col_res = ColumnUInt8::create();
285
286
119
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
119
            vec_res.resize(col_left->get_data().size());
288
119
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
119
                              typename PrimitiveTypeTraits<PT>::CppType,
290
119
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
119
                                                     vec_res);
292
293
119
            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
387
        return Status::OK();
318
387
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
5.92k
                            const ColumnPtr& col_right_ptr) const {
275
5.92k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
5.92k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
5.92k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
5.92k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
5.92k
        DCHECK(!(left_is_const && right_is_const));
282
283
5.92k
        if (!left_is_const && !right_is_const) {
284
143
            auto col_res = ColumnUInt8::create();
285
286
143
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
143
            vec_res.resize(col_left->get_data().size());
288
143
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
143
                              typename PrimitiveTypeTraits<PT>::CppType,
290
143
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
143
                                                     vec_res);
292
293
143
            block.replace_by_position(result, std::move(col_res));
294
5.78k
        } else if (!left_is_const && right_is_const) {
295
5.76k
            auto col_res = ColumnUInt8::create();
296
297
5.76k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
5.76k
            vec_res.resize(col_left->size());
299
5.76k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
5.76k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
5.76k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
5.76k
                                                       col_right->get_element(0), vec_res);
303
304
5.76k
            block.replace_by_position(result, std::move(col_res));
305
5.76k
        } else if (left_is_const && !right_is_const) {
306
23
            auto col_res = ColumnUInt8::create();
307
308
23
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
23
            vec_res.resize(col_right->size());
310
23
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
23
                              typename PrimitiveTypeTraits<PT>::CppType,
312
23
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
23
                                                       col_right->get_data(), vec_res);
314
315
23
            block.replace_by_position(result, std::move(col_res));
316
23
        }
317
5.92k
        return Status::OK();
318
5.92k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.70k
                            const ColumnPtr& col_right_ptr) const {
275
1.70k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.70k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.70k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.70k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.70k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.70k
        if (!left_is_const && !right_is_const) {
284
200
            auto col_res = ColumnUInt8::create();
285
286
200
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
200
            vec_res.resize(col_left->get_data().size());
288
200
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
200
                              typename PrimitiveTypeTraits<PT>::CppType,
290
200
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
200
                                                     vec_res);
292
293
200
            block.replace_by_position(result, std::move(col_res));
294
1.50k
        } else if (!left_is_const && right_is_const) {
295
1.43k
            auto col_res = ColumnUInt8::create();
296
297
1.43k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.43k
            vec_res.resize(col_left->size());
299
1.43k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.43k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.43k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.43k
                                                       col_right->get_element(0), vec_res);
303
304
1.43k
            block.replace_by_position(result, std::move(col_res));
305
1.43k
        } else if (left_is_const && !right_is_const) {
306
79
            auto col_res = ColumnUInt8::create();
307
308
79
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
79
            vec_res.resize(col_right->size());
310
79
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
79
                              typename PrimitiveTypeTraits<PT>::CppType,
312
79
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
79
                                                       col_right->get_data(), vec_res);
314
315
79
            block.replace_by_position(result, std::move(col_res));
316
79
        }
317
1.70k
        return Status::OK();
318
1.70k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
262
                            const ColumnPtr& col_right_ptr) const {
275
262
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
262
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
262
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
262
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
262
        DCHECK(!(left_is_const && right_is_const));
282
283
262
        if (!left_is_const && !right_is_const) {
284
133
            auto col_res = ColumnUInt8::create();
285
286
133
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
133
            vec_res.resize(col_left->get_data().size());
288
133
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
133
                              typename PrimitiveTypeTraits<PT>::CppType,
290
133
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
133
                                                     vec_res);
292
293
133
            block.replace_by_position(result, std::move(col_res));
294
133
        } 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
72
        } else if (left_is_const && !right_is_const) {
306
72
            auto col_res = ColumnUInt8::create();
307
308
72
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
72
            vec_res.resize(col_right->size());
310
72
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
72
                              typename PrimitiveTypeTraits<PT>::CppType,
312
72
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
72
                                                       col_right->get_data(), vec_res);
314
315
72
            block.replace_by_position(result, std::move(col_res));
316
72
        }
317
262
        return Status::OK();
318
262
    }
_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
164
                            const ColumnPtr& col_right_ptr) const {
275
164
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
164
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
164
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
164
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
164
        DCHECK(!(left_is_const && right_is_const));
282
283
164
        if (!left_is_const && !right_is_const) {
284
138
            auto col_res = ColumnUInt8::create();
285
286
138
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
138
            vec_res.resize(col_left->get_data().size());
288
138
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
138
                              typename PrimitiveTypeTraits<PT>::CppType,
290
138
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
138
                                                     vec_res);
292
293
138
            block.replace_by_position(result, std::move(col_res));
294
138
        } 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
164
        return Status::OK();
318
164
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
362
                            const ColumnPtr& col_right_ptr) const {
275
362
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
362
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
362
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
362
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
362
        DCHECK(!(left_is_const && right_is_const));
282
283
362
        if (!left_is_const && !right_is_const) {
284
130
            auto col_res = ColumnUInt8::create();
285
286
130
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
130
            vec_res.resize(col_left->get_data().size());
288
130
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
130
                              typename PrimitiveTypeTraits<PT>::CppType,
290
130
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
130
                                                     vec_res);
292
293
130
            block.replace_by_position(result, std::move(col_res));
294
232
        } else if (!left_is_const && right_is_const) {
295
232
            auto col_res = ColumnUInt8::create();
296
297
232
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
232
            vec_res.resize(col_left->size());
299
232
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
232
                              typename PrimitiveTypeTraits<PT>::CppType,
301
232
                              Op<PT>>::vector_constant(col_left->get_data(),
302
232
                                                       col_right->get_element(0), vec_res);
303
304
232
            block.replace_by_position(result, std::move(col_res));
305
232
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
362
        return Status::OK();
318
362
    }
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
376
                            const ColumnPtr& col_right_ptr) const {
275
376
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
376
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
376
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
376
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
376
        DCHECK(!(left_is_const && right_is_const));
282
283
376
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
376
        } else if (!left_is_const && right_is_const) {
295
376
            auto col_res = ColumnUInt8::create();
296
297
376
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
376
            vec_res.resize(col_left->size());
299
376
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
376
                              typename PrimitiveTypeTraits<PT>::CppType,
301
376
                              Op<PT>>::vector_constant(col_left->get_data(),
302
376
                                                       col_right->get_element(0), vec_res);
303
304
376
            block.replace_by_position(result, std::move(col_res));
305
376
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
376
        return Status::OK();
318
376
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
7.79k
                            const ColumnPtr& col_right_ptr) const {
275
7.79k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
7.79k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
7.79k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
7.79k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
7.79k
        DCHECK(!(left_is_const && right_is_const));
282
283
7.79k
        if (!left_is_const && !right_is_const) {
284
403
            auto col_res = ColumnUInt8::create();
285
286
403
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
403
            vec_res.resize(col_left->get_data().size());
288
403
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
403
                              typename PrimitiveTypeTraits<PT>::CppType,
290
403
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
403
                                                     vec_res);
292
293
403
            block.replace_by_position(result, std::move(col_res));
294
7.39k
        } else if (!left_is_const && right_is_const) {
295
7.38k
            auto col_res = ColumnUInt8::create();
296
297
7.38k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
7.38k
            vec_res.resize(col_left->size());
299
7.38k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
7.38k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
7.38k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
7.38k
                                                       col_right->get_element(0), vec_res);
303
304
7.38k
            block.replace_by_position(result, std::move(col_res));
305
7.38k
        } else if (left_is_const && !right_is_const) {
306
5
            auto col_res = ColumnUInt8::create();
307
308
5
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
5
            vec_res.resize(col_right->size());
310
5
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
5
                              typename PrimitiveTypeTraits<PT>::CppType,
312
5
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
5
                                                       col_right->get_data(), vec_res);
314
315
5
            block.replace_by_position(result, std::move(col_res));
316
5
        }
317
7.79k
        return Status::OK();
318
7.79k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
564
                            const ColumnPtr& col_right_ptr) const {
275
564
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
564
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
564
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
564
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
564
        DCHECK(!(left_is_const && right_is_const));
282
283
564
        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
564
        } else if (!left_is_const && right_is_const) {
295
564
            auto col_res = ColumnUInt8::create();
296
297
564
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
564
            vec_res.resize(col_left->size());
299
564
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
564
                              typename PrimitiveTypeTraits<PT>::CppType,
301
564
                              Op<PT>>::vector_constant(col_left->get_data(),
302
564
                                                       col_right->get_element(0), vec_res);
303
304
564
            block.replace_by_position(result, std::move(col_res));
305
564
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
564
        return Status::OK();
318
564
    }
_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
272
                            const ColumnPtr& col_right_ptr) const {
275
272
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
272
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
272
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
272
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
272
        DCHECK(!(left_is_const && right_is_const));
282
283
272
        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
271
        } else if (!left_is_const && right_is_const) {
295
271
            auto col_res = ColumnUInt8::create();
296
297
271
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
271
            vec_res.resize(col_left->size());
299
271
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
271
                              typename PrimitiveTypeTraits<PT>::CppType,
301
271
                              Op<PT>>::vector_constant(col_left->get_data(),
302
271
                                                       col_right->get_element(0), vec_res);
303
304
271
            block.replace_by_position(result, std::move(col_res));
305
271
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
272
        return Status::OK();
318
272
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
253
                            const ColumnPtr& col_right_ptr) const {
275
253
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
253
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
253
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
253
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
253
        DCHECK(!(left_is_const && right_is_const));
282
283
253
        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
253
        } else if (!left_is_const && right_is_const) {
295
253
            auto col_res = ColumnUInt8::create();
296
297
253
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
253
            vec_res.resize(col_left->size());
299
253
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
253
                              typename PrimitiveTypeTraits<PT>::CppType,
301
253
                              Op<PT>>::vector_constant(col_left->get_data(),
302
253
                                                       col_right->get_element(0), vec_res);
303
304
253
            block.replace_by_position(result, std::move(col_res));
305
253
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
253
        return Status::OK();
318
253
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
22.1k
                            const ColumnPtr& col_right_ptr) const {
275
22.1k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
22.1k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
22.1k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
22.1k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
22.1k
        DCHECK(!(left_is_const && right_is_const));
282
283
22.1k
        if (!left_is_const && !right_is_const) {
284
10
            auto col_res = ColumnUInt8::create();
285
286
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
10
            vec_res.resize(col_left->get_data().size());
288
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
10
                              typename PrimitiveTypeTraits<PT>::CppType,
290
10
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
10
                                                     vec_res);
292
293
10
            block.replace_by_position(result, std::move(col_res));
294
22.1k
        } else if (!left_is_const && right_is_const) {
295
22.0k
            auto col_res = ColumnUInt8::create();
296
297
22.0k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
22.0k
            vec_res.resize(col_left->size());
299
22.0k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
22.0k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
22.0k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
22.0k
                                                       col_right->get_element(0), vec_res);
303
304
22.0k
            block.replace_by_position(result, std::move(col_res));
305
22.0k
        } else if (left_is_const && !right_is_const) {
306
133
            auto col_res = ColumnUInt8::create();
307
308
133
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
133
            vec_res.resize(col_right->size());
310
133
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
133
                              typename PrimitiveTypeTraits<PT>::CppType,
312
133
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
133
                                                       col_right->get_data(), vec_res);
314
315
133
            block.replace_by_position(result, std::move(col_res));
316
133
        }
317
22.1k
        return Status::OK();
318
22.1k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.00k
                            const ColumnPtr& col_right_ptr) const {
275
1.00k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.00k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.00k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.00k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.00k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.00k
        if (!left_is_const && !right_is_const) {
284
68
            auto col_res = ColumnUInt8::create();
285
286
68
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
68
            vec_res.resize(col_left->get_data().size());
288
68
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
68
                              typename PrimitiveTypeTraits<PT>::CppType,
290
68
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
68
                                                     vec_res);
292
293
68
            block.replace_by_position(result, std::move(col_res));
294
938
        } else if (!left_is_const && right_is_const) {
295
890
            auto col_res = ColumnUInt8::create();
296
297
890
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
890
            vec_res.resize(col_left->size());
299
890
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
890
                              typename PrimitiveTypeTraits<PT>::CppType,
301
890
                              Op<PT>>::vector_constant(col_left->get_data(),
302
890
                                                       col_right->get_element(0), vec_res);
303
304
890
            block.replace_by_position(result, std::move(col_res));
305
890
        } 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.00k
        return Status::OK();
318
1.00k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
55
                            const ColumnPtr& col_right_ptr) const {
275
55
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
55
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
55
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
55
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
55
        DCHECK(!(left_is_const && right_is_const));
282
283
55
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
55
        } else if (!left_is_const && right_is_const) {
295
55
            auto col_res = ColumnUInt8::create();
296
297
55
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
55
            vec_res.resize(col_left->size());
299
55
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
55
                              typename PrimitiveTypeTraits<PT>::CppType,
301
55
                              Op<PT>>::vector_constant(col_left->get_data(),
302
55
                                                       col_right->get_element(0), vec_res);
303
304
55
            block.replace_by_position(result, std::move(col_res));
305
55
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
55
        return Status::OK();
318
55
    }
_ZNK5doris18FunctionComparisonINS_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
137
                            const ColumnPtr& col_right_ptr) const {
275
137
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
137
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
137
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
137
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
137
        DCHECK(!(left_is_const && right_is_const));
282
283
137
        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
117
        } else if (!left_is_const && right_is_const) {
295
116
            auto col_res = ColumnUInt8::create();
296
297
116
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
116
            vec_res.resize(col_left->size());
299
116
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
116
                              typename PrimitiveTypeTraits<PT>::CppType,
301
116
                              Op<PT>>::vector_constant(col_left->get_data(),
302
116
                                                       col_right->get_element(0), vec_res);
303
304
116
            block.replace_by_position(result, std::move(col_res));
305
116
        } 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
137
        return Status::OK();
318
137
    }
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
147k
                           const ColumnWithTypeAndName& col_right) const {
322
147k
        auto call = [&](const auto& type) -> bool {
323
147k
            using DispatchType = std::decay_t<decltype(type)>;
324
147k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
147k
                    block, result, col_left, col_right);
326
147k
            return true;
327
147k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
264
        auto call = [&](const auto& type) -> bool {
323
264
            using DispatchType = std::decay_t<decltype(type)>;
324
264
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
264
                    block, result, col_left, col_right);
326
264
            return true;
327
264
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
293
        auto call = [&](const auto& type) -> bool {
323
293
            using DispatchType = std::decay_t<decltype(type)>;
324
293
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
293
                    block, result, col_left, col_right);
326
293
            return true;
327
293
        };
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.23k
        auto call = [&](const auto& type) -> bool {
323
1.23k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.23k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.23k
                    block, result, col_left, col_right);
326
1.23k
            return true;
327
1.23k
        };
_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
59
        auto call = [&](const auto& type) -> bool {
323
59
            using DispatchType = std::decay_t<decltype(type)>;
324
59
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
59
                    block, result, col_left, col_right);
326
59
            return true;
327
59
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_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.46k
        auto call = [&](const auto& type) -> bool {
323
1.46k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.46k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.46k
                    block, result, col_left, col_right);
326
1.46k
            return true;
327
1.46k
        };
_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
354
        auto call = [&](const auto& type) -> bool {
323
354
            using DispatchType = std::decay_t<decltype(type)>;
324
354
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
354
                    block, result, col_left, col_right);
326
354
            return true;
327
354
        };
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
102
        auto call = [&](const auto& type) -> bool {
323
102
            using DispatchType = std::decay_t<decltype(type)>;
324
102
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
102
                    block, result, col_left, col_right);
326
102
            return true;
327
102
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
21
        auto call = [&](const auto& type) -> bool {
323
21
            using DispatchType = std::decay_t<decltype(type)>;
324
21
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
21
                    block, result, col_left, col_right);
326
21
            return true;
327
21
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
215
        auto call = [&](const auto& type) -> bool {
323
215
            using DispatchType = std::decay_t<decltype(type)>;
324
215
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
215
                    block, result, col_left, col_right);
326
215
            return true;
327
215
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
266
        auto call = [&](const auto& type) -> bool {
323
266
            using DispatchType = std::decay_t<decltype(type)>;
324
266
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
266
                    block, result, col_left, col_right);
326
266
            return true;
327
266
        };
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
448
        auto call = [&](const auto& type) -> bool {
323
448
            using DispatchType = std::decay_t<decltype(type)>;
324
448
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
448
                    block, result, col_left, col_right);
326
448
            return true;
327
448
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
1
        auto call = [&](const auto& type) -> bool {
323
1
            using DispatchType = std::decay_t<decltype(type)>;
324
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1
                    block, result, col_left, col_right);
326
1
            return true;
327
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
4
        auto call = [&](const auto& type) -> bool {
323
4
            using DispatchType = std::decay_t<decltype(type)>;
324
4
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
4
                    block, result, col_left, col_right);
326
4
            return true;
327
4
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
139k
        auto call = [&](const auto& type) -> bool {
323
139k
            using DispatchType = std::decay_t<decltype(type)>;
324
139k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
139k
                    block, result, col_left, col_right);
326
139k
            return true;
327
139k
        };
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
832
        auto call = [&](const auto& type) -> bool {
323
832
            using DispatchType = std::decay_t<decltype(type)>;
324
832
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
832
                    block, result, col_left, col_right);
326
832
            return true;
327
832
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
16
        auto call = [&](const auto& type) -> bool {
323
16
            using DispatchType = std::decay_t<decltype(type)>;
324
16
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
16
                    block, result, col_left, col_right);
326
16
            return true;
327
16
        };
328
329
147k
        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
147k
        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
147k
        return Status::OK();
340
147k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.81k
                           const ColumnWithTypeAndName& col_right) const {
322
1.81k
        auto call = [&](const auto& type) -> bool {
323
1.81k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.81k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.81k
                    block, result, col_left, col_right);
326
1.81k
            return true;
327
1.81k
        };
328
329
1.81k
        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.81k
        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.81k
        return Status::OK();
340
1.81k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
414
                           const ColumnWithTypeAndName& col_right) const {
322
414
        auto call = [&](const auto& type) -> bool {
323
414
            using DispatchType = std::decay_t<decltype(type)>;
324
414
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
414
                    block, result, col_left, col_right);
326
414
            return true;
327
414
        };
328
329
414
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
414
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
414
        return Status::OK();
340
414
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
3.11k
                           const ColumnWithTypeAndName& col_right) const {
322
3.11k
        auto call = [&](const auto& type) -> bool {
323
3.11k
            using DispatchType = std::decay_t<decltype(type)>;
324
3.11k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
3.11k
                    block, result, col_left, col_right);
326
3.11k
            return true;
327
3.11k
        };
328
329
3.11k
        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.11k
        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.11k
        return Status::OK();
340
3.11k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
486
                           const ColumnWithTypeAndName& col_right) const {
322
486
        auto call = [&](const auto& type) -> bool {
323
486
            using DispatchType = std::decay_t<decltype(type)>;
324
486
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
486
                    block, result, col_left, col_right);
326
486
            return true;
327
486
        };
328
329
486
        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
486
        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
486
        return Status::OK();
340
486
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
930
                           const ColumnWithTypeAndName& col_right) const {
322
930
        auto call = [&](const auto& type) -> bool {
323
930
            using DispatchType = std::decay_t<decltype(type)>;
324
930
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
930
                    block, result, col_left, col_right);
326
930
            return true;
327
930
        };
328
329
930
        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
930
        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
930
        return Status::OK();
340
930
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
140k
                           const ColumnWithTypeAndName& col_right) const {
322
140k
        auto call = [&](const auto& type) -> bool {
323
140k
            using DispatchType = std::decay_t<decltype(type)>;
324
140k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
140k
                    block, result, col_left, col_right);
326
140k
            return true;
327
140k
        };
328
329
140k
        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
140k
        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
140k
        return Status::OK();
340
140k
    }
341
342
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
343
27.7k
                          const IColumn* c1) const {
344
27.7k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
27.7k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
27.7k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
27.7k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
27.7k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
27.7k
        DCHECK(!(c0_const && c1_const));
353
27.7k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
27.7k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
27.7k
        ColumnString::Offset c0_const_size = 0;
356
27.7k
        ColumnString::Offset c1_const_size = 0;
357
358
27.7k
        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.7k
        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
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
26.7k
        }
383
384
27.7k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
27.7k
        auto c_res = ColumnUInt8::create();
387
27.7k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
27.7k
        vec_res.resize(c0->size());
389
390
27.7k
        if (c0_string && c1_string) {
391
961
            StringImpl::string_vector_string_vector(
392
961
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
961
                    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
6
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
27.7k
        block.replace_by_position(result, std::move(c_res));
406
27.7k
        return Status::OK();
407
27.7k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
22.6k
                          const IColumn* c1) const {
344
22.6k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
22.6k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
22.6k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
22.6k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
22.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
22.6k
        DCHECK(!(c0_const && c1_const));
353
22.6k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
22.6k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
22.6k
        ColumnString::Offset c0_const_size = 0;
356
22.6k
        ColumnString::Offset c1_const_size = 0;
357
358
22.6k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
22.6k
        if (c1_const) {
372
22.0k
            const ColumnString* c1_const_string =
373
22.0k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
22.0k
            if (c1_const_string) {
376
22.0k
                c1_const_chars = &c1_const_string->get_chars();
377
22.0k
                c1_const_size = c1_const_string->get_offsets()[0];
378
22.0k
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
22.0k
        }
383
384
22.6k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
22.6k
        auto c_res = ColumnUInt8::create();
387
22.6k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
22.6k
        vec_res.resize(c0->size());
389
390
22.6k
        if (c0_string && c1_string) {
391
526
            StringImpl::string_vector_string_vector(
392
526
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
526
                    c1_string->get_offsets(), vec_res);
394
22.0k
        } else if (c0_string && c1_const) {
395
22.0k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
22.0k
                                               *c1_const_chars, c1_const_size, vec_res);
397
22.0k
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
22.6k
        block.replace_by_position(result, std::move(c_res));
406
22.6k
        return Status::OK();
407
22.6k
    }
_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
204
                          const IColumn* c1) const {
344
204
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
204
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
204
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
204
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
204
        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
204
        DCHECK(!(c0_const && c1_const));
353
204
        const ColumnString::Chars* c0_const_chars = nullptr;
354
204
        const ColumnString::Chars* c1_const_chars = nullptr;
355
204
        ColumnString::Offset c0_const_size = 0;
356
204
        ColumnString::Offset c1_const_size = 0;
357
358
204
        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
204
        if (c1_const) {
372
202
            const ColumnString* c1_const_string =
373
202
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
202
            if (c1_const_string) {
376
202
                c1_const_chars = &c1_const_string->get_chars();
377
202
                c1_const_size = c1_const_string->get_offsets()[0];
378
202
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
202
        }
383
384
204
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
204
        auto c_res = ColumnUInt8::create();
387
204
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
204
        vec_res.resize(c0->size());
389
390
204
        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
202
        } else if (c0_string && c1_const) {
395
202
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
202
                                               *c1_const_chars, c1_const_size, vec_res);
397
202
        } 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
204
        block.replace_by_position(result, std::move(c_res));
406
204
        return Status::OK();
407
204
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
838
                          const IColumn* c1) const {
344
838
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
838
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
838
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
838
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
838
        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
838
        DCHECK(!(c0_const && c1_const));
353
838
        const ColumnString::Chars* c0_const_chars = nullptr;
354
838
        const ColumnString::Chars* c1_const_chars = nullptr;
355
838
        ColumnString::Offset c0_const_size = 0;
356
838
        ColumnString::Offset c1_const_size = 0;
357
358
838
        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
838
        if (c1_const) {
372
802
            const ColumnString* c1_const_string =
373
802
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
802
            if (c1_const_string) {
376
802
                c1_const_chars = &c1_const_string->get_chars();
377
802
                c1_const_size = c1_const_string->get_offsets()[0];
378
802
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
802
        }
383
384
838
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
838
        auto c_res = ColumnUInt8::create();
387
838
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
838
        vec_res.resize(c0->size());
389
390
838
        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
802
        } else if (c0_string && c1_const) {
395
802
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
802
                                               *c1_const_chars, c1_const_size, vec_res);
397
802
        } 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
838
        block.replace_by_position(result, std::move(c_res));
406
838
        return Status::OK();
407
838
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
655
                          const IColumn* c1) const {
344
655
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
655
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
655
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
655
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
655
        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
655
        DCHECK(!(c0_const && c1_const));
353
655
        const ColumnString::Chars* c0_const_chars = nullptr;
354
655
        const ColumnString::Chars* c1_const_chars = nullptr;
355
655
        ColumnString::Offset c0_const_size = 0;
356
655
        ColumnString::Offset c1_const_size = 0;
357
358
655
        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
655
        if (c1_const) {
372
253
            const ColumnString* c1_const_string =
373
253
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
253
            if (c1_const_string) {
376
253
                c1_const_chars = &c1_const_string->get_chars();
377
253
                c1_const_size = c1_const_string->get_offsets()[0];
378
253
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
253
        }
383
384
655
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
655
        auto c_res = ColumnUInt8::create();
387
655
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
655
        vec_res.resize(c0->size());
389
390
655
        if (c0_string && c1_string) {
391
396
            StringImpl::string_vector_string_vector(
392
396
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
396
                    c1_string->get_offsets(), vec_res);
394
396
        } else if (c0_string && c1_const) {
395
253
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
253
                                               *c1_const_chars, c1_const_size, vec_res);
397
253
        } 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
6
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
655
        block.replace_by_position(result, std::move(c_res));
406
655
        return Status::OK();
407
655
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
1.91k
                          const IColumn* c1) const {
344
1.91k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
1.91k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
1.91k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
1.91k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
1.91k
        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.91k
        DCHECK(!(c0_const && c1_const));
353
1.91k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
1.91k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
1.91k
        ColumnString::Offset c0_const_size = 0;
356
1.91k
        ColumnString::Offset c1_const_size = 0;
357
358
1.91k
        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.91k
        if (c1_const) {
372
1.91k
            const ColumnString* c1_const_string =
373
1.91k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
1.91k
            if (c1_const_string) {
376
1.91k
                c1_const_chars = &c1_const_string->get_chars();
377
1.91k
                c1_const_size = c1_const_string->get_offsets()[0];
378
1.91k
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
1.91k
        }
383
384
1.91k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
1.91k
        auto c_res = ColumnUInt8::create();
387
1.91k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
1.91k
        vec_res.resize(c0->size());
389
390
1.91k
        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
1.91k
        } else if (c0_string && c1_const) {
395
1.91k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
1.91k
                                               *c1_const_chars, c1_const_size, vec_res);
397
1.91k
        } 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.91k
        block.replace_by_position(result, std::move(c_res));
406
1.91k
        return Status::OK();
407
1.91k
    }
408
409
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
410
185
                                         const IColumn* c1) const {
411
185
        bool c0_const = is_column_const(*c0);
412
185
        bool c1_const = is_column_const(*c1);
413
414
185
        DCHECK(!(c0_const && c1_const));
415
416
185
        auto c_res = ColumnUInt8::create();
417
185
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
185
        vec_res.resize(c0->size());
419
420
185
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
185
        } else if (c1_const) {
423
176
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
176
        } else {
425
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
9
        }
427
428
185
        block.replace_by_position(result, std::move(c_res));
429
185
    }
_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
99
                                         const IColumn* c1) const {
411
99
        bool c0_const = is_column_const(*c0);
412
99
        bool c1_const = is_column_const(*c1);
413
414
99
        DCHECK(!(c0_const && c1_const));
415
416
99
        auto c_res = ColumnUInt8::create();
417
99
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
99
        vec_res.resize(c0->size());
419
420
99
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
99
        } else if (c1_const) {
423
98
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
98
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
99
        block.replace_by_position(result, std::move(c_res));
429
99
    }
_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
41
                                         const IColumn* c1) const {
411
41
        bool c0_const = is_column_const(*c0);
412
41
        bool c1_const = is_column_const(*c1);
413
414
41
        DCHECK(!(c0_const && c1_const));
415
416
41
        auto c_res = ColumnUInt8::create();
417
41
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
41
        vec_res.resize(c0->size());
419
420
41
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
41
        } else if (c1_const) {
423
41
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
41
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
41
        block.replace_by_position(result, std::move(c_res));
429
41
    }
430
431
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
432
185
                           const ColumnWithTypeAndName& c1) const {
433
185
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
185
        return Status::OK();
435
185
    }
_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
99
                           const ColumnWithTypeAndName& c1) const {
433
99
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
99
        return Status::OK();
435
99
    }
_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
41
                           const ColumnWithTypeAndName& c1) const {
433
41
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
41
        return Status::OK();
435
41
    }
436
437
public:
438
222
    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
37
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
438
39
    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
471k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
437k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
1.33k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
440
6.19k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
10.0k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
440
3.10k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
13.7k
    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
471k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
471k
        return std::make_shared<DataTypeUInt8>();
445
471k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
437k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
437k
        return std::make_shared<DataTypeUInt8>();
445
437k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
1.33k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
1.33k
        return std::make_shared<DataTypeUInt8>();
445
1.33k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
6.19k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
6.19k
        return std::make_shared<DataTypeUInt8>();
445
6.19k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
10.0k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
10.0k
        return std::make_shared<DataTypeUInt8>();
445
10.0k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
3.10k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
3.10k
        return std::make_shared<DataTypeUInt8>();
445
3.10k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
13.7k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
13.7k
        return std::make_shared<DataTypeUInt8>();
445
13.7k
    }
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.77k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
1.77k
        DCHECK(arguments.size() == 1);
454
1.77k
        DCHECK(data_type_with_names.size() == 1);
455
1.77k
        DCHECK(iterators.size() == 1);
456
1.77k
        auto* iter = iterators[0];
457
1.77k
        auto data_type_with_name = data_type_with_names[0];
458
1.77k
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
1.77k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
446
            return Status::OK();
463
446
        }
464
1.32k
        segment_v2::InvertedIndexQueryType query_type;
465
1.32k
        std::string_view name_view(name);
466
1.32k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
872
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
872
        } else if (name_view == NameLess::name) {
469
111
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
346
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
248
        } 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.33k
        if (segment_v2::is_range_query(query_type) &&
481
1.33k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
171
            return Status::OK();
484
171
        }
485
1.15k
        Field param_value;
486
1.15k
        arguments[0].column->get(0, param_value);
487
1.15k
        if (param_value.is_null()) {
488
2
            return Status::OK();
489
2
        }
490
1.15k
        segment_v2::InvertedIndexParam param;
491
1.15k
        param.column_name = data_type_with_name.first;
492
1.15k
        param.column_type = data_type_with_name.second;
493
1.15k
        param.query_value = param_value;
494
1.15k
        param.query_type = query_type;
495
1.15k
        param.num_rows = num_rows;
496
1.15k
        param.roaring = std::make_shared<roaring::Roaring>();
497
1.15k
        param.analyzer_ctx = analyzer_ctx;
498
1.15k
        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
63
            roaring::Roaring full_result;
511
63
            full_result.addRange(0, num_rows);
512
63
            bitmap_result.op_not(&full_result);
513
63
        }
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
889
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
889
        DCHECK(arguments.size() == 1);
454
889
        DCHECK(data_type_with_names.size() == 1);
455
889
        DCHECK(iterators.size() == 1);
456
889
        auto* iter = iterators[0];
457
889
        auto data_type_with_name = data_type_with_names[0];
458
889
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
889
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
88
            return Status::OK();
463
88
        }
464
801
        segment_v2::InvertedIndexQueryType query_type;
465
801
        std::string_view name_view(name);
466
802
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
802
            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
802
        if (segment_v2::is_range_query(query_type) &&
481
802
            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
802
        Field param_value;
486
802
        arguments[0].column->get(0, param_value);
487
802
        if (param_value.is_null()) {
488
2
            return Status::OK();
489
2
        }
490
800
        segment_v2::InvertedIndexParam param;
491
800
        param.column_name = data_type_with_name.first;
492
800
        param.column_type = data_type_with_name.second;
493
800
        param.query_value = param_value;
494
800
        param.query_type = query_type;
495
800
        param.num_rows = num_rows;
496
800
        param.roaring = std::make_shared<roaring::Roaring>();
497
800
        param.analyzer_ctx = analyzer_ctx;
498
800
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
499
751
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
500
752
        if (iter->has_null()) {
501
752
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
502
752
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
503
752
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
504
752
        }
505
751
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
506
751
        bitmap_result = result;
507
751
        bitmap_result.mask_out_null();
508
509
751
        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
751
        return Status::OK();
516
751
    }
_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
63
            roaring::Roaring full_result;
511
63
            full_result.addRange(0, num_rows);
512
63
            bitmap_result.op_not(&full_result);
513
63
        }
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
176
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
176
        DCHECK(arguments.size() == 1);
454
176
        DCHECK(data_type_with_names.size() == 1);
455
176
        DCHECK(iterators.size() == 1);
456
176
        auto* iter = iterators[0];
457
176
        auto data_type_with_name = data_type_with_names[0];
458
176
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
176
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
62
            return Status::OK();
463
62
        }
464
114
        segment_v2::InvertedIndexQueryType query_type;
465
114
        std::string_view name_view(name);
466
114
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
114
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
114
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
114
        } else if (name_view == NameGreater::name) {
473
114
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
114
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
114
        if (segment_v2::is_range_query(query_type) &&
481
114
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
28
            return Status::OK();
484
28
        }
485
86
        Field param_value;
486
86
        arguments[0].column->get(0, param_value);
487
86
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
86
        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
249
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
249
        DCHECK(arguments.size() == 1);
454
249
        DCHECK(data_type_with_names.size() == 1);
455
249
        DCHECK(iterators.size() == 1);
456
249
        auto* iter = iterators[0];
457
249
        auto data_type_with_name = data_type_with_names[0];
458
249
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
249
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
114
            return Status::OK();
463
114
        }
464
135
        segment_v2::InvertedIndexQueryType query_type;
465
135
        std::string_view name_view(name);
466
135
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
135
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
135
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
135
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
135
        } else if (name_view == NameGreaterOrEquals::name) {
475
135
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
135
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
135
        if (segment_v2::is_range_query(query_type) &&
481
135
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
59
            return Status::OK();
484
59
        }
485
76
        Field param_value;
486
76
        arguments[0].column->get(0, param_value);
487
76
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
76
        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
172
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
172
        DCHECK(arguments.size() == 1);
454
172
        DCHECK(data_type_with_names.size() == 1);
455
172
        DCHECK(iterators.size() == 1);
456
172
        auto* iter = iterators[0];
457
172
        auto data_type_with_name = data_type_with_names[0];
458
172
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
172
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
61
            return Status::OK();
463
61
        }
464
111
        segment_v2::InvertedIndexQueryType query_type;
465
111
        std::string_view name_view(name);
466
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
418k
                        uint32_t result, size_t input_rows_count) const override {
520
418k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
418k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
418k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
418k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
418k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
418k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
418k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
418k
        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
418k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
418k
            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
662k
        auto can_compare = [](PrimitiveType t) -> bool {
558
662k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
662k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
160k
        auto can_compare = [](PrimitiveType t) -> bool {
558
160k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
160k
        };
_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
211k
        auto can_compare = [](PrimitiveType t) -> bool {
558
211k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
211k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
37.6k
        auto can_compare = [](PrimitiveType t) -> bool {
558
37.6k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
37.6k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
29.0k
        auto can_compare = [](PrimitiveType t) -> bool {
558
29.0k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
29.0k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
557
208k
        auto can_compare = [](PrimitiveType t) -> bool {
558
208k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
208k
        };
560
561
418k
        if (can_compare(left_type->get_primitive_type()) &&
562
418k
            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
243k
            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
243k
        }
570
571
418k
        auto compare_type = left_type->get_primitive_type();
572
418k
        switch (compare_type) {
573
2.25k
        case TYPE_BOOLEAN:
574
2.25k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
14.5k
        case TYPE_DATEV2:
576
14.5k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
2.64k
        case TYPE_DATETIMEV2:
578
2.64k
            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
10.8k
        case TYPE_TINYINT:
582
10.8k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
4.10k
        case TYPE_SMALLINT:
584
4.10k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
159k
        case TYPE_INT:
586
159k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
44.2k
        case TYPE_BIGINT:
588
44.2k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
771
        case TYPE_LARGEINT:
590
771
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
74
        case TYPE_IPV4:
592
74
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
48
        case TYPE_IPV6:
594
48
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
1.02k
        case TYPE_FLOAT:
596
1.02k
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
3.65k
        case TYPE_DOUBLE:
598
3.65k
            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
538
        case TYPE_DECIMAL32:
603
142k
        case TYPE_DECIMAL64:
604
147k
        case TYPE_DECIMAL128I:
605
147k
        case TYPE_DECIMAL256:
606
147k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
147k
                                   col_with_type_and_name_right);
608
1.27k
        case TYPE_CHAR:
609
10.9k
        case TYPE_VARCHAR:
610
27.7k
        case TYPE_STRING:
611
27.7k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
185
        default:
613
185
            return execute_generic(block, result, col_with_type_and_name_left,
614
185
                                   col_with_type_and_name_right);
615
418k
        }
616
0
        return Status::OK();
617
418k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
92.7k
                        uint32_t result, size_t input_rows_count) const override {
520
92.7k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
92.7k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
92.7k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
92.7k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
92.7k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
92.7k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
92.7k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
92.7k
        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
92.7k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
92.7k
            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
92.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
92.7k
        };
560
561
92.7k
        if (can_compare(left_type->get_primitive_type()) &&
562
92.7k
            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
68.2k
            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
68.2k
        }
570
571
92.7k
        auto compare_type = left_type->get_primitive_type();
572
92.7k
        switch (compare_type) {
573
1.61k
        case TYPE_BOOLEAN:
574
1.61k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
1.72k
        case TYPE_DATEV2:
576
1.72k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
685
        case TYPE_DATETIMEV2:
578
685
            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
6.97k
        case TYPE_TINYINT:
582
6.97k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
1.44k
        case TYPE_SMALLINT:
584
1.44k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
30.9k
        case TYPE_INT:
586
30.9k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
24.0k
        case TYPE_BIGINT:
588
24.0k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
160
        case TYPE_LARGEINT:
590
160
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
591
31
        case TYPE_IPV4:
592
31
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
593
30
        case TYPE_IPV6:
594
30
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
595
124
        case TYPE_FLOAT:
596
124
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
449
        case TYPE_DOUBLE:
598
449
            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
264
        case TYPE_DECIMAL32:
603
557
        case TYPE_DECIMAL64:
604
1.78k
        case TYPE_DECIMAL128I:
605
1.81k
        case TYPE_DECIMAL256:
606
1.81k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
1.81k
                                   col_with_type_and_name_right);
608
688
        case TYPE_CHAR:
609
8.62k
        case TYPE_VARCHAR:
610
22.6k
        case TYPE_STRING:
611
22.6k
            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
92.7k
        }
616
0
        return Status::OK();
617
92.7k
    }
_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.80k
            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.80k
        }
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
82
        case TYPE_DATEV2:
576
82
            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.44k
        case TYPE_INT:
586
3.44k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
3.04k
        case TYPE_BIGINT:
588
3.04k
            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
60
        case TYPE_DECIMAL64:
604
384
        case TYPE_DECIMAL128I:
605
414
        case TYPE_DECIMAL256:
606
414
            return execute_decimal(block, result, col_with_type_and_name_left,
607
414
                                   col_with_type_and_name_right);
608
17
        case TYPE_CHAR:
609
344
        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
107k
                        uint32_t result, size_t input_rows_count) const override {
520
107k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
107k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
107k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
107k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
107k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
107k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
107k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
107k
        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
107k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
107k
            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
107k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
107k
        };
560
561
107k
        if (can_compare(left_type->get_primitive_type()) &&
562
107k
            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
103k
            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
103k
        }
570
571
107k
        auto compare_type = left_type->get_primitive_type();
572
107k
        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.16k
        case TYPE_DATEV2:
576
1.16k
            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.35k
        case TYPE_TINYINT:
582
1.35k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
1.93k
        case TYPE_SMALLINT:
584
1.93k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
82.7k
        case TYPE_INT:
586
82.7k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
13.5k
        case TYPE_BIGINT:
588
13.5k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
246
        case TYPE_LARGEINT:
590
246
            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.51k
        case TYPE_DOUBLE:
598
2.51k
            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.10k
        case TYPE_DECIMAL128I:
605
3.11k
        case TYPE_DECIMAL256:
606
3.11k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
3.11k
                                   col_with_type_and_name_right);
608
21
        case TYPE_CHAR:
609
87
        case TYPE_VARCHAR:
610
204
        case TYPE_STRING:
611
204
            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
107k
        }
616
0
        return Status::OK();
617
107k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
19.5k
                        uint32_t result, size_t input_rows_count) const override {
520
19.5k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
19.5k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
19.5k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
19.5k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
19.5k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
19.5k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
19.5k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
19.5k
        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
19.5k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
19.5k
            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
19.5k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
19.5k
        };
560
561
19.5k
        if (can_compare(left_type->get_primitive_type()) &&
562
19.5k
            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
18.1k
            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
18.1k
        }
570
571
19.5k
        auto compare_type = left_type->get_primitive_type();
572
19.5k
        switch (compare_type) {
573
193
        case TYPE_BOOLEAN:
574
193
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
1.60k
        case TYPE_DATEV2:
576
1.60k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
730
        case TYPE_DATETIMEV2:
578
730
            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
41
        case TYPE_TINYINT:
582
41
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
57
        case TYPE_SMALLINT:
584
57
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
14.1k
        case TYPE_INT:
586
14.1k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
850
        case TYPE_BIGINT:
588
850
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
48
        case TYPE_LARGEINT:
590
48
            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
138
        case TYPE_DOUBLE:
598
138
            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
363
        case TYPE_DECIMAL64:
604
465
        case TYPE_DECIMAL128I:
605
486
        case TYPE_DECIMAL256:
606
486
            return execute_decimal(block, result, col_with_type_and_name_left,
607
486
                                   col_with_type_and_name_right);
608
36
        case TYPE_CHAR:
609
416
        case TYPE_VARCHAR:
610
838
        case TYPE_STRING:
611
838
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
99
        default:
613
99
            return execute_generic(block, result, col_with_type_and_name_left,
614
99
                                   col_with_type_and_name_right);
615
19.5k
        }
616
0
        return Status::OK();
617
19.5k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
15.3k
                        uint32_t result, size_t input_rows_count) const override {
520
15.3k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
15.3k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
15.3k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
15.3k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
15.3k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
15.3k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
15.3k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
15.3k
        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
15.3k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
15.3k
            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
15.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
15.3k
        };
560
561
15.3k
        if (can_compare(left_type->get_primitive_type()) &&
562
15.3k
            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
13.7k
            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
13.7k
        }
570
571
15.3k
        auto compare_type = left_type->get_primitive_type();
572
15.3k
        switch (compare_type) {
573
73
        case TYPE_BOOLEAN:
574
73
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
2.11k
        case TYPE_DATEV2:
576
2.11k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
574
        case TYPE_DATETIMEV2:
578
574
            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.10k
        case TYPE_TINYINT:
582
2.10k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
387
        case TYPE_SMALLINT:
584
387
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
5.92k
        case TYPE_INT:
586
5.92k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
1.70k
        case TYPE_BIGINT:
588
1.70k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
262
        case TYPE_LARGEINT:
590
262
            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
164
        case TYPE_FLOAT:
596
164
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
597
362
        case TYPE_DOUBLE:
598
362
            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
215
        case TYPE_DECIMAL32:
603
481
        case TYPE_DECIMAL64:
604
929
        case TYPE_DECIMAL128I:
605
930
        case TYPE_DECIMAL256:
606
930
            return execute_decimal(block, result, col_with_type_and_name_left,
607
930
                                   col_with_type_and_name_right);
608
187
        case TYPE_CHAR:
609
364
        case TYPE_VARCHAR:
610
655
        case TYPE_STRING:
611
655
            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
15.3k
        }
616
0
        return Status::OK();
617
15.3k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
519
175k
                        uint32_t result, size_t input_rows_count) const override {
520
175k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
521
175k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
522
523
175k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
524
175k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
525
175k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
526
175k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
527
528
175k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
529
175k
        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
175k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
535
175k
            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
175k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
559
175k
        };
560
561
175k
        if (can_compare(left_type->get_primitive_type()) &&
562
175k
            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
32.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
32.9k
        }
570
571
175k
        auto compare_type = left_type->get_primitive_type();
572
175k
        switch (compare_type) {
573
376
        case TYPE_BOOLEAN:
574
376
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
575
7.79k
        case TYPE_DATEV2:
576
7.79k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
577
564
        case TYPE_DATETIMEV2:
578
564
            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
272
        case TYPE_TINYINT:
582
272
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
583
253
        case TYPE_SMALLINT:
584
253
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
585
22.1k
        case TYPE_INT:
586
22.1k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
587
1.00k
        case TYPE_BIGINT:
588
1.00k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
589
55
        case TYPE_LARGEINT:
590
55
            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
137
        case TYPE_DOUBLE:
598
137
            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
4
        case TYPE_DECIMAL32:
603
139k
        case TYPE_DECIMAL64:
604
140k
        case TYPE_DECIMAL128I:
605
140k
        case TYPE_DECIMAL256:
606
140k
            return execute_decimal(block, result, col_with_type_and_name_left,
607
140k
                                   col_with_type_and_name_right);
608
325
        case TYPE_CHAR:
609
1.16k
        case TYPE_VARCHAR:
610
1.91k
        case TYPE_STRING:
611
1.91k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
612
41
        default:
613
41
            return execute_generic(block, result, col_with_type_and_name_left,
614
41
                                   col_with_type_and_name_right);
615
175k
        }
616
0
        return Status::OK();
617
175k
    }
618
};
619
620
} // namespace doris